@@ -14,7 +14,7 @@ DUT_OUTPUT=gpio-tools-test-output
# once it exits as the COPROC_PID will be cleared.
DUT_PID=""
-SOURCE_DIR="$(dirname ${BASH_SOURCE[0]})"
+SOURCE_DIR=$(dirname "${BASH_SOURCE[0]}")
# mappings from local name to system chip name, path, dev name
declare -A GPIOSIM_CHIP_NAME
@@ -70,7 +70,7 @@ gpiosim_chip() {
local DEVPATH=$GPIOSIM_CONFIGFS/$NAME
local BANKPATH=$DEVPATH/bank0
- mkdir -p $BANKPATH
+ mkdir -p "$BANKPATH"
for ARG in "$@"
do
@@ -80,7 +80,7 @@ gpiosim_chip() {
if [ "$KEY" = "num_lines" ]
then
- echo $VAL > $BANKPATH/num_lines
+ echo "$VAL" > "$BANKPATH/num_lines"
elif [ "$KEY" = "line_name" ]
then
local OFFSET LINENAME
@@ -88,12 +88,12 @@ gpiosim_chip() {
LINENAME=$(echo "$VAL" | cut -d":" -f2)
local LINEPATH=$BANKPATH/line$OFFSET
- mkdir -p $LINEPATH
- echo $LINENAME > $LINEPATH/name
+ mkdir -p "$LINEPATH"
+ echo "$LINENAME" > "$LINEPATH/name"
fi
done
- echo 1 > $DEVPATH/live
+ echo 1 > "$DEVPATH/live"
local CHIP_NAME
CHIP_NAME=$(<"$BANKPATH/chip_name")
@@ -104,12 +104,12 @@ gpiosim_chip() {
gpiosim_chip_number() {
local NAME=${GPIOSIM_CHIP_NAME[$1]}
- echo ${NAME#"gpiochip"}
+ echo "${NAME#gpiochip}"
}
gpiosim_chip_symlink() {
GPIOSIM_CHIP_LINK="$2/${GPIOSIM_APP_NAME}-$$-lnk"
- ln -s ${GPIOSIM_CHIP_PATH[$1]} "$GPIOSIM_CHIP_LINK"
+ ln -s "${GPIOSIM_CHIP_PATH[$1]}" "$GPIOSIM_CHIP_LINK"
}
gpiosim_chip_symlink_cleanup() {
@@ -126,7 +126,7 @@ gpiosim_set_pull() {
local DEVNAME=${GPIOSIM_DEV_NAME[$1]}
local CHIPNAME=${GPIOSIM_CHIP_NAME[$1]}
- echo $PULL > $GPIOSIM_SYSFS/$DEVNAME/$CHIPNAME/sim_gpio$OFFSET/pull
+ echo "$PULL" > "$GPIOSIM_SYSFS/$DEVNAME/$CHIPNAME/sim_gpio$OFFSET/pull"
}
gpiosim_check_value() {
@@ -135,7 +135,7 @@ gpiosim_check_value() {
local DEVNAME=${GPIOSIM_DEV_NAME[$1]}
local CHIPNAME=${GPIOSIM_CHIP_NAME[$1]}
- VAL=$(<$GPIOSIM_SYSFS/$DEVNAME/$CHIPNAME/sim_gpio$OFFSET/value)
+ VAL=$(<"$GPIOSIM_SYSFS/$DEVNAME/$CHIPNAME/sim_gpio$OFFSET/value")
[ "$VAL" = "$EXPECTED" ]
}
@@ -147,20 +147,20 @@ gpiosim_wait_value() {
local PORT=$GPIOSIM_SYSFS/$DEVNAME/$CHIPNAME/sim_gpio$OFFSET/value
for _i in {1..30}; do
- [ "$(<$PORT)" = "$EXPECTED" ] && return
+ [ "$(<"$PORT")" = "$EXPECTED" ] && return
sleep 0.01
done
return 1
}
gpiosim_cleanup() {
- for CHIP in ${!GPIOSIM_CHIP_NAME[@]}
+ for CHIP in "${!GPIOSIM_CHIP_NAME[@]}"
do
local NAME=${GPIOSIM_APP_NAME}-$$-$CHIP
local DEVPATH=$GPIOSIM_CONFIGFS/$NAME
- echo 0 > $DEVPATH/live
+ echo 0 > "$DEVPATH/live"
find "$DEVPATH" -type d -name hog -exec rmdir '{}' '+'
find "$DEVPATH" -type d -name "line*" -exec rmdir '{}' '+'
find "$DEVPATH" -type d -name "bank*" -exec rmdir '{}' '+'
@@ -202,9 +202,9 @@ dut_run_redirect() {
}
dut_read_redirect() {
- output=$(<$SHUNIT_TMPDIR/$DUT_OUTPUT)
+ output=$(<"$SHUNIT_TMPDIR/$DUT_OUTPUT")
local ORIG_IFS="$IFS"
- IFS=$'\n' lines=($output)
+ IFS=$'\n' mapfile -t lines <<< "$output"
IFS="$ORIG_IFS"
}
@@ -220,11 +220,11 @@ dut_read() {
fi
lines+=("$LINE")
done
- output="${lines[@]}"
+ output="${lines[*]}"
}
dut_readable() {
- read -t 0 -u ${COPROC[0]} LINE
+ read -t 0 -u "${COPROC[0]}" LINE
}
dut_flush() {
@@ -253,17 +253,15 @@ dut_regex_match() {
}
dut_write() {
- echo "$@" >&${COPROC[1]}
+ echo "$@" >&"${COPROC[1]}"
}
dut_kill() {
- SIGNUM=$1
-
- kill $SIGNUM $DUT_PID
+ kill "$@" "$DUT_PID"
}
dut_wait() {
- wait $DUT_PID
+ wait "$DUT_PID"
export status=$?
unset DUT_PID
}
@@ -271,10 +269,10 @@ dut_wait() {
dut_cleanup() {
if [ -n "$DUT_PID" ]
then
- kill -SIGTERM $DUT_PID 2> /dev/null
- wait $DUT_PID || false
+ kill -SIGTERM "$DUT_PID" 2> /dev/null
+ wait "$DUT_PID" || false
fi
- rm -f $SHUNIT_TMPDIR/$DUT_OUTPUT
+ rm -f "$SHUNIT_TMPDIR/$DUT_OUTPUT"
}
tearDown() {
@@ -283,7 +281,7 @@ tearDown() {
}
request_release_line() {
- $SOURCE_DIR/gpioget -c "$@" >/dev/null
+ "$SOURCE_DIR/gpioget" -c "$@" >/dev/null
}
#
@@ -332,21 +330,21 @@ test_gpiodetect_a_chip() {
local sim2dev=${GPIOSIM_DEV_NAME[sim2]}
# by name
- run_tool gpiodetect $sim0
+ run_tool gpiodetect "$sim0"
output_regex_match "$sim0 \[${sim0dev}[-:]node0\] \(4 lines\)"
num_lines_is 1
status_is 0
# by path
- run_tool gpiodetect ${GPIOSIM_CHIP_PATH[sim1]}
+ run_tool gpiodetect "${GPIOSIM_CHIP_PATH[sim1]}"
output_regex_match "$sim1 \[${sim1dev}[-:]node0\] \(8 lines\)"
num_lines_is 1
status_is 0
# by number
- run_tool gpiodetect $(gpiosim_chip_number sim2)
+ run_tool gpiodetect "$(gpiosim_chip_number sim2)"
output_regex_match "$sim2 \[${sim2dev}[-:]node0\] \(16 lines\)"
num_lines_is 1
@@ -354,7 +352,7 @@ test_gpiodetect_a_chip() {
# by symlink
gpiosim_chip_symlink sim2 .
- run_tool gpiodetect $GPIOSIM_CHIP_LINK
+ run_tool gpiodetect "$GPIOSIM_CHIP_LINK"
output_regex_match "$sim2 \[${sim2dev}[-:]node0\] \(16 lines\)"
num_lines_is 1
@@ -373,7 +371,7 @@ test_gpiodetect_multiple_chips() {
local sim1dev=${GPIOSIM_DEV_NAME[sim1]}
local sim2dev=${GPIOSIM_DEV_NAME[sim2]}
- run_tool gpiodetect $sim0 $sim1 $sim2
+ run_tool gpiodetect "$sim0" "$sim1" "$sim2"
output_regex_match "$sim0 \[${sim0dev}[-:]node0\] \(4 lines\)"
output_regex_match "$sim1 \[${sim1dev}[-:]node0\] \(8 lines\)"
@@ -441,7 +439,7 @@ test_gpioinfo_a_chip() {
local sim1=${GPIOSIM_CHIP_NAME[sim1]}
# by name
- run_tool gpioinfo --chip $sim1
+ run_tool gpioinfo --chip "$sim1"
output_contains_line "$sim1 - 4 lines:"
output_regex_match "\\s+line\\s+0:\\s+unnamed\\s+input"
@@ -452,7 +450,7 @@ test_gpioinfo_a_chip() {
status_is 0
# by path
- run_tool gpioinfo --chip $sim1
+ run_tool gpioinfo --chip "$sim1"
output_contains_line "$sim1 - 4 lines:"
output_regex_match "\\s+line\\s+0:\\s+unnamed\\s+input"
@@ -463,7 +461,7 @@ test_gpioinfo_a_chip() {
status_is 0
# by number
- run_tool gpioinfo --chip $sim1
+ run_tool gpioinfo --chip "$sim1"
output_contains_line "$sim1 - 4 lines:"
output_regex_match "\\s+line\\s+0:\\s+unnamed\\s+input"
@@ -475,7 +473,7 @@ test_gpioinfo_a_chip() {
# by symlink
gpiosim_chip_symlink sim1 .
- run_tool gpioinfo --chip $GPIOSIM_CHIP_LINK
+ run_tool gpioinfo --chip "$GPIOSIM_CHIP_LINK"
output_contains_line "$sim1 - 4 lines:"
output_regex_match "\\s+line\\s+0:\\s+unnamed\\s+input"
@@ -494,7 +492,7 @@ test_gpioinfo_a_line() {
local sim1=${GPIOSIM_CHIP_NAME[sim1]}
# by offset
- run_tool gpioinfo --chip $sim1 2
+ run_tool gpioinfo --chip "$sim1" 2
output_regex_match "$sim1 2\\s+\"bar\"\\s+input"
num_lines_is 1
@@ -508,14 +506,14 @@ test_gpioinfo_a_line() {
status_is 0
# by chip and name
- run_tool gpioinfo --chip $sim1 2
+ run_tool gpioinfo --chip "$sim1" 2
output_regex_match "$sim1 2\\s+\"bar\"\\s+input"
num_lines_is 1
status_is 0
# unquoted
- run_tool gpioinfo --unquoted --chip $sim1 2
+ run_tool gpioinfo --unquoted --chip "$sim1" 2
output_regex_match "$sim1 2\\s+bar\\s+input"
num_lines_is 1
@@ -547,7 +545,7 @@ test_gpioinfo_multiple_lines() {
local sim1=${GPIOSIM_CHIP_NAME[sim1]}
# by offset
- run_tool gpioinfo --chip $sim1 1 2
+ run_tool gpioinfo --chip "$sim1" 1 2
output_regex_match "$sim1 1\\s+unnamed\\s+input"
output_regex_match "$sim1 2\\s+\"baz\"\\s+input"
@@ -563,7 +561,7 @@ test_gpioinfo_multiple_lines() {
status_is 0
# by name and offset
- run_tool gpioinfo --chip $sim0 bar 3
+ run_tool gpioinfo --chip "$sim0" bar 3
output_regex_match "$sim0 5\\s+\"bar\"\\s+input"
output_regex_match "$sim0 3\\s+unnamed\\s+input"
@@ -652,7 +650,7 @@ test_gpioinfo_with_same_line_twice() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
# by offset
- run_tool gpioinfo --chip $sim0 1 1
+ run_tool gpioinfo --chip "$sim0" 1 1
output_regex_match "$sim0 1\\s+\"foo\"\\s+input"
output_regex_match ".*lines '1' and '1' are the same line"
@@ -668,7 +666,7 @@ test_gpioinfo_with_same_line_twice() {
status_is 1
# by name and offset
- run_tool gpioinfo --chip $sim0 foo 1
+ run_tool gpioinfo --chip "$sim0" foo 1
output_regex_match "$sim0 1\\s+\"foo\"\\s+input"
output_regex_match ".*lines 'foo' and '1' are the same line"
@@ -703,7 +701,7 @@ test_gpioinfo_with_lines_strictly_by_name() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
# first by offset (to show offsets match first)
- run_tool gpioinfo --chip $sim0 1 6
+ run_tool gpioinfo --chip "$sim0" 1 6
output_regex_match "$sim0 1\\s+\"6\"\\s+input"
output_regex_match "$sim0 6\\s+\"1\"\\s+input"
@@ -711,7 +709,7 @@ test_gpioinfo_with_lines_strictly_by_name() {
status_is 0
# then strictly by name
- run_tool gpioinfo --by-name --chip $sim0 1
+ run_tool gpioinfo --by-name --chip "$sim0" 1
output_regex_match "$sim0 6\\s+\"1\"\\s+input"
num_lines_is 1
@@ -734,7 +732,7 @@ test_gpioinfo_with_nonexistent_line() {
output_regex_match ".*cannot find line 'nonexistent-line'"
status_is 1
- run_tool gpioinfo --chip ${GPIOSIM_CHIP_NAME[sim0]} nonexistent-line
+ run_tool gpioinfo --chip "${GPIOSIM_CHIP_NAME[sim0]}" nonexistent-line
output_regex_match ".*cannot find line 'nonexistent-line'"
status_is 1
@@ -745,7 +743,7 @@ test_gpioinfo_with_offset_out_of_range() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- run_tool gpioinfo --chip $sim0 0 1 2 3 4 5
+ run_tool gpioinfo --chip "$sim0" 0 1 2 3 4 5
output_regex_match "$sim0 0\\s+unnamed\\s+input"
output_regex_match "$sim0 1\\s+unnamed\\s+input"
@@ -782,12 +780,12 @@ test_gpioget_by_offset() {
gpiosim_set_pull sim0 1 pull-up
- run_tool gpioget --chip ${GPIOSIM_CHIP_NAME[sim0]} 1
+ run_tool gpioget --chip "${GPIOSIM_CHIP_NAME[sim0]}" 1
output_is "\"1\"=active"
status_is 0
- run_tool gpioget --unquoted --chip ${GPIOSIM_CHIP_NAME[sim0]} 1
+ run_tool gpioget --unquoted --chip "${GPIOSIM_CHIP_NAME[sim0]}" 1
output_is "1=active"
status_is 0
@@ -799,7 +797,7 @@ test_gpioget_by_symlink() {
gpiosim_set_pull sim0 1 pull-up
- run_tool gpioget --chip $GPIOSIM_CHIP_LINK 1
+ run_tool gpioget --chip "$GPIOSIM_CHIP_LINK" 1
output_is "\"1\"=active"
status_is 0
@@ -811,12 +809,12 @@ test_gpioget_by_chip_and_name() {
gpiosim_set_pull sim1 3 pull-up
- run_tool gpioget --chip ${GPIOSIM_CHIP_NAME[sim1]} foo
+ run_tool gpioget --chip "${GPIOSIM_CHIP_NAME[sim1]}" foo
output_is "\"foo\"=active"
status_is 0
- run_tool gpioget --unquoted --chip ${GPIOSIM_CHIP_NAME[sim1]} foo
+ run_tool gpioget --unquoted --chip "${GPIOSIM_CHIP_NAME[sim1]}" foo
output_is "foo=active"
status_is 0
@@ -845,7 +843,7 @@ test_gpioget_multiple_lines() {
gpiosim_set_pull sim0 5 pull-up
gpiosim_set_pull sim0 7 pull-up
- run_tool gpioget --unquoted --chip ${GPIOSIM_CHIP_NAME[sim0]} 0 1 2 3 4 5 6 7
+ run_tool gpioget --unquoted --chip "${GPIOSIM_CHIP_NAME[sim0]}" 0 1 2 3 4 5 6 7
output_is \
"0=inactive 1=inactive 2=active 3=active 4=inactive 5=active 6=inactive 7=active"
@@ -861,7 +859,7 @@ test_gpioget_multiple_lines_by_name_and_offset() {
gpiosim_set_pull sim0 4 pull-up
gpiosim_set_pull sim0 6 pull-up
- run_tool gpioget --chip $sim0 0 foo 4 bar
+ run_tool gpioget --chip "$sim0" 0 foo 4 bar
output_is "\"0\"=inactive \"foo\"=active \"4\"=active \"bar\"=active"
status_is 0
@@ -890,7 +888,7 @@ test_gpioget_with_numeric_values() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- run_tool gpioget --numeric --chip $sim0 0 1 2 3 4 5 6 7
+ run_tool gpioget --numeric --chip "$sim0" 0 1 2 3 4 5 6 7
output_is "0 0 1 1 0 1 0 1"
status_is 0
@@ -906,7 +904,7 @@ test_gpioget_with_active_low() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- run_tool gpioget --active-low --unquoted --chip $sim0 0 1 2 3 4 5 6 7
+ run_tool gpioget --active-low --unquoted --chip "$sim0" 0 1 2 3 4 5 6 7
output_is \
"0=active 1=active 2=inactive 3=inactive 4=active 5=inactive 6=active 7=inactive"
@@ -937,7 +935,7 @@ test_gpioget_with_pull_up() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- run_tool gpioget --bias=pull-up --unquoted --chip $sim0 0 1 2 3 4 5 6 7
+ run_tool gpioget --bias=pull-up --unquoted --chip "$sim0" 0 1 2 3 4 5 6 7
output_is \
"0=active 1=active 2=active 3=active 4=active 5=active 6=active 7=active"
@@ -954,7 +952,7 @@ test_gpioget_with_pull_down() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- run_tool gpioget --bias=pull-down --unquoted --chip $sim0 0 1 2 3 4 5 6 7
+ run_tool gpioget --bias=pull-down --unquoted --chip "$sim0" 0 1 2 3 4 5 6 7
output_is \
"0=inactive 1=inactive 2=inactive 3=inactive 4=inactive 5=inactive 6=inactive 7=inactive"
@@ -1026,12 +1024,12 @@ test_gpioget_with_lines_by_offset() {
gpiosim_set_pull sim0 1 pull-up
gpiosim_set_pull sim0 6 pull-down
- run_tool gpioget --chip ${GPIOSIM_CHIP_NAME[sim0]} 1 6
+ run_tool gpioget --chip "${GPIOSIM_CHIP_NAME[sim0]}" 1 6
output_is "\"1\"=active \"6\"=inactive"
status_is 0
- run_tool gpioget --unquoted --chip ${GPIOSIM_CHIP_NAME[sim0]} 1 6
+ run_tool gpioget --unquoted --chip "${GPIOSIM_CHIP_NAME[sim0]}" 1 6
output_is "1=active 6=inactive"
status_is 0
@@ -1045,12 +1043,12 @@ test_gpioget_with_lines_strictly_by_name() {
gpiosim_set_pull sim0 1 pull-up
gpiosim_set_pull sim0 6 pull-down
- run_tool gpioget --by-name --chip ${GPIOSIM_CHIP_NAME[sim0]} 1 6
+ run_tool gpioget --by-name --chip "${GPIOSIM_CHIP_NAME[sim0]}" 1 6
output_is "\"1\"=inactive \"6\"=active"
status_is 0
- run_tool gpioget --by-name --unquoted --chip ${GPIOSIM_CHIP_NAME[sim0]} 1 6
+ run_tool gpioget --by-name --unquoted --chip "${GPIOSIM_CHIP_NAME[sim0]}" 1 6
output_is "1=inactive 6=active"
status_is 0
@@ -1066,7 +1064,7 @@ test_gpioget_with_no_arguments() {
test_gpioget_with_chip_but_no_line_specified() {
gpiosim_chip sim0 num_lines=8
- run_tool gpioget --chip ${GPIOSIM_CHIP_NAME[sim0]}
+ run_tool gpioget --chip "${GPIOSIM_CHIP_NAME[sim0]}"
output_regex_match ".*at least one GPIO line must be specified"
status_is 1
@@ -1076,7 +1074,7 @@ test_gpioget_with_offset_out_of_range() {
gpiosim_chip sim0 num_lines=4
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- run_tool gpioget --chip $sim0 0 1 2 3 4 5
+ run_tool gpioget --chip "$sim0" 0 1 2 3 4 5
output_regex_match ".*offset 4 is out of range on chip '$sim0'"
output_regex_match ".*offset 5 is out of range on chip '$sim0'"
@@ -1095,7 +1093,7 @@ test_gpioget_with_same_line_twice() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
# by offset
- run_tool gpioget --chip $sim0 0 0
+ run_tool gpioget --chip "$sim0" 0 0
output_regex_match ".*lines '0' and '0' are the same line"
status_is 1
@@ -1107,19 +1105,19 @@ test_gpioget_with_same_line_twice() {
status_is 1
# by chip and name
- run_tool gpioget --chip $sim0 foo foo
+ run_tool gpioget --chip "$sim0" foo foo
output_regex_match ".*lines 'foo' and 'foo' are the same line"
status_is 1
# by name and offset
- run_tool gpioget --chip $sim0 foo 1
+ run_tool gpioget --chip "$sim0" foo 1
output_regex_match ".*lines 'foo' and '1' are the same line"
status_is 1
# by offset and name
- run_tool gpioget --chip $sim0 1 foo
+ run_tool gpioget --chip "$sim0" 1 foo
output_regex_match ".*lines '1' and 'foo' are the same line"
status_is 1
@@ -1128,7 +1126,7 @@ test_gpioget_with_same_line_twice() {
test_gpioget_with_invalid_bias() {
gpiosim_chip sim0 num_lines=8
- run_tool gpioget --bias=bad --chip ${GPIOSIM_CHIP_NAME[sim0]} 0 1
+ run_tool gpioget --bias=bad --chip "${GPIOSIM_CHIP_NAME[sim0]}" 0 1
output_regex_match ".*invalid bias.*"
status_is 1
@@ -1137,7 +1135,7 @@ test_gpioget_with_invalid_bias() {
test_gpioget_with_invalid_hold_period() {
gpiosim_chip sim0 num_lines=8
- run_tool gpioget --hold-period=bad --chip ${GPIOSIM_CHIP_NAME[sim0]} 0
+ run_tool gpioget --hold-period=bad --chip "${GPIOSIM_CHIP_NAME[sim0]}" 0
output_regex_match ".*invalid period.*"
status_is 1
@@ -1158,7 +1156,7 @@ test_gpioset_by_name() {
test_gpioset_by_offset() {
gpiosim_chip sim0 num_lines=8
- dut_run gpioset --banner --chip ${GPIOSIM_CHIP_NAME[sim0]} 1=1
+ dut_run gpioset --banner --chip "${GPIOSIM_CHIP_NAME[sim0]}" 1=1
gpiosim_check_value sim0 1 1
}
@@ -1167,7 +1165,7 @@ test_gpioset_by_symlink() {
gpiosim_chip sim0 num_lines=8
gpiosim_chip_symlink sim0 .
- dut_run gpioset --banner --chip $GPIOSIM_CHIP_LINK 1=1
+ dut_run gpioset --banner --chip "$GPIOSIM_CHIP_LINK" 1=1
gpiosim_check_value sim0 1 1
}
@@ -1176,7 +1174,7 @@ test_gpioset_by_chip_and_name() {
gpiosim_chip sim0 num_lines=8 line_name=1:foo
gpiosim_chip sim1 num_lines=8 line_name=3:foo
- dut_run gpioset --banner --chip ${GPIOSIM_CHIP_NAME[sim1]} foo=1
+ dut_run gpioset --banner --chip "${GPIOSIM_CHIP_NAME[sim1]}" foo=1
gpiosim_check_value sim1 3 1
}
@@ -1198,7 +1196,7 @@ test_gpioset_multiple_lines() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- dut_run gpioset --banner --chip $sim0 0=0 1=0 2=1 3=1 4=1 5=1 6=0 7=1
+ dut_run gpioset --banner --chip "$sim0" 0=0 1=0 2=1 3=1 4=1 5=1 6=0 7=1
gpiosim_check_value sim0 0 0
gpiosim_check_value sim0 1 0
@@ -1213,7 +1211,7 @@ test_gpioset_multiple_lines() {
test_gpioset_multiple_lines_by_name_and_offset() {
gpiosim_chip sim0 num_lines=4 line_name=1:foo line_name=2:bar
- dut_run gpioset --banner --chip ${GPIOSIM_CHIP_NAME[sim0]} 0=1 foo=1 bar=1 3=1
+ dut_run gpioset --banner --chip "${GPIOSIM_CHIP_NAME[sim0]}" 0=1 foo=1 bar=1 3=1
gpiosim_check_value sim0 0 1
gpiosim_check_value sim0 1 1
@@ -1238,7 +1236,7 @@ test_gpioset_with_active_low() {
gpiosim_chip sim0 num_lines=8
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- dut_run gpioset --banner --active-low -c $sim0 \
+ dut_run gpioset --banner --active-low -c "$sim0" \
0=0 1=0 2=1 3=1 4=1 5=1 6=0 7=1
gpiosim_check_value sim0 0 1
@@ -1272,7 +1270,7 @@ test_gpioset_with_push_pull() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- dut_run gpioset --banner --drive=push-pull --chip $sim0 \
+ dut_run gpioset --banner --drive=push-pull --chip "$sim0" \
0=0 1=0 2=1 3=1 4=1 5=1 6=0 7=1
gpiosim_check_value sim0 0 0
@@ -1295,7 +1293,7 @@ test_gpioset_with_open_drain() {
gpiosim_set_pull sim0 5 pull-up
gpiosim_set_pull sim0 7 pull-up
- dut_run gpioset --banner --drive=open-drain --chip $sim0 \
+ dut_run gpioset --banner --drive=open-drain --chip "$sim0" \
0=0 1=0 2=1 3=1 4=1 5=1 6=0 7=1
gpiosim_check_value sim0 0 0
@@ -1318,7 +1316,7 @@ test_gpioset_with_open_source() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- dut_run gpioset --banner --drive=open-source --chip $sim0 \
+ dut_run gpioset --banner --drive=open-source --chip "$sim0" \
0=0 1=0 2=1 3=0 4=1 5=1 6=0 7=1
gpiosim_check_value sim0 0 0
@@ -1337,7 +1335,7 @@ test_gpioset_with_pull_up() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
dut_run gpioset --banner --bias=pull-up --drive=open-drain \
- --chip $sim0 0=0 1=0 2=1 3=0 4=1 5=1 6=0 7=1
+ --chip "$sim0" 0=0 1=0 2=1 3=0 4=1 5=1 6=0 7=1
gpiosim_check_value sim0 0 0
gpiosim_check_value sim0 1 0
@@ -1355,7 +1353,7 @@ test_gpioset_with_pull_down() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
dut_run gpioset --banner --bias=pull-down --drive=open-source \
- --chip $sim0 0=0 1=0 2=1 3=0 4=1 5=1 6=0 7=1
+ --chip "$sim0" 0=0 1=0 2=1 3=0 4=1 5=1 6=0 7=1
gpiosim_check_value sim0 0 0
gpiosim_check_value sim0 1 0
@@ -1381,7 +1379,7 @@ test_gpioset_with_value_variants() {
gpiosim_set_pull sim0 6 pull-up
gpiosim_set_pull sim0 7 pull-down
- dut_run gpioset --banner --chip $sim0 0=0 1=1 2=active \
+ dut_run gpioset --banner --chip "$sim0" 0=0 1=1 2=active \
3=inactive 4=on 5=off 6=false 7=true
gpiosim_check_value sim0 0 0
@@ -1401,7 +1399,7 @@ test_gpioset_with_hold_period() {
gpiosim_set_pull sim0 5 pull-up
- dut_run gpioset --banner --hold-period=1200ms -t0 --chip $sim0 0=1 5=0 7=1
+ dut_run gpioset --banner --hold-period=1200ms -t0 --chip "$sim0" 0=1 5=0 7=1
gpiosim_check_value sim0 0 1
gpiosim_check_value sim0 5 0
@@ -1417,7 +1415,7 @@ test_gpioset_interactive_exit() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- dut_run gpioset --interactive --chip $sim0 1=0 2=1 5=1 6=0 7=1
+ dut_run gpioset --interactive --chip "$sim0" 1=0 2=1 5=1 6=0 7=1
gpiosim_check_value sim0 1 0
gpiosim_check_value sim0 2 1
@@ -1656,7 +1654,7 @@ test_gpioset_with_lines_by_offset() {
gpiosim_set_pull sim0 1 pull-down
gpiosim_set_pull sim0 6 pull-up
- dut_run gpioset --banner --chip ${GPIOSIM_CHIP_NAME[sim0]} 6=1 1=0
+ dut_run gpioset --banner --chip "${GPIOSIM_CHIP_NAME[sim0]}" 6=1 1=0
gpiosim_check_value sim0 1 0
gpiosim_check_value sim0 6 1
@@ -1670,7 +1668,7 @@ test_gpioset_with_lines_strictly_by_name() {
gpiosim_set_pull sim0 1 pull-down
gpiosim_set_pull sim0 6 pull-up
- dut_run gpioset --banner --by-name --chip ${GPIOSIM_CHIP_NAME[sim0]} 6=1 1=0
+ dut_run gpioset --banner --by-name --chip "${GPIOSIM_CHIP_NAME[sim0]}" 6=1 1=0
gpiosim_check_value sim0 1 1
gpiosim_check_value sim0 6 0
@@ -1708,7 +1706,7 @@ test_gpioset_with_no_arguments() {
test_gpioset_with_chip_but_no_line_specified() {
gpiosim_chip sim0 num_lines=8
- run_tool gpioset --chip ${GPIOSIM_CHIP_NAME[sim0]}
+ run_tool gpioset --chip "${GPIOSIM_CHIP_NAME[sim0]}"
output_regex_match ".*at least one GPIO line value must be specified"
status_is 1
@@ -1719,7 +1717,7 @@ test_gpioset_with_offset_out_of_range() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- run_tool gpioset --chip $sim0 0=1 1=1 2=1 3=1 4=1 5=1
+ run_tool gpioset --chip "$sim0" 0=1 1=1 2=1 3=1 4=1 5=1
output_regex_match ".*offset 4 is out of range on chip '$sim0'"
output_regex_match ".*offset 5 is out of range on chip '$sim0'"
@@ -1731,7 +1729,7 @@ test_gpioset_with_invalid_hold_period() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- run_tool gpioset --hold-period=bad --chip $sim0 0=1
+ run_tool gpioset --hold-period=bad --chip "$sim0" 0=1
output_regex_match ".*invalid period.*"
status_is 1
@@ -1743,13 +1741,13 @@ test_gpioset_with_invalid_value() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
# by name
- run_tool gpioset --chip $sim0 0=c
+ run_tool gpioset --chip "$sim0" 0=c
output_regex_match ".*invalid line value.*"
status_is 1
# by value
- run_tool gpioset --chip $sim0 0=3
+ run_tool gpioset --chip "$sim0" 0=3
output_regex_match ".*invalid line value.*"
status_is 1
@@ -1758,7 +1756,7 @@ test_gpioset_with_invalid_value() {
test_gpioset_with_invalid_offset() {
gpiosim_chip sim0 num_lines=8
- run_tool gpioset --chip ${GPIOSIM_CHIP_NAME[sim0]} 4000000000=0
+ run_tool gpioset --chip "${GPIOSIM_CHIP_NAME[sim0]}" 4000000000=0
output_regex_match ".*cannot find line '4000000000'"
status_is 1
@@ -1767,7 +1765,7 @@ test_gpioset_with_invalid_offset() {
test_gpioset_with_invalid_bias() {
gpiosim_chip sim0 num_lines=8
- run_tool gpioset --bias=bad --chip ${GPIOSIM_CHIP_NAME[sim0]} 0=1 1=1
+ run_tool gpioset --bias=bad --chip "${GPIOSIM_CHIP_NAME[sim0]}" 0=1 1=1
output_regex_match ".*invalid bias.*"
status_is 1
@@ -1776,7 +1774,7 @@ test_gpioset_with_invalid_bias() {
test_gpioset_with_invalid_drive() {
gpiosim_chip sim0 num_lines=8
- run_tool gpioset --drive=bad --chip ${GPIOSIM_CHIP_NAME[sim0]} 0=1 1=1
+ run_tool gpioset --drive=bad --chip "${GPIOSIM_CHIP_NAME[sim0]}" 0=1 1=1
output_regex_match ".*invalid drive.*"
status_is 1
@@ -1787,7 +1785,7 @@ test_gpioset_with_interactive_and_toggle() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- run_tool gpioset --interactive --toggle 1s --chip $sim0 0=1
+ run_tool gpioset --interactive --toggle 1s --chip "$sim0" 0=1
output_regex_match ".*can't combine interactive with toggle"
status_is 1
@@ -1806,25 +1804,25 @@ test_gpioset_with_same_line_twice() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
# by offset
- run_tool gpioset --chip $sim0 0=1 0=1
+ run_tool gpioset --chip "$sim0" 0=1 0=1
output_regex_match ".*lines '0' and '0' are the same line"
status_is 1
# by name
- run_tool gpioset --chip $sim0 foo=1 foo=1
+ run_tool gpioset --chip "$sim0" foo=1 foo=1
output_regex_match ".*lines 'foo' and 'foo' are the same line"
status_is 1
# by name and offset
- run_tool gpioset --chip $sim0 foo=1 1=1
+ run_tool gpioset --chip "$sim0" foo=1 1=1
output_regex_match ".*lines 'foo' and '1' are the same line"
status_is 1
# by offset and name
- run_tool gpioset --chip $sim0 1=1 foo=1
+ run_tool gpioset --chip "$sim0" 1=1 foo=1
output_regex_match ".*lines '1' and 'foo' are the same line"
status_is 1
@@ -1856,7 +1854,7 @@ test_gpiomon_by_offset() {
gpiosim_set_pull sim0 4 pull-up
- dut_run gpiomon --banner --edges=rising --chip $sim0 4
+ dut_run gpiomon --banner --edges=rising --chip "$sim0" 4
dut_regex_match "Monitoring line .*"
gpiosim_set_pull sim0 4 pull-down
@@ -1874,7 +1872,7 @@ test_gpiomon_by_symlink() {
gpiosim_set_pull sim0 4 pull-up
- dut_run gpiomon --banner --edges=rising --chip $GPIOSIM_CHIP_LINK 4
+ dut_run gpiomon --banner --edges=rising --chip "$GPIOSIM_CHIP_LINK" 4
dut_regex_match "Monitoring line .*"
gpiosim_set_pull sim0 4 pull-down
@@ -1893,7 +1891,7 @@ test_gpiomon_by_chip_and_name() {
gpiosim_set_pull sim1 0 pull-up
- dut_run gpiomon --banner --edges=rising --chip $sim1 foo
+ dut_run gpiomon --banner --edges=rising --chip "$sim1" foo
dut_regex_match "Monitoring line .*"
gpiosim_set_pull sim1 2 pull-down
@@ -1925,7 +1923,7 @@ test_gpiomon_rising_edge() {
gpiosim_set_pull sim0 4 pull-up
- dut_run gpiomon --banner --edges=rising --chip $sim0 4
+ dut_run gpiomon --banner --edges=rising --chip "$sim0" 4
dut_flush
gpiosim_set_pull sim0 4 pull-down
@@ -1941,7 +1939,7 @@ test_gpiomon_falling_edge() {
gpiosim_set_pull sim0 4 pull-down
- dut_run gpiomon --banner --edges=falling --chip $sim0 4
+ dut_run gpiomon --banner --edges=falling --chip "$sim0" 4
dut_flush
gpiosim_set_pull sim0 4 pull-up
@@ -1955,7 +1953,7 @@ test_gpiomon_both_edges() {
gpiosim_chip sim0 num_lines=8
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- dut_run gpiomon --banner --edges=both --chip $sim0 4
+ dut_run gpiomon --banner --edges=both --chip "$sim0" 4
dut_regex_match "Monitoring line .*"
gpiosim_set_pull sim0 4 pull-up
@@ -1971,7 +1969,7 @@ test_gpiomon_with_pull_up() {
gpiosim_set_pull sim0 4 pull-down
- dut_run gpiomon --banner --bias=pull-up --chip $sim0 4
+ dut_run gpiomon --banner --bias=pull-up --chip "$sim0" 4
dut_flush
gpiosim_set_pull sim0 4 pull-down
@@ -1986,7 +1984,7 @@ test_gpiomon_with_pull_down() {
gpiosim_set_pull sim0 4 pull-up
- dut_run gpiomon --banner --bias=pull-down --chip $sim0 4
+ dut_run gpiomon --banner --bias=pull-down --chip "$sim0" 4
dut_flush
gpiosim_set_pull sim0 4 pull-up
@@ -2002,7 +2000,7 @@ test_gpiomon_with_active_low() {
gpiosim_set_pull sim0 4 pull-up
- dut_run gpiomon --banner --active-low --chip $sim0 4
+ dut_run gpiomon --banner --active-low --chip "$sim0" 4
dut_flush
gpiosim_set_pull sim0 4 pull-down
@@ -2035,7 +2033,7 @@ test_gpiomon_with_quiet_mode() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- dut_run gpiomon --banner --edges=rising --quiet --chip $sim0 4
+ dut_run gpiomon --banner --edges=rising --quiet --chip "$sim0" 4
dut_flush
gpiosim_set_pull sim0 4 pull-up
@@ -2063,7 +2061,7 @@ test_gpiomon_with_num_events() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
# redirect, as gpiomon exits after 4 events
- dut_run_redirect gpiomon --num-events=4 --chip $sim0 4
+ dut_run_redirect gpiomon --num-events=4 --chip "$sim0" 4
gpiosim_set_pull sim0 4 pull-up
sleep 0.01
@@ -2107,7 +2105,7 @@ test_gpiomon_with_idle_timeout() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
# redirect, as gpiomon exits
- dut_run_redirect gpiomon --idle-timeout 10ms --chip $sim0 4
+ dut_run_redirect gpiomon --idle-timeout 10ms --chip "$sim0" 4
dut_wait
status_is 0
@@ -2120,7 +2118,7 @@ test_gpiomon_multiple_lines() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- dut_run gpiomon --banner --format=%o --chip $sim0 1 3 2 5 4
+ dut_run gpiomon --banner --format=%o --chip "$sim0" 1 3 2 5 4
dut_regex_match "Monitoring lines .*"
gpiosim_set_pull sim0 2 pull-up
@@ -2138,7 +2136,7 @@ test_gpiomon_multiple_lines_by_name_and_offset() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- dut_run gpiomon --banner --format=%o --chip $sim0 foo bar 3
+ dut_run gpiomon --banner --format=%o --chip "$sim0" foo bar 3
dut_regex_match "Monitoring lines .*"
gpiosim_set_pull sim0 2 pull-up
@@ -2173,7 +2171,7 @@ test_gpiomon_exit_after_SIGINT() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- dut_run gpiomon --banner --chip $sim0 4
+ dut_run gpiomon --banner --chip "$sim0" 4
dut_regex_match "Monitoring line .*"
dut_kill -SIGINT
@@ -2187,7 +2185,7 @@ test_gpiomon_exit_after_SIGTERM() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- dut_run gpiomon --banner --chip $sim0 4
+ dut_run gpiomon --banner --chip "$sim0" 4
dut_regex_match "Monitoring line .*"
dut_kill -SIGTERM
@@ -2209,7 +2207,7 @@ test_gpiomon_with_same_line_twice() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
# by offset
- run_tool gpiomon --chip $sim0 0 0
+ run_tool gpiomon --chip "$sim0" 0 0
output_regex_match ".*lines '0' and '0' are the same line"
status_is 1
@@ -2221,7 +2219,7 @@ test_gpiomon_with_same_line_twice() {
status_is 1
# by name and offset
- run_tool gpiomon --chip $sim0 1 foo
+ run_tool gpiomon --chip "$sim0" 1 foo
output_regex_match ".*lines '1' and 'foo' are the same line"
status_is 1
@@ -2248,7 +2246,7 @@ test_gpiomon_with_lines_by_offset() {
gpiosim_set_pull sim0 1 pull-up
- dut_run gpiomon --banner --chip $sim0 6 1
+ dut_run gpiomon --banner --chip "$sim0" 6 1
dut_flush
gpiosim_set_pull sim0 1 pull-down
@@ -2275,7 +2273,7 @@ test_gpiomon_with_lines_strictly_by_name() {
gpiosim_set_pull sim0 1 pull-up
- dut_run gpiomon --banner --by-name --chip $sim0 42 13
+ dut_run gpiomon --banner --by-name --chip "$sim0" 42 13
dut_flush
gpiosim_set_pull sim0 1 pull-down
@@ -2303,7 +2301,7 @@ test_gpiomon_with_no_arguments() {
test_gpiomon_with_no_line_specified() {
gpiosim_chip sim0 num_lines=8
- run_tool gpiomon --chip ${GPIOSIM_CHIP_NAME[sim0]}
+ run_tool gpiomon --chip "${GPIOSIM_CHIP_NAME[sim0]}"
output_regex_match ".*at least one GPIO line must be specified"
status_is 1
@@ -2314,7 +2312,7 @@ test_gpiomon_with_offset_out_of_range() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- run_tool gpiomon --chip $sim0 5
+ run_tool gpiomon --chip "$sim0" 5
output_regex_match ".*offset 5 is out of range on chip '$sim0'"
status_is 1
@@ -2325,7 +2323,7 @@ test_gpiomon_with_invalid_bias() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- run_tool gpiomon --bias=bad -c $sim0 0 1
+ run_tool gpiomon --bias=bad -c "$sim0" 0 1
output_regex_match ".*invalid bias.*"
status_is 1
@@ -2336,7 +2334,7 @@ test_gpiomon_with_invalid_debounce_period() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- run_tool gpiomon --debounce-period bad -c $sim0 0 1
+ run_tool gpiomon --debounce-period bad -c "$sim0" 0 1
output_regex_match ".*invalid period: bad"
status_is 1
@@ -2347,7 +2345,7 @@ test_gpiomon_with_invalid_idle_timeout() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- run_tool gpiomon --idle-timeout bad -c $sim0 0 1
+ run_tool gpiomon --idle-timeout bad -c "$sim0" 0 1
output_regex_match ".*invalid period: bad"
status_is 1
@@ -2358,7 +2356,7 @@ test_gpiomon_with_custom_format_event_type_offset() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- dut_run gpiomon --banner "--format=%e %o" -c $sim0 4
+ dut_run gpiomon --banner "--format=%e %o" -c "$sim0" 4
dut_flush
gpiosim_set_pull sim0 4 pull-up
@@ -2371,7 +2369,7 @@ test_gpiomon_with_custom_format_event_type_offset_joined() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- dut_run gpiomon --banner "--format=%e%o" -c $sim0 4
+ dut_run gpiomon --banner "--format=%e%o" -c "$sim0" 4
dut_flush
gpiosim_set_pull sim0 4 pull-up
@@ -2384,7 +2382,7 @@ test_gpiomon_with_custom_format_edge_chip_and_line() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- dut_run gpiomon --banner "--format=%e %o %E %c %l" -c $sim0 baz
+ dut_run gpiomon --banner "--format=%e %o %E %c %l" -c "$sim0" baz
dut_flush
gpiosim_set_pull sim0 4 pull-up
@@ -2396,7 +2394,7 @@ test_gpiomon_with_custom_format_seconds_timestamp() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- dut_run gpiomon --banner "--format=%e %o %S" -c $sim0 4
+ dut_run gpiomon --banner "--format=%e %o %S" -c "$sim0" 4
dut_flush
gpiosim_set_pull sim0 4 pull-up
@@ -2409,7 +2407,7 @@ test_gpiomon_with_custom_format_UTC_timestamp() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
dut_run gpiomon --banner "--format=%U %e %o " --event-clock=realtime \
- -c $sim0 4
+ -c "$sim0" 4
dut_flush
gpiosim_set_pull sim0 4 pull-up
@@ -2423,7 +2421,7 @@ test_gpiomon_with_custom_format_localtime_timestamp() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
dut_run gpiomon --banner "--format=%L %e %o" --event-clock=realtime \
- -c $sim0 4
+ -c "$sim0" 4
dut_flush
gpiosim_set_pull sim0 4 pull-up
@@ -2436,7 +2434,7 @@ test_gpiomon_with_custom_format_double_percent_sign() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- dut_run gpiomon --banner "--format=start%%end" -c $sim0 4
+ dut_run gpiomon --banner "--format=start%%end" -c "$sim0" 4
dut_flush
gpiosim_set_pull sim0 4 pull-up
@@ -2449,7 +2447,7 @@ test_gpiomon_with_custom_format_double_percent_sign_event_type_specifier() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- dut_run gpiomon --banner "--format=%%e" -c $sim0 4
+ dut_run gpiomon --banner "--format=%%e" -c "$sim0" 4
dut_flush
gpiosim_set_pull sim0 4 pull-up
@@ -2462,7 +2460,7 @@ test_gpiomon_with_custom_format_single_percent_sign() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- dut_run gpiomon --banner "--format=%" -c $sim0 4
+ dut_run gpiomon --banner "--format=%" -c "$sim0" 4
dut_flush
gpiosim_set_pull sim0 4 pull-up
@@ -2475,7 +2473,7 @@ test_gpiomon_with_custom_format_single_percent_sign_between_other_characters() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- dut_run gpiomon --banner "--format=foo % bar" -c $sim0 4
+ dut_run gpiomon --banner "--format=foo % bar" -c "$sim0" 4
dut_flush
gpiosim_set_pull sim0 4 pull-up
@@ -2488,7 +2486,7 @@ test_gpiomon_with_custom_format_unknown_specifier() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- dut_run gpiomon --banner "--format=%x" -c $sim0 4
+ dut_run gpiomon --banner "--format=%x" -c "$sim0" 4
dut_flush
gpiosim_set_pull sim0 4 pull-up
@@ -2508,7 +2506,7 @@ test_gpionotify_by_name() {
dut_run gpionotify --banner foo
dut_regex_match "Watching line .*"
- request_release_line $sim0 4
+ request_release_line "$sim0" 4
dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+\"foo\""
dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+\"foo\""
@@ -2520,10 +2518,10 @@ test_gpionotify_by_offset() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- dut_run gpionotify --banner --chip $sim0 4
+ dut_run gpionotify --banner --chip "$sim0" 4
dut_regex_match "Watching line .*"
- request_release_line $sim0 4
+ request_release_line "$sim0" 4
dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+$sim0 4"
dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+$sim0 4"
@@ -2536,10 +2534,10 @@ test_gpionotify_by_symlink() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- dut_run gpionotify --banner --chip $GPIOSIM_CHIP_LINK 4
+ dut_run gpionotify --banner --chip "$GPIOSIM_CHIP_LINK" 4
dut_regex_match "Watching line .*"
- request_release_line $sim0 4
+ request_release_line "$sim0" 4
dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+$sim0\\s+4"
dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+$sim0\\s+4"
@@ -2552,10 +2550,10 @@ test_gpionotify_by_chip_and_name() {
local sim1=${GPIOSIM_CHIP_NAME[sim1]}
- dut_run gpionotify --banner --chip $sim1 foo
+ dut_run gpionotify --banner --chip "$sim1" foo
dut_regex_match "Watching line .*"
- request_release_line $sim1 2
+ request_release_line "$sim1" 2
dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+$sim1 2 \"foo\""
dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+$sim1 2 \"foo\""
@@ -2572,7 +2570,7 @@ test_gpionotify_first_matching_named_line() {
dut_run gpionotify --banner foobar
dut_regex_match "Watching line .*"
- request_release_line ${GPIOSIM_CHIP_NAME[sim0]} 3
+ request_release_line "${GPIOSIM_CHIP_NAME[sim0]}" 3
dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+\"foobar\""
dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+\"foobar\""
@@ -2586,10 +2584,10 @@ test_gpionotify_with_requested() {
gpiosim_set_pull sim0 4 pull-up
- dut_run gpionotify --banner --event=requested --chip $sim0 4
+ dut_run gpionotify --banner --event=requested --chip "$sim0" 4
dut_flush
- request_release_line ${GPIOSIM_CHIP_NAME[sim0]} 4
+ request_release_line "${GPIOSIM_CHIP_NAME[sim0]}" 4
dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+$sim0 4"
assert_fail dut_readable
}
@@ -2600,10 +2598,10 @@ test_gpionotify_with_released() {
gpiosim_set_pull sim0 4 pull-down
- dut_run gpionotify --banner --event=released --chip $sim0 4
+ dut_run gpionotify --banner --event=released --chip "$sim0" 4
dut_flush
- request_release_line ${GPIOSIM_CHIP_NAME[sim0]} 4
+ request_release_line "${GPIOSIM_CHIP_NAME[sim0]}" 4
dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+$sim0 4"
assert_fail dut_readable
}
@@ -2613,10 +2611,10 @@ test_gpionotify_with_quiet_mode() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- dut_run gpionotify --banner --quiet --chip $sim0 4
+ dut_run gpionotify --banner --quiet --chip "$sim0" 4
dut_flush
- request_release_line ${GPIOSIM_CHIP_NAME[sim0]} 4
+ request_release_line "${GPIOSIM_CHIP_NAME[sim0]}" 4
assert_fail dut_readable
}
@@ -2628,7 +2626,7 @@ test_gpionotify_with_unquoted() {
dut_run gpionotify --banner --unquoted foo
dut_regex_match "Watching line .*"
- request_release_line $sim0 4
+ request_release_line "$sim0" 4
dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+foo"
dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+foo"
@@ -2640,11 +2638,11 @@ test_gpionotify_with_num_events() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
# redirect, as gpionotify exits after 4 events
- dut_run_redirect gpionotify --num-events=4 --chip $sim0 3 4
+ dut_run_redirect gpionotify --num-events=4 --chip "$sim0" 3 4
- request_release_line ${GPIOSIM_CHIP_NAME[sim0]} 4
- request_release_line ${GPIOSIM_CHIP_NAME[sim0]} 3
+ request_release_line "${GPIOSIM_CHIP_NAME[sim0]}" 4
+ request_release_line "${GPIOSIM_CHIP_NAME[sim0]}" 3
dut_wait
status_is 0
@@ -2663,7 +2661,7 @@ test_gpionotify_with_idle_timeout() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
# redirect, as gpionotify exits
- dut_run_redirect gpionotify --idle-timeout 10ms --chip $sim0 3 4
+ dut_run_redirect gpionotify --idle-timeout 10ms --chip "$sim0" 3 4
dut_wait
status_is 0
@@ -2677,18 +2675,18 @@ test_gpionotify_multiple_lines() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- dut_run gpionotify --banner --chip $sim0 1 2 3 4 5
+ dut_run gpionotify --banner --chip "$sim0" 1 2 3 4 5
dut_regex_match "Watching lines .*"
- request_release_line $sim0 2
+ request_release_line "$sim0" 2
dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+$sim0 2"
dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+$sim0 2"
- request_release_line $sim0 3
+ request_release_line "$sim0" 3
dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+$sim0 3"
dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+$sim0 3"
- request_release_line $sim0 4
+ request_release_line "$sim0" 4
dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+$sim0 4"
dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+$sim0 4"
@@ -2700,18 +2698,18 @@ test_gpionotify_multiple_lines_by_name_and_offset() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- dut_run gpionotify --banner --chip $sim0 bar foo 3
+ dut_run gpionotify --banner --chip "$sim0" bar foo 3
dut_regex_match "Watching lines .*"
- request_release_line $sim0 2
+ request_release_line "$sim0" 2
dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+$sim0 2\\s+\"bar\""
dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+$sim0 2\\s+\"bar\""
- request_release_line $sim0 1
+ request_release_line "$sim0" 1
dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+$sim0 1\\s+\"foo\""
dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+$sim0 1\\s+\"foo\""
- request_release_line $sim0 3
+ request_release_line "$sim0" 3
dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+$sim0 3"
dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+$sim0 3"
@@ -2728,19 +2726,19 @@ test_gpionotify_multiple_lines_across_multiple_chips() {
dut_run gpionotify --banner baz bar foo xyz
dut_regex_match "Watching lines .*"
- request_release_line $sim0 2
+ request_release_line "$sim0" 2
dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+\"bar\""
dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+\"bar\""
- request_release_line $sim0 1
+ request_release_line "$sim0" 1
dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+\"foo\""
dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+\"foo\""
- request_release_line $sim1 4
+ request_release_line "$sim1" 4
dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+\"xyz\""
dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+\"xyz\""
- request_release_line $sim1 0
+ request_release_line "$sim1" 0
dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+\"baz\""
dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+\"baz\""
@@ -2750,7 +2748,7 @@ test_gpionotify_multiple_lines_across_multiple_chips() {
test_gpionotify_exit_after_SIGINT() {
gpiosim_chip sim0 num_lines=8
- dut_run gpionotify --banner --chip ${GPIOSIM_CHIP_NAME[sim0]} 4
+ dut_run gpionotify --banner --chip "${GPIOSIM_CHIP_NAME[sim0]}" 4
dut_regex_match "Watching line .*"
dut_kill -SIGINT
@@ -2762,7 +2760,7 @@ test_gpionotify_exit_after_SIGINT() {
test_gpionotify_exit_after_SIGTERM() {
gpiosim_chip sim0 num_lines=8
- dut_run gpionotify --banner --chip ${GPIOSIM_CHIP_NAME[sim0]} 4
+ dut_run gpionotify --banner --chip "${GPIOSIM_CHIP_NAME[sim0]}" 4
dut_regex_match "Watching line .*"
dut_kill -SIGTERM
@@ -2784,7 +2782,7 @@ test_gpionotify_with_same_line_twice() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
# by offset
- run_tool gpionotify --chip $sim0 0 0
+ run_tool gpionotify --chip "$sim0" 0 0
output_regex_match ".*lines '0' and '0' are the same line"
num_lines_is 1
@@ -2798,7 +2796,7 @@ test_gpionotify_with_same_line_twice() {
status_is 1
# by name and offset
- run_tool gpionotify --chip $sim0 1 foo
+ run_tool gpionotify --chip "$sim0" 1 foo
output_regex_match ".*lines '1' and 'foo' are the same line"
num_lines_is 1
@@ -2825,14 +2823,14 @@ test_gpionotify_with_lines_by_offset() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- dut_run gpionotify --banner --chip $sim0 1
+ dut_run gpionotify --banner --chip "$sim0" 1
dut_flush
- request_release_line $sim0 1
+ request_release_line "$sim0" 1
dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+$sim0 1"
dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+$sim0 1"
- request_release_line $sim0 6
+ request_release_line "$sim0" 6
assert_fail dut_readable
}
@@ -2844,14 +2842,14 @@ test_gpionotify_with_lines_strictly_by_name() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- dut_run gpionotify --banner --by-name --chip $sim0 1
+ dut_run gpionotify --banner --by-name --chip "$sim0" 1
dut_flush
- request_release_line $sim0 6
+ request_release_line "$sim0" 6
dut_regex_match "[0-9]+\.[0-9]+\\s+requested\\s+$sim0 6 \"1\""
dut_regex_match "[0-9]+\.[0-9]+\\s+released\\s+$sim0 6 \"1\""
- request_release_line $sim0 1
+ request_release_line "$sim0" 1
assert_fail dut_readable
}
@@ -2865,7 +2863,7 @@ test_gpionotify_with_no_arguments() {
test_gpionotify_with_no_line_specified() {
gpiosim_chip sim0 num_lines=8
- run_tool gpionotify --chip ${GPIOSIM_CHIP_NAME[sim0]}
+ run_tool gpionotify --chip "${GPIOSIM_CHIP_NAME[sim0]}"
output_regex_match ".*at least one GPIO line must be specified"
status_is 1
@@ -2876,7 +2874,7 @@ test_gpionotify_with_offset_out_of_range() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- run_tool gpionotify --chip $sim0 5
+ run_tool gpionotify --chip "$sim0" 5
output_regex_match ".*offset 5 is out of range on chip '$sim0'"
status_is 1
@@ -2887,7 +2885,7 @@ test_gpionotify_with_invalid_idle_timeout() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- run_tool gpionotify --idle-timeout bad -c $sim0 0 1
+ run_tool gpionotify --idle-timeout bad -c "$sim0" 0 1
output_regex_match ".*invalid period: bad"
status_is 1
@@ -2898,10 +2896,10 @@ test_gpionotify_with_custom_format_event_type_offset() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- dut_run gpionotify --banner --event=requested "--format=%e %o" -c $sim0 4
+ dut_run gpionotify --banner --event=requested "--format=%e %o" -c "$sim0" 4
dut_flush
- request_release_line $sim0 4
+ request_release_line "$sim0" 4
dut_read
output_is "1 4"
}
@@ -2911,10 +2909,10 @@ test_gpionotify_with_custom_format_event_type_offset_joined() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- dut_run gpionotify --banner --event=requested "--format=%e%o" -c $sim0 4
+ dut_run gpionotify --banner --event=requested "--format=%e%o" -c "$sim0" 4
dut_flush
- request_release_line $sim0 4
+ request_release_line "$sim0" 4
dut_read
output_is "14"
}
@@ -2925,10 +2923,10 @@ test_gpionotify_with_custom_format_event_chip_and_line() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
dut_run gpionotify --banner --event=released \
- "--format=%e %o %E %c %l" -c $sim0 baz
+ "--format=%e %o %E %c %l" -c "$sim0" baz
dut_flush
- request_release_line $sim0 4
+ request_release_line "$sim0" 4
dut_regex_match "2 4 released $sim0 baz"
}
@@ -2938,10 +2936,10 @@ test_gpionotify_with_custom_format_seconds_timestamp() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
dut_run gpionotify --banner --event=requested "--format=%e %o %S" \
- -c $sim0 4
+ -c "$sim0" 4
dut_flush
- request_release_line $sim0 4
+ request_release_line "$sim0" 4
dut_regex_match "1 4 [0-9]+\\.[0-9]+"
}
@@ -2951,10 +2949,10 @@ test_gpionotify_with_custom_format_UTC_timestamp() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
dut_run gpionotify --banner --event=released \
- "--format=%U %e %o" -c $sim0 4
+ "--format=%U %e %o" -c "$sim0" 4
dut_flush
- request_release_line $sim0 4
+ request_release_line "$sim0" 4
dut_regex_match \
"[0-9][0-9][0-9][0-9]-[0-1][0-9]-[0-3][0-9]T[0-2][0-9]:[0-5][0-9]:[0-5][0-9]\\.[0-9]+Z 2 4"
}
@@ -2965,10 +2963,10 @@ test_gpionotify_with_custom_format_localtime_timestamp() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
dut_run gpionotify --banner --event=released \
- "--format=%L %e %o" -c $sim0 4
+ "--format=%L %e %o" -c "$sim0" 4
dut_flush
- request_release_line $sim0 4
+ request_release_line "$sim0" 4
dut_regex_match \
"[0-9][0-9][0-9][0-9]-[0-1][0-9]-[0-3][0-9]T[0-2][0-9]:[0-5][0-9]:[0-5][0-9]\\.[0-9]+ 2 4"
}
@@ -2979,10 +2977,10 @@ test_gpionotify_with_custom_format_double_percent_sign() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
dut_run gpionotify --banner --event=requested "--format=start%%end" \
- -c $sim0 4
+ -c "$sim0" 4
dut_flush
- request_release_line $sim0 4
+ request_release_line "$sim0" 4
dut_read
output_is "start%end"
}
@@ -2992,10 +2990,10 @@ test_gpionotify_with_custom_format_double_percent_sign_event_type_specifier() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- dut_run gpionotify --banner --event=requested "--format=%%e" -c $sim0 4
+ dut_run gpionotify --banner --event=requested "--format=%%e" -c "$sim0" 4
dut_flush
- request_release_line $sim0 4
+ request_release_line "$sim0" 4
dut_read
output_is "%e"
}
@@ -3005,10 +3003,10 @@ test_gpionotify_with_custom_format_single_percent_sign() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- dut_run gpionotify --banner --event=requested "--format=%" -c $sim0 4
+ dut_run gpionotify --banner --event=requested "--format=%" -c "$sim0" 4
dut_flush
- request_release_line $sim0 4
+ request_release_line "$sim0" 4
dut_read
output_is "%"
}
@@ -3018,10 +3016,10 @@ test_gpionotify_with_custom_format_single_percent_sign_between_other_characters(
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- dut_run gpionotify --banner --event=requested "--format=foo % bar" -c $sim0 4
+ dut_run gpionotify --banner --event=requested "--format=foo % bar" -c "$sim0" 4
dut_flush
- request_release_line $sim0 4
+ request_release_line "$sim0" 4
dut_read
output_is "foo % bar"
}
@@ -3031,10 +3029,10 @@ test_gpionotify_with_custom_format_unknown_specifier() {
local sim0=${GPIOSIM_CHIP_NAME[sim0]}
- dut_run gpionotify --banner --event=requested "--format=%x" -c $sim0 4
+ dut_run gpionotify --banner --event=requested "--format=%x" -c "$sim0" 4
dut_flush
- request_release_line $sim0 4
+ request_release_line "$sim0" 4
dut_read
output_is "%x"
}
Fix shellcheck SC2046[1], SC2068[2], SC2068[3] and SC2206[4], all of which are related to avoiding word splitting and globbing. Signed-off-by: Kent Gibson <warthog618@gmail.com> [1]https://www.shellcheck.net/wiki/SC2046 [2]https://www.shellcheck.net/wiki/SC2068 [3]https://www.shellcheck.net/wiki/SC2086 [4]https://www.shellcheck.net/wiki/SC2206 --- tools/gpio-tools-test.bash | 398 ++++++++++++++++++------------------- 1 file changed, 198 insertions(+), 200 deletions(-)