From 6463f4536279b81a18dfe8023bf50d9c97a1ee78 Mon Sep 17 00:00:00 2001 From: Stoyan Bogdanov Date: Fri, 21 Jun 2019 15:12:37 +0300 Subject: tests: network: Add test bindings for agl-service-network - Create the file and folders structure required. for building test bindings. Add all required Cmake files. - Create aft-agl-network.json configuration file for testing binding. - Create network.lua for testing bindings. Bug-AGL: SPEC-2539 Signed-off-by: Stoyan Bogdanov Change-Id: Ibd93f41751339ecac03dab8e83673da55eafb3f6 --- test/CMakeLists.txt | 30 ++++++++++++++++++-- test/TEST-README.md | 30 ++++++++++++++++++++ test/afb-test/CMakeLists.txt | 21 ++++++++++++++ test/afb-test/etc/CMakeLists.txt | 32 +++++++++++++++++++++ test/afb-test/etc/aft-agl-network.json | 22 ++++++++++++++ test/afb-test/tests/CMakeLists.txt | 31 ++++++++++++++++++++ test/afb-test/tests/network.lua | 52 ++++++++++++++++++++++++++++++++++ 7 files changed, 215 insertions(+), 3 deletions(-) create mode 100644 test/TEST-README.md create mode 100644 test/afb-test/CMakeLists.txt create mode 100644 test/afb-test/etc/CMakeLists.txt create mode 100644 test/afb-test/etc/aft-agl-network.json create mode 100644 test/afb-test/tests/CMakeLists.txt create mode 100644 test/afb-test/tests/network.lua diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 79065a4..3bbf712 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,6 +1,21 @@ -########################################### -# build and install afb-client-demo -########################################### +########################################################################### +# Copyright 2019 Konsulko Group +# +# Author: Stoyan Bogdanov +# +# 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. +########################################################################### + PKG_CHECK_MODULES(libsystemd libsystemd>=222) PKG_CHECK_MODULES(libafbwsc libafbwsc>=5.99) @@ -14,3 +29,12 @@ TARGET_LINK_LIBRARIES(agl-service-network-ctl INSTALL(TARGETS agl-service-network-ctl RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +# Include any directory not starting with _ +# ----------------------------------------------------- +PROJECT_SUBDIRS_ADD(${PROJECT_SRC_DIR_PATTERN}) + +ADD_TEST(NAME AGL_SERVICE_GPS_TESTS + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMAND afb-test.sh "${CMAKE_BINARY_DIR}/package" "${CMAKE_BINARY_DIR}/package-test" SERVICE + ) + diff --git a/test/TEST-README.md b/test/TEST-README.md new file mode 100644 index 0000000..b2475ae --- /dev/null +++ b/test/TEST-README.md @@ -0,0 +1,30 @@ +## Building the test widgets +1. Source the SDK environment script +2. Create a build directory +3. Configure and build the project + +``` +mkdir build +cd build +cmake .. -DBUILD_TEST_WGT=TRUE +make +make widget + +``` +Note: If you omit the -DBUILD_TEST_WGT=TRUE parameter for cmake, +you'll have to type `make test_widget` to compile the test widget. + +This should produce two _.wgt_ files - one with the service +and one with the tests within the build directory. + +Run the tests: +``` +scp *.wgt root@:~ +ssh root@ +afm-test $(ls *test.wgt) + +``` + +network.lua is testing just part of the verbs presented in the agl-service-network. +Proper testing of wifi, bluetooth and ethernet require known enviroment, +this is the reason why some of the vers are not tested. diff --git a/test/afb-test/CMakeLists.txt b/test/afb-test/CMakeLists.txt new file mode 100644 index 0000000..44bfeac --- /dev/null +++ b/test/afb-test/CMakeLists.txt @@ -0,0 +1,21 @@ +########################################################################### +# Copyright 2019 Konsulko Group +# +# Author: Stoyan Bogdanov +# +# 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/etc/CMakeLists.txt b/test/afb-test/etc/CMakeLists.txt new file mode 100644 index 0000000..eb0fdb8 --- /dev/null +++ b/test/afb-test/etc/CMakeLists.txt @@ -0,0 +1,32 @@ +########################################################################### +# Copyright 2019 Konsulko Group +# +# Author: Stoyan Bogdanov +# +# 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. +########################################################################### + +################################################## +# network 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 "TEST-CONFIG" + OUTPUT_NAME ${TARGET_NAME} + ) + diff --git a/test/afb-test/etc/aft-agl-network.json b/test/afb-test/etc/aft-agl-network.json new file mode 100644 index 0000000..495249a --- /dev/null +++ b/test/afb-test/etc/aft-agl-network.json @@ -0,0 +1,22 @@ +{ + "id": "http://iot.bzh/download/public/schema/json/ctl-schema.json#", + "": "http://iot.bzh/download/public/schema/json/ctl-schema.json#", + "metadata": { + "uid": "Test", + "version": "1.0", + "api": "aft-network", + "info": "AFB-test binding configuration file to test network api.", + "require": [ + "network-manager" + ] + }, + "testVerb": { + "uid": "launch_all_tests", + "info": "Launch all the tests", + "action": "lua://AFT#_launch_test", + "args": { + "trace": "network", + "files": ["network.lua"] + } + } +} diff --git a/test/afb-test/tests/CMakeLists.txt b/test/afb-test/tests/CMakeLists.txt new file mode 100644 index 0000000..b867d34 --- /dev/null +++ b/test/afb-test/tests/CMakeLists.txt @@ -0,0 +1,31 @@ +########################################################################### +# Copyright 2019 Konsulko Group +# +# Author: Stoyan Bogdanov +# +# 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. +########################################################################### + +################################################## +# network 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 "TEST-DATA" + OUTPUT_NAME ${TARGET_NAME} + ) + diff --git a/test/afb-test/tests/network.lua b/test/afb-test/tests/network.lua new file mode 100644 index 0000000..2aebe23 --- /dev/null +++ b/test/afb-test/tests/network.lua @@ -0,0 +1,52 @@ +--[[ + Copyright 2019 Konsulko Group + + author:Stoyan Bogdanov + + 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. +--]] + + +-- Test subscribe [working ok] +_AFT.testVerbStatusSuccess('testSubscribeASuccess','network-manager','subscribe', {value="global_state"}) +_AFT.testVerbStatusSuccess('testSubscribeBSuccess','network-manager','subscribe', {value="technologies"}) +_AFT.testVerbStatusSuccess('testSubscribeCSuccess','network-manager','subscribe', {value="technology_properties"}) +_AFT.testVerbStatusSuccess('testSubscribeDSuccess','network-manager','subscribe', {value="services"}) +_AFT.testVerbStatusSuccess('testSubscribeESuccess','network-manager','subscribe', {value="service_properties"}) +_AFT.testVerbStatusSuccess('testSubscribeFSuccess','network-manager','subscribe', {value="agent"}) + +-- Test unsubscribe +_AFT.testVerbStatusSuccess('testUnsubscribeASuccess','network-manager','unsubscribe', {value="global_state"}) +_AFT.testVerbStatusSuccess('testUnsubscribeBSuccess','network-manager','unsubscribe', {value="technologies"}) +_AFT.testVerbStatusSuccess('testUnsubscribeCSuccess','network-manager','unsubscribe', {value="technology_properties"}) +_AFT.testVerbStatusSuccess('testUnsubscribeDSuccess','network-manager','unsubscribe', {value="services"}) +_AFT.testVerbStatusSuccess('testUnsubscribeESuccess','network-manager','unsubscribe', {value="service_properties"}) +_AFT.testVerbStatusSuccess('testUnsubscribeFSuccess','network-manager','unsubscribe', {value="agent"}) + +_AFT.testVerbStatusSuccess('testStateSuccess','network-manager','state', {}) +_AFT.testVerbStatusSuccess('testOfflineSuccess','network-manager','offline', {}) +_AFT.testVerbStatusSuccess('testTechnologiesSuccess','network-manager','technologies', {}) +_AFT.testVerbStatusSuccess('testServicesSuccess','network-manager','services', {}) + +_AFT.testVerbStatusSuccess('testDisableTechnologySuccess','network-manager','disable_technology', {technology="ethernet"}) +_AFT.testVerbStatusSuccess('testEnableTechnologySuccess','network-manager', 'enable_technology', {technology="ethernet"}) + +_AFT.testVerbStatusSuccess('testDisableTechnologySuccess','network-manager','disable_technology', {technology="wifi"}) +_AFT.testVerbStatusSuccess('testEnableTechnologySuccess','network-manager', 'enable_technology', {technology="wifi"}) + +_AFT.testVerbStatusSuccess('testDisableTechnologySuccess','network-manager','disable_technology', {technology="bluetooth"}) +_AFT.testVerbStatusSuccess('testEnableTechnologySuccess','network-manager', 'enable_technology', {technology="bluetooth"}) + +_AFT.testVerbStatusSuccess('testgetpropertySuccess','network-manager','get_property', {technology="wifi"}) +_AFT.testVerbStatusSuccess('testgetpropertySuccess','network-manager','get_property', {technology="ethernet"}) +_AFT.testVerbStatusSuccess('testgetpropertySuccess','network-manager','get_property', {technology="bluetooth"}) -- cgit 1.2.3-korg