aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederic Marec <frederic.marec@iot.bzh>2018-10-24 16:12:37 +0200
committerFrederic Marec <frederic.marec@iot.bzh>2018-11-09 10:38:31 +0100
commit1594db372602c5859484b5f75ab6fb89f6c55550 (patch)
tree7708cd1f34c65b719689700f50afd7d1514ca5e9
parentd1845cf62f850f6ef8ed9c344df431fc8195a098 (diff)
Improve iiodevices test
ADD $SUDO variable to be able to run test natively and on target ADD afterall script to remove dummy devices ADD new tests Remove test/afb-test.sh following new afm-test process Change-Id: Ib04e21f23518e8836c7bec00999f15f5d8212ae9 Signed-off-by: Frederic Marec <frederic.marec@iot.bzh>
-rwxr-xr-xtest/afb-test.sh29
-rwxr-xr-xtest/afb-test/fixtures/afterAll.sh39
-rwxr-xr-xtest/afb-test/fixtures/beforeAll.sh27
-rw-r--r--test/afb-test/tests/iiodevices_BasicAPITest-devices.lua44
-rw-r--r--test/afb-test/tests/iiodevices_BasicAPITest.lua95
5 files changed, 137 insertions, 97 deletions
diff --git a/test/afb-test.sh b/test/afb-test.sh
deleted file mode 100755
index fa4f821..0000000
--- a/test/afb-test.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-
-BINDER=$(command -v afb-daemon)
-AFBTEST="$(pkg-config --variable libdir afb-test)/aft.so"
-PROCNAME="aft-iiodevices"
-PORT=1234
-TOKEN=
-LOGFILE="test.log"
-[ "$1" ] && BUILDDIR="$1" || exit 1
-
-TESTPACKAGEDIR="${BUILDDIR}/package-test"
-export AFT_CONFIG_PATH="${TESTPACKAGEDIR}/etc"
-export AFT_PLUGIN_PATH="${TESTPACKAGEDIR}/var:${TESTPACKAGEDIR}/lib/plugins"
-
-pkill $PROCNAME
-
-timeout -s 9 10 "${BINDER}" --name="${PROCNAME}" \
- --port="${PORT}" \
- --roothttp=. \
- --tracereq=common \
- --token=${TOKEN} \
- --workdir="${TESTPACKAGEDIR}" \
- --binding="../package/lib/afb-iiodevices.so" \
- --binding="$AFBTEST" \
- --call="aft-iiodevices/launch_all_tests:{}" \
- --call="aft-iiodevices/exit:{}" \
- -vvv > "${LOGFILE}" 2>&1
-
-find "${BUILDDIR}" -name test_results.log -exec cat {} \;
diff --git a/test/afb-test/fixtures/afterAll.sh b/test/afb-test/fixtures/afterAll.sh
new file mode 100755
index 0000000..67d4607
--- /dev/null
+++ b/test/afb-test/fixtures/afterAll.sh
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+set -e
+
+###########################################################################
+# Copyright 2018 IoT.bzh
+#
+# author:Frédéric Marec <frederic.marec@iot.bzh>
+#
+# 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.
+###########################################################################
+
+#set SUDO variable
+SUDO=$(command -v sudo)
+
+# delete dummy devices
+if test -d "/sys/kernel/config/iio/devices/dummy/16-001d"
+then
+ "${SUDO}" rm -rf "/sys/kernel/config/iio/devices/dummy/16-001d"
+else
+ echo "devices 16-001d didn't exist"
+fi
+
+if test -d "/sys/kernel/config/iio/devices/dummy/16-006b"
+then
+ "${SUDO}" rm -rf "/sys/kernel/config/iio/devices/dummy/16-006b"
+else
+ echo "devices 16-006b didn't exist"
+fi \ No newline at end of file
diff --git a/test/afb-test/fixtures/beforeAll.sh b/test/afb-test/fixtures/beforeAll.sh
index 1a72b80..65a99f3 100755
--- a/test/afb-test/fixtures/beforeAll.sh
+++ b/test/afb-test/fixtures/beforeAll.sh
@@ -20,45 +20,48 @@ set -e
# limitations under the License.
###########################################################################
+#set SUDO variable
+SUDO=$(command -v sudo)
+
# Init list
list="acceleration gyroscope compass"
# Configure iio_dummy
-modprobe industrialio
-modprobe industrialio-configfs
+"${SUDO}" modprobe industrialio
+"${SUDO}" modprobe industrialio-configfs
if ! test -d "/sys/kernel/config"
then
mount -t configfs none /sys/kernel/config
fi
-modprobe industrialio-sw-device
-modprobe industrialio-sw-trigger
-modprobe iio-trig-hrtimer
-modprobe iio_dummy
+"${SUDO}" modprobe industrialio-sw-device
+"${SUDO}" modprobe industrialio-sw-trigger
+"${SUDO}" modprobe iio-trig-hrtimer
+"${SUDO}" modprobe iio_dummy
# create one iio_dummy
-for device in $list
+for device in $list
do
if ! test -d "/sys/kernel/config/iio/triggers/hrtimer/instance_$device"
- then
- mkdir -p "/sys/kernel/config/iio/triggers/hrtimer/instance_$device"
- else
+ then
+ "${SUDO}" mkdir -p "/sys/kernel/config/iio/triggers/hrtimer/instance_$device"
+ else
echo "instance_$device was already created"
fi
if ! test -d "/sys/kernel/config/iio/devices/dummy/16-001d"
then
- mkdir -p "/sys/kernel/config/iio/devices/dummy/16-001d"
+ "${SUDO}" mkdir -p "/sys/kernel/config/iio/devices/dummy/16-001d"
else
echo "$device was already created"
fi
if ! test -d "/sys/kernel/config/iio/devices/dummy/16-006b"
then
- mkdir -p "/sys/kernel/config/iio/devices/dummy/16-006b"
+ "${SUDO}" mkdir -p "/sys/kernel/config/iio/devices/dummy/16-006b"
else
echo "$device was already created"
fi
diff --git a/test/afb-test/tests/iiodevices_BasicAPITest-devices.lua b/test/afb-test/tests/iiodevices_BasicAPITest-devices.lua
index f2e9cc4..4bc4435 100644
--- a/test/afb-test/tests/iiodevices_BasicAPITest-devices.lua
+++ b/test/afb-test/tests/iiodevices_BasicAPITest-devices.lua
@@ -18,41 +18,31 @@
NOTE: strict mode: every global variables should be prefixed by '_'
--]]
+local devices = {"acceleration", "gyroscope", "compass"}
local testPrefix ="iiodevices_BasicAPITest_without_devices_"
--- This tests the 'subscribe' verb of the iiodevices API without any devices
-_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","iiodevices","subscribe", {event = "acceleration", args = "abc"})
+for _, device in pairs(devices)
+do
+ -- This tests the 'subscribe' verb of the iiodevices API without any devices
+ _AFT.testVerbStatusError(testPrefix.."subscribe-"..device,"iiodevices","subscribe", {event = device, args = "xy"})
-_AFT.testVerbStatusError(testPrefix.."subscribe-acceleration-with-wrong-argument","iiodevices","subscribe", {event = "acceleration", args = "abc"})
-_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-"..device.."-with-tree-axes","iiodevices","subscribe", {event = device, args = "abc"})
-_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-"..device.."-with-wrong-argument","iiodevices","subscribe", {event = device, aaaaaaaaaaaaaaaaaaaaa = "xy"})
-_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"})
+ _AFT.testVerbStatusSuccess(testPrefix.."subscribe-"..device.."-replace-argument","iiodevices","subscribe", {event = device, args = "xy", wrongarg = "test"})
--- 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.."subscribe-"..device.."-edge-effect","iiodevices","subscribe", {event = device, args = "xy"})
-_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"})
+ -- This tests the 'unsubscribe' verb of the iiodevices API without any devices
+ _AFT.testVerbStatusError(testPrefix.."unsubscribe-"..device.."","iiodevices","unsubscribe", {event = device})
-_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.testVerbStatusError(testPrefix.."unsubscribe-"..device.."-with-wrong-argument","iiodevices","unsubscribe", {event = device, aaaaaaaaaaaaaaaaaaaaa = "xy"})
+
+ _AFT.testVerbStatusError(testPrefix.."unsubscribe-"..device.."-with-too-many-argument","iiodevices","unsubscribe", {event = device, args = "xy", wrongarg = "test"})
+
+ _AFT.testVerbStatusError(testPrefix.."unsubscribe-"..device.."-edge-effect","iiodevices","unsubscribe", {event = device})
+end
_AFT.exitAtEnd()
diff --git a/test/afb-test/tests/iiodevices_BasicAPITest.lua b/test/afb-test/tests/iiodevices_BasicAPITest.lua
index 4bce13a..1f43bb4 100644
--- a/test/afb-test/tests/iiodevices_BasicAPITest.lua
+++ b/test/afb-test/tests/iiodevices_BasicAPITest.lua
@@ -20,7 +20,7 @@
-- Init ddevices
-local device = {"acceleration", "gyroscope", "compass"}
+local devices = {"acceleration", "gyroscope", "compass"}
_AFT.setBeforeAll(function()
if not os.execute("/bin/bash ".._AFT.bindingRootDir.."/var/beforeAll.sh") then
@@ -31,61 +31,98 @@ _AFT.setBeforeAll(function()
end
end)
+_AFT.setAfterAll(function()
+ if not os.execute("/bin/bash ".._AFT.bindingRootDir.."/var/afterAll.sh") then
+ print("Fail to remove dummy devices")
+ return -1
+ else
+ return 0
+ end
+end)
+
local testPrefix ="iiodevices_BasicAPITest_"
-for i = 1, 3
+for _, device in pairs(devices)
do
+ _AFT.describe(testPrefix.."receive-subscribe event", function()
+ local timeout = 2000000
+ local evt = "iiodevices/"..device.."0"
+ _AFT.callVerb("iiodevices","subscribe",{event= device})
+ _AFT.addEventToMonitor(evt)
+ _AFT.assertEvtReceived(evt, timeout)
+ _AFT.callVerb("iiodevices","unsubscribe",{event= device})
+ end
+ ,nil, nil)
+
+ -- This tests the 'subscribe' verb of the iiodevices API without frequency
+ _AFT.testVerbStatusSuccess(testPrefix.."subscribe-without-frequency_"..device,"iiodevices","subscribe", {event = device, args = "xy"}, nil,
+ function()
+ _AFT.callVerb("iiodevices","unsubscribe",{event= device})
+ end)
-- 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,
+ _AFT.testVerbStatusSuccess(testPrefix.."subscribe-with-3-axes_"..device,"iiodevices","subscribe", {event = device, args = "xyz"}, nil,
function()
- _AFT.callVerb("iiodevices","unsubscribe",{event= device[i]})
- end)
+ _AFT.callVerb("iiodevices","unsubscribe",{event= device})
+ 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,
+ _AFT.testVerbStatusSuccess(testPrefix.."subscribe-with-null-frequency_"..device,"iiodevices","subscribe", {event = device, args = "xy", frequency = 0 }, nil,
function()
- _AFT.callVerb("iiodevices","unsubscribe",{event= device[i]})
- end)
+ _AFT.callVerb("iiodevices","unsubscribe",{event= device})
+ 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,
+ _AFT.testVerbStatusSuccess(testPrefix.."subscribe-with-100000000000-frequency_"..device,"iiodevices","subscribe", {event = device, args = "xy", frequency = 100000000000 }, nil,
function()
- _AFT.callVerb("iiodevices","unsubscribe",{event= device[i]})
- end)
+ _AFT.callVerb("iiodevices","unsubscribe",{event= device})
+ 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,
+ _AFT.testVerbStatusSuccess(testPrefix.."subscribe-with-negative-frequency_"..device,"iiodevices","subscribe", {event = device, args = "xy", frequency = -1 }, nil,
function()
- _AFT.callVerb("iiodevices","unsubscribe",{event= device[i]})
- end)
+ _AFT.callVerb("iiodevices","unsubscribe",{event= device})
+ 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,
+ _AFT.testVerbStatusSuccess(testPrefix.."subscribe-with-floating-frequency_"..device,"iiodevices","subscribe", {event = device, args = "xy", frequency = -3.141592654 }, nil,
function()
- _AFT.callVerb("iiodevices","unsubscribe",{event= device[i]})
+ _AFT.callVerb("iiodevices","unsubscribe",{event= device})
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)
+ _AFT.testVerbStatusSuccess(testPrefix.."subscribe_"..device,"iiodevices","subscribe",{event = device, args = "xy", frequency = 10 }, nil,
+ function()
+ _AFT.callVerb("iiodevices","unsubscribe",{event = device})
+ 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)
+ _AFT.testVerbStatusSuccess(testPrefix.."unsubscribe_"..device,"iiodevices","unsubscribe",{event = device},
+ function()
+ _AFT.callVerb("iiodevices","unsubscribe",{event = device, 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)
+ _AFT.testVerbStatusSuccess(testPrefix.."doubleUnsubscribe_"..device,"iiodevices","unsubscribe",{event = device},
+ function()
+ _AFT.callVerb("iiodevices","unsubscribe",{event = device})
+ 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]})
+ _AFT.testVerbStatusSuccess(testPrefix.."unsubscribeNonExistingdevice_"..device,"iiodevices","unsubscribe",{event = device})
+
+ -- This tests the 'unsubscribe' verb of the iiodevices API when unsubscribing with null device
+ _AFT.testVerbStatusError(testPrefix.."unsubscribe-with-null-event_"..device,"iiodevices","unsubscribe",{event = null})
+
+ -- This tests the 'subscribe' verb of the iiodevices API when subscribing whith device
+ _AFT.testVerbStatusError(testPrefix.."subscribe-with-null-event_"..device,"iiodevices","subscribe",{event = null})
+
+ -- This tests the 'unsubscribe' verb of the iiodevices API when unsubscribing with null argument
+ _AFT.testVerbStatusError(testPrefix.."unsubscribe-with-null-arg_"..device,"iiodevices","unsubscribe",{event = device, args = null})
+
+ -- This tests the 'subscribe' verb of the iiodevices API when subscribing whith null argument
+ _AFT.testVerbStatusError(testPrefix.."subscribe-with-null-arg_"..device,"iiodevices","subscribe",{event = device, args = null})
+
end
_AFT.exitAtEnd()