From cb6b878f2a09f8b8b9b030a12efe948b3276745d Mon Sep 17 00:00:00 2001 From: Frederic Marec Date: Fri, 10 May 2019 17:59:25 +0200 Subject: Add test fixtures to set up environment Add script to check /etc/platform-info presence Add script to check necessary files Add script to set up environment Add script to set down environment Modify get test Bug-AGL: SPEC-2362 Change-Id: I733cb86cc8c616ffdbfcb88cb96a2a4a5b97e652 Signed-off-by: Frederic Marec --- test/afb-test/fixtures/CMakeLists.txt | 30 +++++++++++++++++++ .../fixtures/createPlatformInfoDirectory.sh | 29 ++++++++++++++++++ test/afb-test/fixtures/hardware.json | 1 + .../fixtures/removePlatforInfoDirectory.sh | 26 ++++++++++++++++ test/afb-test/fixtures/testPresence.sh | 35 ++++++++++++++++++++++ test/afb-test/tests/aft-BasicAPITests.lua | 34 ++++++++++++++++++++- 6 files changed, 154 insertions(+), 1 deletion(-) create mode 100644 test/afb-test/fixtures/CMakeLists.txt create mode 100755 test/afb-test/fixtures/createPlatformInfoDirectory.sh create mode 100644 test/afb-test/fixtures/hardware.json create mode 100755 test/afb-test/fixtures/removePlatforInfoDirectory.sh create mode 100755 test/afb-test/fixtures/testPresence.sh diff --git a/test/afb-test/fixtures/CMakeLists.txt b/test/afb-test/fixtures/CMakeLists.txt new file mode 100644 index 0000000..a8baab9 --- /dev/null +++ b/test/afb-test/fixtures/CMakeLists.txt @@ -0,0 +1,30 @@ +########################################################################### +# Copyright 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. +########################################################################### + +################################################## +# Platform-info test Fixtures +################################################## +PROJECT_TARGET_ADD(data-files) + + file(GLOB DATA_FILES "*.sh" "*.json") + add_input_files("${DATA_FILES}") + + SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES + LABELS "TEST-DATA" + OUTPUT_NAME ${TARGET_NAME} + ) diff --git a/test/afb-test/fixtures/createPlatformInfoDirectory.sh b/test/afb-test/fixtures/createPlatformInfoDirectory.sh new file mode 100755 index 0000000..db2c801 --- /dev/null +++ b/test/afb-test/fixtures/createPlatformInfoDirectory.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +set -e + +########################################################################### +# Copyright 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. +########################################################################### + +#set SUDO variable +SUDO=$(command -v sudo) + +"${SUDO}" mkdir -p "/etc/platform-info" +pwd +"${SUDO}" cp "var/build.json" "/etc/platform-info" +"${SUDO}" cp "var/hardware.json" "/etc/platform-info" \ No newline at end of file diff --git a/test/afb-test/fixtures/hardware.json b/test/afb-test/fixtures/hardware.json new file mode 100644 index 0000000..9695b6b --- /dev/null +++ b/test/afb-test/fixtures/hardware.json @@ -0,0 +1 @@ +{"cpu_count":6,"bluetooth_devices":"","soc_family":"R-Car Gen3","cpu_arch":"aarch64","soc_name":"M3","soc_id":"r8a7796","cpu_compatibility":"cortex-a57 armv8","memory_total":1753,"soc_revision":"ES1.0","ethernet_devices":"dummy0 eth0","can_devices":"can0 can1 sllin0","board_model":"kingfisher-m3ulcb-r8a7796","wifi_devices":"wlan0"} \ No newline at end of file diff --git a/test/afb-test/fixtures/removePlatforInfoDirectory.sh b/test/afb-test/fixtures/removePlatforInfoDirectory.sh new file mode 100755 index 0000000..8e87636 --- /dev/null +++ b/test/afb-test/fixtures/removePlatforInfoDirectory.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +set -e + +########################################################################### +# Copyright 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. +########################################################################### + +#set SUDO variable +SUDO=$(command -v sudo) + +"${SUDO}" rm -rf "/etc/platform-info" diff --git a/test/afb-test/fixtures/testPresence.sh b/test/afb-test/fixtures/testPresence.sh new file mode 100755 index 0000000..2e82422 --- /dev/null +++ b/test/afb-test/fixtures/testPresence.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +set -e + +########################################################################### +# Copyright 2019 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. +########################################################################### + +if [ ! -d "/etc/platform-info" ] +then + echo "missing directory /etc/platform-info" + exit 0 +else + if [ ! -f "/etc/platform-info/build.json" ] && [ ! -f "/etc/platform-info/hardware.json" ] + then + echo "missing tests files for testing" + exit 0 + else + exit 1 + fi +fi \ No newline at end of file diff --git a/test/afb-test/tests/aft-BasicAPITests.lua b/test/afb-test/tests/aft-BasicAPITests.lua index 730db7e..73cdd8e 100644 --- a/test/afb-test/tests/aft-BasicAPITests.lua +++ b/test/afb-test/tests/aft-BasicAPITests.lua @@ -20,11 +20,43 @@ local testPrefix ="agl-info_BasicAPITest_" +_AFT.setBeforeAll(function() + + if not os.execute("/bin/bash ".._AFT.bindingRootDir.."/var/testPresence.sh") then + + print("Platform-info environment already set up") + return 0 + + else + if not os.execute("/bin/bash ".._AFT.bindingRootDir.."/var/createPlatformInfoDirectory.sh") then + + print("Fail to set up Platform-info test environment") + return -1 + + else + print("Platform-info environment set up") + _AFT.setAfterAll(function() + if not os.execute("/bin/bash ".._AFT.bindingRootDir.."/var/removePlatforInfoDirectory.sh") then + + print("Fail to set down Platform-info test environment") + return -1 + + else + print("Platform-info environment set down") + return 0 + + end + end) + return 0 + end + end +end) + -- This tests the 'get' verb of the platform-info API _AFT.testVerbStatusSuccess(testPrefix.."get", "platform-info", "get", ".build.layers.agl-manifest.revision") -- This tests the 'get' verb of the platform-info API -_AFT.testVerbStatusError(testPrefix.."get", "platform-info", "get", {}) +_AFT.testVerbStatusSuccess(testPrefix.."get", "platform-info", "get", {}) -- This tests the 'set' verb of the platform-info API _AFT.testVerbStatusSuccess(testPrefix.."set", "platform-info", "set", {arg=".build.layers.agl-manifest.revision", value="test"}) -- cgit 1.2.3-korg