diff options
author | Frederic Marec <frederic.marec@iot.bzh> | 2018-11-30 10:30:22 +0100 |
---|---|---|
committer | Frederic Marec <frederic.marec@iot.bzh> | 2018-12-04 14:26:28 +0100 |
commit | bab203035f3e2545ef5e947696dc25bcfd1a40b7 (patch) | |
tree | d5e9d99933d4f8228e7cbd9371288da54370790a | |
parent | 44e34ee88555ad6d812fb593d56482e61d7785aa (diff) |
Add tests for 4a-softmixer
Add test tree
Add new config for test
Add tests for softmixer
Add script to load snd-aloop before test
Bug-AGL: SPEC-1796
Change-Id: I6336dbb5689e7baf8f2e8754b23f6aa83b0797d7
Signed-off-by: Frederic Marec <frederic.marec@iot.bzh>
-rw-r--r-- | conf.d/project/etc/smixer-smixer-test-config.json | 60 | ||||
-rw-r--r-- | test/CMakeLists.txt | 27 | ||||
-rw-r--r-- | test/afb-test/CMakeLists.txt | 22 | ||||
-rw-r--r-- | test/afb-test/etc/CMakeLists.txt | 31 | ||||
-rw-r--r-- | test/afb-test/etc/aft-smixer-config.json | 22 | ||||
-rw-r--r-- | test/afb-test/fixtures/CMakeLists.txt | 30 | ||||
-rw-r--r-- | test/afb-test/fixtures/beforeAll.sh | 25 | ||||
-rw-r--r-- | test/afb-test/tests/4a-softmixer_BasicAPITest.lua | 33 | ||||
-rw-r--r-- | test/afb-test/tests/CMakeLists.txt | 31 |
9 files changed, 281 insertions, 0 deletions
diff --git a/conf.d/project/etc/smixer-smixer-test-config.json b/conf.d/project/etc/smixer-smixer-test-config.json new file mode 100644 index 0000000..8643175 --- /dev/null +++ b/conf.d/project/etc/smixer-smixer-test-config.json @@ -0,0 +1,60 @@ +{ + "$schema": "http://iot.bzh/download/public/schema/json/ctl-schema.json", + "metadata": { + "uid": "Soft Mixer", + "version": "1.0", + "api": "smixer", + "info": "Soft Mixer emulating hardware mixer" + }, + "resources": [ + { + "uid": "softmixer", + "info": "Map alsa-loop subdevices to 4A HAL streams", + "spath": "./package/lib/plugins:./package/var:./lib/plugins:./var", + "libs": ["alsa-softmixer.ctlso", "smixer-test-usb_8ch.lua"] + } + ], + "onload": [ + { + "uid": "mixer-create-api", + "info": "Create Audio Router", + "action": "plugin://softmixer#MixerCreate", + "args": { + "uid":"Alsa-Mixer", + "max_loop": 1, + "max_sink": 8, + "max_source": 8, + "max_zone": 8, + "max_stream": 8, + "max_ramp": 4 + } + }, + { + "uid": "mixer-attach-loop", + "info": "Create Audio Router", + "action": "plugin://softmixer#MixerAttach", + "args": { + "loops" : { + "uid":"Alsa-Loopback", + "path": "/dev/snd/by-path/platform-snd_aloop.0", + "devices" : {"playback":0, "capture":1}, + "subdevs" : [ + {"subdev": 0, "numid": 51, "uid": "loop-legacy"}, + {"subdev": 1, "numid": 57, "uid": "loop-multimedia"}, + {"subdev": 2, "numid": 63}, + {"subdev": 3, "numid": 69}, + {"subdev": 4, "numid": 75}, + {"subdev": 5, "numid": 81}, + {"subdev": 6, "numid": 87}, + {"subdev": 7, "numid": 93} + ] + } + } + }, + { + "uid": "lua-test-attach", + "info": "For testing purpose attach stream & zone directly from LUA script to simulate HAL", + "action": "lua://softmixer#_mixer_simple_test_" + } + ] +} diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt new file mode 100644 index 0000000..cc48395 --- /dev/null +++ b/test/CMakeLists.txt @@ -0,0 +1,27 @@ +########################################################################### +# Copyright 2015 - 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. +########################################################################### + + +# Include any directory not starting with _ +# ----------------------------------------------------- +PROJECT_SUBDIRS_ADD(${PROJECT_SRC_DIR_PATTERN}) + +ADD_TEST(NAME AGL_4A_SOFTMIXER_TESTS + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMAND afm-test ${CMAKE_BINARY_DIR}/package ${CMAKE_BINARY_DIR}/package-test +)
\ No newline at end of file diff --git a/test/afb-test/CMakeLists.txt b/test/afb-test/CMakeLists.txt new file mode 100644 index 0000000..9df744e --- /dev/null +++ b/test/afb-test/CMakeLists.txt @@ -0,0 +1,22 @@ +########################################################################### +# 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. +########################################################################### + + +# Include any directory not starting with _ +# ----------------------------------------------------- +PROJECT_SUBDIRS_ADD(${PROJECT_SRC_DIR_PATTERN})
\ 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..86920cd --- /dev/null +++ b/test/afb-test/etc/CMakeLists.txt @@ -0,0 +1,31 @@ +########################################################################### +# 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. +########################################################################### + +################################################## +# 4a Softmixer test configuration files +################################################## +PROJECT_TARGET_ADD(softmixer-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} + )
\ No newline at end of file diff --git a/test/afb-test/etc/aft-smixer-config.json b/test/afb-test/etc/aft-smixer-config.json new file mode 100644 index 0000000..2a9ba1c --- /dev/null +++ b/test/afb-test/etc/aft-smixer-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": "aft-4a-smixer", + "info": "AFB-test binding configuration file to test ahl api.", + "require": [ + "smixer" + ] + }, + "testVerb": { + "uid": "launch_all_tests", + "info": "Launch all the tests", + "action": "lua://AFT#_launch_test", + "args": { + "trace": "smixer", + "files": ["4a-softmixer_BasicAPITest.lua"] + } + } +}
\ No newline at end of file diff --git a/test/afb-test/fixtures/CMakeLists.txt b/test/afb-test/fixtures/CMakeLists.txt new file mode 100644 index 0000000..40e39f9 --- /dev/null +++ b/test/afb-test/fixtures/CMakeLists.txt @@ -0,0 +1,30 @@ +########################################################################### +# 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. +########################################################################### + +################################################## +# 4a Softmixer test configuration files +################################################## +PROJECT_TARGET_ADD(data-files) + + file(GLOB DATA_FILES "*.sh") + 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/beforeAll.sh b/test/afb-test/fixtures/beforeAll.sh new file mode 100644 index 0000000..4fcfc6d --- /dev/null +++ b/test/afb-test/fixtures/beforeAll.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +########################################################################### +# 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) + +#Install Alsa Loopback Driver +"$SUDO" modprobe snd-aloop diff --git a/test/afb-test/tests/4a-softmixer_BasicAPITest.lua b/test/afb-test/tests/4a-softmixer_BasicAPITest.lua new file mode 100644 index 0000000..f16b239 --- /dev/null +++ b/test/afb-test/tests/4a-softmixer_BasicAPITest.lua @@ -0,0 +1,33 @@ +--[[ + Copyright (C) 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. + + + NOTE: strict mode: every global variables should be prefixed by '_' +--]] + +_AFT.setBeforeAll(function() + if not os.execute("/bin/bash ".._AFT.bindingRootDir.."/var/beforeAll.sh") then + print("Fail to setup test") + return -1 + else + return 0 + end +end) + +local testPrefix ="4a-smixer_BasicAPITest_" + +-- This tests the ping verb of the audio High level API +_AFT.testVerbStatusSuccess(testPrefix.."ping","smixer","ping",{}, nil, nil) diff --git a/test/afb-test/tests/CMakeLists.txt b/test/afb-test/tests/CMakeLists.txt new file mode 100644 index 0000000..5bbe0d5 --- /dev/null +++ b/test/afb-test/tests/CMakeLists.txt @@ -0,0 +1,31 @@ +########################################################################### +# 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. +########################################################################### + + +################################################## +# 4a Softmixer Lua Scripts +################################################## +PROJECT_TARGET_ADD(test-files) + + file(GLOB LUA_FILES "*.lua" ) + add_input_files("${LUA_FILES}") + + SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES + LABELS "TEST-DATA" + OUTPUT_NAME ${TARGET_NAME} + )
\ No newline at end of file |