From c729e902dff501c8c3e441d49c6d0fe1ad28eede Mon Sep 17 00:00:00 2001 From: Frederic Marec Date: Tue, 28 Aug 2018 17:01:48 +0200 Subject: Add tests for iiodevice binding Add test for accelerometer, compass and gyroscope Add script beforeAll.sh to initiate iio dummy devices Add Readme.md to describe how to use test Fix BUILD_TYPE in cmake.config Change-Id: I39edfce6a43b519c0ff6bc0a7d2f1d2477098cff Signed-off-by: Frederic Marec --- .../tests/iiodevices_BasicAPITest-devices.lua | 57 +++++++++++++++++ test/afb-test/tests/iiodevices_BasicAPITest.lua | 73 ++++++++++++++++++++-- 2 files changed, 126 insertions(+), 4 deletions(-) create mode 100644 test/afb-test/tests/iiodevices_BasicAPITest-devices.lua (limited to 'test/afb-test/tests') diff --git a/test/afb-test/tests/iiodevices_BasicAPITest-devices.lua b/test/afb-test/tests/iiodevices_BasicAPITest-devices.lua new file mode 100644 index 0000000..e46428a --- /dev/null +++ b/test/afb-test/tests/iiodevices_BasicAPITest-devices.lua @@ -0,0 +1,57 @@ +--[[ + Copyright (C) 2018 "IoT.bzh" + Author Frédéric Marec + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + NOTE: strict mode: every global variables should be prefixed by '_' +--]] + +local testPrefix ="iiodevices_BasicAPITest_without_devices_" + +-- This tests the 'subscribe' verb of the iiodevices API without any devices +_AFT.testVerbStatusError(testPrefix.."subscribe-acceleration","iiodevices","subscribe", {event = "acceleration", args = "xy"}) +_AFT.testVerbStatusError(testPrefix.."subscribe-compass","iiodevices","subscribe", {event = "compass", args = "xy"}) +_AFT.testVerbStatusError(testPrefix.."subscribe-gyroscope","iiodevices","subscribe", {event = "gyroscope", args = "xy"}) + +_AFT.testVerbStatusError(testPrefix.."subscribe-acceleration-with-wrong-argument","iiodevices","subscribe", {event = "acceleration", aaaaaaaaaaaaaaaaaaaaa = "xy"}) +_AFT.testVerbStatusError(testPrefix.."subscribe-compass-with-wrong-argument","iiodevices","subscribe", {event = "compass", bbbbbbbbbbbbbbbb = "xy"}) +_AFT.testVerbStatusError(testPrefix.."subscribe-gyroscope-with-wrong-argument","iiodevices","subscribe", {event = "gyroscope", cccccccccccccccccc = "xy"}) + +_AFT.testVerbStatusError(testPrefix.."subscribe-acceleration-replace-argument","iiodevices","subscribe", {event = "acceleration", args = "xy", wrongarg = "test"}) +_AFT.testVerbStatusError(testPrefix.."subscribe-compass-replace-argument","iiodevices","subscribe", {event = "compass", args = "xy", wrongarg = "test"}) +_AFT.testVerbStatusError(testPrefix.."subscribe-gyroscope-replace-argument","iiodevices","subscribe", {event = "gyroscope", args = "xy", wrongarg = "test"}) + +_AFT.testVerbStatusError(testPrefix.."subscribe-acceleration-edge-effect","iiodevices","subscribe", {event = "acceleration", args = "xy"}) +_AFT.testVerbStatusError(testPrefix.."subscribe-compass-edge-effect","iiodevices","subscribe", {event = "compass", args = "xy"}) +_AFT.testVerbStatusError(testPrefix.."subscribe-gyroscope-edge-effect","iiodevices","subscribe", {event = "gyroscope", args = "xy"}) + +-- This tests the 'unsubscribe' verb of the iiodevices API without any devices +_AFT.testVerbStatusError(testPrefix.."unsubscribe-acceleration","iiodevices","unsubscribe", {event = "acceleration"}) +_AFT.testVerbStatusError(testPrefix.."unsubscribe-compass","iiodevices","unsubscribe", {event = "compass"}) +_AFT.testVerbStatusError(testPrefix.."unsubscribe-gyroscope","iiodevices","unsubscribe", {event = "gyroscope"}) + +_AFT.testVerbStatusError(testPrefix.."unsubscribe-acceleration-with-wrong-argument","iiodevices","unsubscribe", {event = "acceleration", aaaaaaaaaaaaaaaaaaaaa = "xy"}) +_AFT.testVerbStatusError(testPrefix.."unsubscribe-compass-with-wrong-argument","iiodevices","unsubscribe", {event = "compass", bbbbbbbbbbbbbbbb = "xy"}) +_AFT.testVerbStatusError(testPrefix.."unsubscribe-gyroscope-with-wrong-argument","iiodevices","unsubscribe", {event = "gyroscope", cccccccccccccccccc = "xy"}) + +_AFT.testVerbStatusError(testPrefix.."unsubscribe-acceleration-with-too-many-argument","iiodevices","unsubscribe", {event = "acceleration", args = "xy", wrongarg = "test"}) +_AFT.testVerbStatusError(testPrefix.."unsubscribe-compass-with-too-many-argument","iiodevices","unsubscribe", {event = "compass", args = "xy", wrongarg = "test"}) +_AFT.testVerbStatusError(testPrefix.."unsubscribe-gyroscope-with-too-many-argument","iiodevices","unsubscribe", {event = "gyroscope", args = "xy", wrongarg = "test"}) + +_AFT.testVerbStatusError(testPrefix.."unsubscribe-acceleration-edge-effect","iiodevices","unsubscribe", {event = "acceleration"}) +_AFT.testVerbStatusError(testPrefix.."unsubscribe-compass-edge-effect","iiodevices","unsubscribe", {event = "compass"}) +_AFT.testVerbStatusError(testPrefix.."unsubscribe-gyroscope-edge-effect","iiodevices","unsubscribe", {event = "gyroscope"}) + +_AFT.exitAtEnd() diff --git a/test/afb-test/tests/iiodevices_BasicAPITest.lua b/test/afb-test/tests/iiodevices_BasicAPITest.lua index 27afa9f..4bce13a 100644 --- a/test/afb-test/tests/iiodevices_BasicAPITest.lua +++ b/test/afb-test/tests/iiodevices_BasicAPITest.lua @@ -18,9 +18,74 @@ NOTE: strict mode: every global variables should be prefixed by '_' --]] -local testPrefix ="iiodevices_BasicAPITest_"; +-- Init ddevices --- This tests the 'list' verb of the iiodevices API -_AFT.testVerbStatusSuccess(testPrefix.."list","iiodevices","list", {}); +local device = {"acceleration", "gyroscope", "compass"} -_AFT.exitAtEnd(); +_AFT.setBeforeAll(function() + if not os.execute("/bin/bash ".._AFT.bindingRootDir.."/var/beforeAll.sh") then + print("Fail to create iio_dummy_device") + return -1 + else + return 0 + end +end) + +local testPrefix ="iiodevices_BasicAPITest_" + +for i = 1, 3 +do + + -- This tests the 'subscribe' verb of the iiodevices API without frequency + _AFT.testVerbStatusSuccess(testPrefix.."subscribe-without-frequency_"..device[i],"iiodevices","subscribe", {event = device[i], args = "xy"}, nil, + function() + _AFT.callVerb("iiodevices","unsubscribe",{event= device[i]}) + end) + + -- This tests the 'subscribe' verb of the iiodevices API with null frequency + _AFT.testVerbStatusSuccess(testPrefix.."subscribe-with-null-frequency_"..device[i],"iiodevices","subscribe", {event = device[i], args = "xy", frequency = 0 }, nil, + function() + _AFT.callVerb("iiodevices","unsubscribe",{event= device[i]}) + end) + + -- This tests the 'subscribe' verb of the iiodevices API with high frequency + _AFT.testVerbStatusSuccess(testPrefix.."subscribe-with-100000000000-frequency_"..device[i],"iiodevices","subscribe", {event = device[i], args = "xy", frequency = 100000000000 }, nil, + function() + _AFT.callVerb("iiodevices","unsubscribe",{event= device[i]}) + end) + + -- This tests the 'subscribe' verb of the iiodevices API with negative frequency + _AFT.testVerbStatusSuccess(testPrefix.."subscribe-with-negative-frequency_"..device[i],"iiodevices","subscribe", {event = device[i], args = "xy", frequency = -1 }, nil, + function() + _AFT.callVerb("iiodevices","unsubscribe",{event= device[i]}) + end) + + -- This tests the 'subscribe' verb of the iiodevices API with floating frequency + _AFT.testVerbStatusError(testPrefix.."subscribe-with-floating-frequency_"..device[i],"iiodevices","subscribe", {event = device[i], args = "xy", frequency = -3.141592654 }, nil, + function() + _AFT.callVerb("iiodevices","unsubscribe",{event= device[i]}) + end) + + -- This tests the 'subscribe' verb of the iiodevices API + _AFT.testVerbStatusSuccess(testPrefix.."subscribe_"..device[i],"iiodevices","subscribe",{event = device[i], args = "xy", frequency = 10 }, nil, + function() + _AFT.callVerb("iiodevices","unsubscribe",{event = device[i]}) + end) + + -- This tests the 'unsubscribe' verb of the iiodevices API + _AFT.testVerbStatusSuccess(testPrefix.."unsubscribe_"..device[i],"iiodevices","unsubscribe",{event = device[i]}, + function() + _AFT.callVerb("iiodevices","unsubscribe",{event = device[i], args = "xy"}) + end, nil) + + -- This tests the 'unsubscribe' verb of the iiodevices API when we are not actually subscribed to a device + _AFT.testVerbStatusSuccess(testPrefix.."doubleUnsubscribe_"..device[i],"iiodevices","unsubscribe",{event = device[i]}, + function() + _AFT.callVerb("iiodevices","unsubscribe",{event = device[i]}) + end,nil) + + -- This tests the 'unsubscribe' verb of the iiodevices API when unsubscribing from a non-existing device + _AFT.testVerbStatusSuccess(testPrefix.."unsubscribeNonExistingdevice_"..device[i],"iiodevices","unsubscribe",{event = device[i]}) +end + +_AFT.exitAtEnd() -- cgit 1.2.3-korg