mirror of https://github.com/nirenjan/libx52.git
84 lines
1.8 KiB
Bash
Executable File
84 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# LED tests
|
|
#
|
|
# Copyright (C) 2012-2018 Nirenjan Krishnan (nirenjan@nirenjan.org)
|
|
#
|
|
# SPDX-License-Identifier: GPL-2.0-only WITH Classpath-exception-2.0
|
|
|
|
source $(dirname $0)/../common_infra.sh
|
|
|
|
TEST_SUITE_ID="libx52 LED state tests"
|
|
|
|
mono_led_test()
|
|
{
|
|
local led_ident=$(echo $1 | tr a-z A-Z)
|
|
local led_state=$2
|
|
local state=$(echo "\$X52_LED_${led_ident}_${led_state}" | tr a-z A-Z)
|
|
local TEST_ID="Test setting the $led_ident button $led_state"
|
|
|
|
expect_pattern $X52_LED_COMMAND_INDEX $(eval echo $state)
|
|
|
|
$X52CLI led $led_ident $led_state
|
|
|
|
verify_output
|
|
}
|
|
|
|
color_led_test()
|
|
{
|
|
local led_ident=$(echo $1 | tr a-z A-Z)
|
|
local led_color=$(echo $2 | tr A-Z a-z)
|
|
local led_r_state=off
|
|
local led_g_state=off
|
|
local TEST_ID="Test setting the $led_ident button to $led_color"
|
|
|
|
case $led_color in
|
|
'red')
|
|
led_r_state=on
|
|
;;
|
|
'green')
|
|
led_g_state=on
|
|
;;
|
|
'amber')
|
|
led_r_state=on
|
|
led_g_state=on
|
|
;;
|
|
'off')
|
|
;;
|
|
*)
|
|
echo "ERROR: Unknown ident" >&2
|
|
exit $EXIT_HARD_ERROR
|
|
;;
|
|
esac
|
|
|
|
led_r_state=$(echo "\$X52_LED_${led_ident}_red_${led_r_state}" | tr a-z A-Z)
|
|
led_g_state=$(echo "\$X52_LED_${led_ident}_green_${led_g_state}" | tr a-z A-Z)
|
|
|
|
expect_pattern \
|
|
$X52_LED_COMMAND_INDEX $(eval echo $led_r_state) \
|
|
$X52_LED_COMMAND_INDEX $(eval echo $led_g_state)
|
|
|
|
$X52CLI led $led_ident $led_color
|
|
|
|
verify_output
|
|
}
|
|
|
|
# Run Mono-color LED tests
|
|
for led in fire throttle
|
|
do
|
|
for state in on off
|
|
do
|
|
mono_led_test $led $state
|
|
done
|
|
done
|
|
|
|
# Run multi-color LED tests
|
|
for led in a b d e t1 t2 t3 pov clutch
|
|
do
|
|
for color in off red amber green
|
|
do
|
|
color_led_test $led $color
|
|
done
|
|
done
|
|
|
|
verify_test_suite
|