mirror of https://github.com/nirenjan/libx52.git
107 lines
2.3 KiB
Bash
Executable File
107 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# Script to generate the test scripts
|
|
# Most of the test cases are extremely similar, but they do need to be created
|
|
# and saved in the repository so that the automake infrastructure can pick them
|
|
# up.
|
|
|
|
_mono_led_template()
|
|
{
|
|
local led_ident=$(echo $1 | tr a-z A-Z)
|
|
local led_color=$2
|
|
local state=$(echo "\$X52_LED_${led_ident}_${led_color}" | tr a-z A-Z)
|
|
cat << EOF
|
|
#!/bin/bash
|
|
# Test setting the $led_ident button $led_color
|
|
|
|
source \$(dirname \$0)/common_infra.sh
|
|
|
|
expect_pattern \$X52_LED_COMMAND_INDEX $state
|
|
|
|
\$X52CLI led $led_ident $led_color
|
|
|
|
verify_output
|
|
|
|
EOF
|
|
}
|
|
|
|
_color_led_template()
|
|
{
|
|
local led_ident=$(echo $1 | tr a-z A-Z)
|
|
local led_color=$2
|
|
local led_r_state=off
|
|
local led_g_state=off
|
|
|
|
case $led_color in
|
|
"red")
|
|
led_r_state=on
|
|
;;
|
|
"green")
|
|
led_g_state=on
|
|
;;
|
|
"amber")
|
|
led_r_state=on
|
|
led_g_state=on
|
|
;;
|
|
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)
|
|
|
|
cat << EOF
|
|
#!/bin/bash
|
|
# Test setting the $led_ident button to $led_color
|
|
|
|
source \$(dirname \$0)/common_infra.sh
|
|
|
|
expect_pattern \$X52_LED_COMMAND_INDEX $led_r_state
|
|
expect_pattern \$X52_LED_COMMAND_INDEX $led_g_state
|
|
|
|
\$X52CLI led $led_ident $led_color
|
|
|
|
verify_output
|
|
|
|
EOF
|
|
}
|
|
|
|
make_led_tests()
|
|
{
|
|
# Make the mono-color LED tests
|
|
for led in fire throttle
|
|
do
|
|
for state in off on
|
|
do
|
|
filename=test_led_${led}_${state}.sh
|
|
_mono_led_template $led $state > $filename
|
|
echo -e "\t$filename \\" >> Makefile.am
|
|
done
|
|
done
|
|
|
|
# Make the multi-color LED tests
|
|
for led in a b d e t1 t2 t3 pov clutch
|
|
do
|
|
for state in off red amber green
|
|
do
|
|
filename=test_led_${led}_${state}.sh
|
|
_color_led_template $led $state > test_led_${led}_${state}.sh
|
|
echo -e "\t$filename \\" >> Makefile.am
|
|
done
|
|
done
|
|
}
|
|
|
|
clear_tests()
|
|
{
|
|
# Delete the tests from Makefile.am
|
|
sed -i '/^TESTS /,$d' Makefile.am
|
|
echo "TESTS = \\" >> Makefile.am
|
|
}
|
|
|
|
finalize_tests()
|
|
{
|
|
# Put the last line to close the tests list
|
|
echo -e "\ttest_skip.sh\n" >> Makefile.am
|
|
}
|
|
|
|
clear_tests
|
|
make_led_tests
|
|
finalize_tests
|