diff options
author | 2018-07-27 17:05:53 +0200 | |
---|---|---|
committer | 2018-07-31 17:20:32 +0200 | |
commit | cfd292fcd7b27d82307383c1e2ccd9fb65eec9e6 (patch) | |
tree | 5f63e9d91d460743b91a3cf905efce63328b2f5e | |
parent | 814b2faa124ee365f62338ce36a4c5158e0b4a16 (diff) |
Setup the project for afb-test framework
Wrote a couple of basic API tests
Change-Id: I606752e7b46cb2afdc10f3319a24ef15675faa3b
Signed-off-by: Clément Malléjac <clementmallejac@gmail.com>
-rw-r--r-- | test/CMakeLists.txt | 27 | ||||
-rw-r--r-- | test/afb-test/CMakeLists.txt | 22 | ||||
-rwxr-xr-x | test/afb-test/afb-test.sh | 34 | ||||
-rw-r--r-- | test/afb-test/etc/CMakeLists.txt | 31 | ||||
-rw-r--r-- | test/afb-test/etc/aft-signal-composer_config.json | 22 | ||||
-rw-r--r-- | test/afb-test/tests/CMakeLists.txt | 31 | ||||
-rw-r--r-- | test/afb-test/tests/signal-composer_BasicAPITest.lua | 37 |
7 files changed, 204 insertions, 0 deletions
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt new file mode 100644 index 0000000..cd0328b --- /dev/null +++ b/test/CMakeLists.txt @@ -0,0 +1,27 @@ +########################################################################### +# Copyright 2015 - 2018 IoT.bzh +# +# author: Clément MAlléjac <clementmallejac@gmail.com> +# +# 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. +########################################################################### + + +# Include any directory not starting with _ +# ----------------------------------------------------- +PROJECT_SUBDIRS_ADD(${PROJECT_SRC_DIR_PATTERN}) + +ADD_TEST(NAME AGL_SERVICE_SIGNAL_COMPOSER_TESTS + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMAND afb-test.sh ${CMAKE_BINARY_DIR} +) diff --git a/test/afb-test/CMakeLists.txt b/test/afb-test/CMakeLists.txt new file mode 100644 index 0000000..feb8a05 --- /dev/null +++ b/test/afb-test/CMakeLists.txt @@ -0,0 +1,22 @@ +########################################################################### +# Copyright 2018 IoT.bzh +# +# author: Clément Malléjac <clementmallejac@gmail.com> +# +# 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. +########################################################################### + + +# Include any directory not starting with _ +# ----------------------------------------------------- +PROJECT_SUBDIRS_ADD(${PROJECT_SRC_DIR_PATTERN}) diff --git a/test/afb-test/afb-test.sh b/test/afb-test/afb-test.sh new file mode 100755 index 0000000..aa96bb1 --- /dev/null +++ b/test/afb-test/afb-test.sh @@ -0,0 +1,34 @@ +#!/bin/sh -x + +BINDER=$(command -v afb-daemon) +CLIENT=$(command -v afb-client-demo) +AFBTEST="$(pkg-config --variable libdir afb-test)/aft.so" +PROCNAME="aft-signal-composer" +PORT=1234 +TOKEN= +LOGPIPE="test.log" +[ "$1" ] && BUILDDIR="$1" || exit 1 + +[ ! -p $LOGPIPE ] && mkfifo $LOGPIPE + +pkill $PROCNAME + +${BINDER} --name="${PROCNAME}" \ +--port="${PORT}" \ +--roothttp=. \ +--tracereq=common \ +--token=${TOKEN} \ +--workdir="${BUILDDIR}/package" \ +--binding='/home/cmall/git/txc-demo/binding/build/afb-txc-binding.so' \ +--binding="lib/afb-signal-composer.so" \ +--binding="$AFBTEST" \ +--call="testSignal-composer/launch_all_tests:{}" \ +-vvv > ${LOGPIPE} 2>&1 & + +while read -r line +do + [ "$(echo "${line}" | grep 'NOTICE: Browser URL=')" ] && break +done < ${LOGPIPE} + +${CLIENT} ws://localhost:${PORT}/api?token=${TOKEN} testSignal-composer exit +rm -f ${LOGPIPE}
\ No newline at end of file diff --git a/test/afb-test/etc/CMakeLists.txt b/test/afb-test/etc/CMakeLists.txt new file mode 100644 index 0000000..a0e1109 --- /dev/null +++ b/test/afb-test/etc/CMakeLists.txt @@ -0,0 +1,31 @@ +########################################################################### +# Copyright 2018 IoT.bzh +# +# author: Clément Malléjac <clementmallejac@gmail.com> +# +# 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. +########################################################################### + +################################################## +# Signal-Composer test configuration files +################################################## +PROJECT_TARGET_ADD(afb-test-config) + + file(GLOB CONF_FILES "*.json") + + add_input_files("${CONF_FILES}") + + SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES + LABELS "BINDING-CONFIG" + OUTPUT_NAME ${TARGET_NAME} + ) diff --git a/test/afb-test/etc/aft-signal-composer_config.json b/test/afb-test/etc/aft-signal-composer_config.json new file mode 100644 index 0000000..4a6ba6b --- /dev/null +++ b/test/afb-test/etc/aft-signal-composer_config.json @@ -0,0 +1,22 @@ +{ + "id": "http://iot.bzh/download/public/schema/json/ctl-schema.json#", + "$schema": "http://iot.bzh/download/public/schema/json/ctl-schema.json#", + "metadata": { + "uid": "Test", + "version": "1.0", + "api": "testSignal-composer", + "info": "AFB-test binding configuration file to test signal-composer api.", + "require": [ + "signal-composer" + ] + }, + "testVerb": { + "uid": "launch_all_tests", + "info": "Launch all the tests", + "action": "lua://AFT#_launch_test", + "args": { + "trace": "signal-composer", + "files": ["signal-composer_BasicAPITest.lua"] + } + } +}
\ No newline at end of file diff --git a/test/afb-test/tests/CMakeLists.txt b/test/afb-test/tests/CMakeLists.txt new file mode 100644 index 0000000..a7739de --- /dev/null +++ b/test/afb-test/tests/CMakeLists.txt @@ -0,0 +1,31 @@ +########################################################################### +# Copyright 2018 IoT.bzh +# +# author: Clément Malléjac <clementmallejac@gmail.com> +# +# 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. +########################################################################### + + +################################################## +# Signal-Composer Lua Scripts +################################################## +PROJECT_TARGET_ADD(test-files) + + file(GLOB LUA_FILES "*.lua" "*.sh") + add_input_files("${LUA_FILES}") + + SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES + LABELS "DATA" + OUTPUT_NAME ${TARGET_NAME} + ) diff --git a/test/afb-test/tests/signal-composer_BasicAPITest.lua b/test/afb-test/tests/signal-composer_BasicAPITest.lua new file mode 100644 index 0000000..c1d3855 --- /dev/null +++ b/test/afb-test/tests/signal-composer_BasicAPITest.lua @@ -0,0 +1,37 @@ + --[[ + Copyright (C) 2018 "IoT.bzh" + Author Clément Malléjac <clementmallejac@gmail.com> + + 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 '_' +--]] + +_AFT.testVerb("signal_composer_BasicAPITest_subscribe","signal-composer","subscribe",{ event = "longitude"},nil, + function() + _AFT.callVerb("signal-composer","unsubscribe",{ event = "longitude"}) + end); +_AFT.testVerb("signal_composer_BasicAPITest_unsubscribe","signal-composer","unsubscribe",{ event = "heading"},nil, + function() + _AFT.callVerb("signal-composer","subscribe",{ event = "heading"}) + end); + +_AFT.testVerb("signal_composer_BasicAPITest_getNoFilter","signal-composer","get",{signal= "fuel_level"}); +_AFT.testVerb("signal_composer_BasicAPITest_getFilterAvg","signal-composer","get",{signal= "odometer", options= {average= 10}}); +_AFT.testVerb("signal_composer_BasicAPITest_getFilterMin","signal-composer","get",{signal= "latitude", options= {minimum= 10}}); +_AFT.testVerb("signal_composer_BasicAPITest_getFilterMax","signal-composer","get",{signal= "vehicle_speed", options= {maximum= 10}}); + +_AFT.testVerb("signal_composer_BasicAPITest_list","signal-composer","list"); + +_AFT.exitAtEnd();
\ No newline at end of file |