libx52/tests/x52cli/test_leds

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