# 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
local DEVPATH=$GPIOSIM_CONFIGFS/$NAME
local BANKPATH=$DEVPATH/bank0
- mkdir -p $BANKPATH
+ mkdir -p "$BANKPATH"
for ARG in "$@"
do
if [ "$KEY" = "num_lines" ]
then
- echo $VAL > $BANKPATH/num_lines
+ echo "$VAL" > "$BANKPATH/num_lines"
elif [ "$KEY" = "line_name" ]
then
local OFFSET LINENAME
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")
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() {
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() {
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" ]
}
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 '{}' '+'
}
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"
}
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() {
}
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
}
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() {
}
request_release_line() {
- $SOURCE_DIR/gpioget -c "$@" >/dev/null
+ "$SOURCE_DIR/gpioget" -c "$@" >/dev/null
}
#
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
# 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
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\)"
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"
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"
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"
# 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"
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
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
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"
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"
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"
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"
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"
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
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
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"
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
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
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
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"
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
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
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"
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"
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"
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
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
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
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'"
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
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
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
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
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
}
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
}
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
}
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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'"
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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\""
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"
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"
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\""
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\""
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
}
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
}
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
}
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"
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
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
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"
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"
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\""
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
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
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
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
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
}
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
}
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
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
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
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"
}
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"
}
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"
}
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]+"
}
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"
}
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"
}
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"
}
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"
}
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 "%"
}
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"
}
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"
}