diff options
author | Nicolas Dechesne <nicolas.dechesne@linaro.org> | 2017-10-22 23:36:35 +0200 |
---|---|---|
committer | Nicolas Dechesne <nicolas.dechesne@linaro.org> | 2017-10-23 14:51:03 +0000 |
commit | 53e2a9403fb33e0b08285a011b0a6a95ef2228ca (patch) | |
tree | de9042d9013743e7a8d797bcaa53035532a3e3f5 | |
parent | 920fca1f08e39e014414a3c8d105c0f3ab49b3a3 (diff) |
automated: hci-smoke: add new test
Bluetooth HCI smoke test. This initial set of tests only verify the state of the
bluetooth $DEVICE at boot (on or off) and test if the $DEVICE can be enabled and
disabled.
There is no BT transmission/connection.
== Example of test execution with test-runner on DB410c, running OE RPB:
name,test_case_id,result,measurement,units,test_params
hci-smoke,hciconfig,pass,,,DEVICE=hci0;BOOT=enabled
hci-smoke,hciconfig-boot,pass,,,DEVICE=hci0;BOOT=enabled
hci-smoke,hciconfig-down,pass,,,DEVICE=hci0;BOOT=enabled
hci-smoke,hciconfig-up,pass,,,DEVICE=hci0;BOOT=enabled
== Static code analysis
$ python3 validate.py -s SC1091 -g
* SHELLCHECK: [PASSED]: automated/linux/hci-smoke/hci-smoke-test.sh
* YAMLVALID: [PASSED]: automated/linux/hci-smoke/hci-smoke.yaml
* METADATA [PASSED]: automated/linux/hci-smoke/hci-smoke.yaml
Change-Id: I7818fc9e904b8da6a378dbb63bfd660e8f6ee4da
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
-rwxr-xr-x | automated/linux/hci-smoke/hci-smoke-test.sh | 95 | ||||
-rw-r--r-- | automated/linux/hci-smoke/hci-smoke.yaml | 26 |
2 files changed, 121 insertions, 0 deletions
diff --git a/automated/linux/hci-smoke/hci-smoke-test.sh b/automated/linux/hci-smoke/hci-smoke-test.sh new file mode 100755 index 0000000..3f91091 --- /dev/null +++ b/automated/linux/hci-smoke/hci-smoke-test.sh @@ -0,0 +1,95 @@ +#!/bin/sh +# +# HCI smoke tests +# +# Copyright (C) 2017, Linaro Limited. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# Author: Nicolas Dechesne <nicolas.dechesne@linaro.org> +# + +# shellcheck disable=SC1091 +. ../../lib/sh-test-lib +OUTPUT="$(pwd)/output" +RESULT_FILE="${OUTPUT}/result.txt" +export RESULT_FILE +DEVICE="hci0" +BOOT="enabled" + +usage() { + echo "Usage: $0 [-b <enabled|disabled>] [-d <device>]" 1>&2 + exit 1 +} + +while getopts "d:b:" o; do + case "$o" in + d) DEVICE="${OPTARG}" ;; + b) BOOT="${OPTARG}" ;; + *) usage ;; + esac +done + +# sanity test hciconfig config +test_hciconfig() { + info_msg "Running hciconfig test..." + hciconfig "${DEVICE}" + exit_on_fail "hciconfig" +} + +# test HCI device is $BOOT at boot +test_hciconfig_boot() { + info_msg "Running hciconfig_boot test..." + if [ "${BOOT}" = "enabled" ]; then + hciconfig "${DEVICE}" | grep "UP RUNNING" + else + hciconfig "${DEVICE}" | grep "DOWN" + fi + check_return "hciconfig-boot" +} + +# test HCI device is up +test_hciconfig_up() { + info_msg "Running hciconfig-up test..." + hciconfig "${DEVICE}" up + sleep 1 + hciconfig "${DEVICE}" | grep "UP RUNNING" + check_return "hciconfig-up" +} + +test_hciconfig_down() { + info_msg "Running hciconfig-down test..." + hciconfig "${DEVICE}" down + sleep 1 + hciconfig "${DEVICE}" | grep DOWN + check_return "hciconfig-down" +} + +# Test run. +! check_root && error_msg "This script must be run as root" +create_out_dir "${OUTPUT}" + +info_msg "About to run HCI smoke test..." +info_msg "Output directory: ${OUTPUT}" + +# ensure that device is available at boot +test_hciconfig +test_hciconfig_boot +test_hciconfig_down +test_hciconfig_up + + + + diff --git a/automated/linux/hci-smoke/hci-smoke.yaml b/automated/linux/hci-smoke/hci-smoke.yaml new file mode 100644 index 0000000..04a878f --- /dev/null +++ b/automated/linux/hci-smoke/hci-smoke.yaml @@ -0,0 +1,26 @@ +metadata: + format: Lava-Test Test Definition 1.0 + name: hci-smoke + description: "Basic HCI smoke tests" + maintainer: + - nicolas.dechesne@linaro.org + os: + - debian + - ubuntu + - centos + - fedora + scope: + - functional + devices: + - dragonboard410c + +params: + DEVICE: hci0 + # expected state on first boot: <enabled> or <disabled> + BOOT: enabled + +run: + steps: + - cd ./automated/linux/hci-smoke + - ./hci-smoke-test.sh -d "${DEVICE}" -b "${BOOT}" + - ../../utils/send-to-lava.sh ./output/result.txt |