Skip to content

Commit 15802fb

Browse files
committed
bin: generate: use POSIX sh and support spaces
Handles drivers with spaces in their names, and simplify slightly by using globbing to unwrap the bus for loop. It's necessary to add the final '*' in the "for driver in" loop in bootrr-generate-template on POSIX sh. Signed-off-by: Caleb Connolly <[email protected]>
1 parent cac8008 commit 15802fb

File tree

4 files changed

+22
-22
lines changed

4 files changed

+22
-22
lines changed

bin/bootrr-generate-template

+18-18
Original file line numberDiff line numberDiff line change
@@ -16,25 +16,25 @@ if [ -f /sys/devices/system/cpu/cpuidle/current_driver ]; then
1616
fi
1717

1818
# Find drivers with bound devices
19-
for bus in $(ls /sys/bus) ; do
20-
for driver in $(ls /sys/bus/${bus}/drivers) ; do
21-
devs=$(find /sys/bus/${bus}/drivers/${driver} -type l |
22-
grep -v module$)
23-
if [ "${devs}" = "" ]; then
24-
continue
25-
fi
26-
27-
# Check for the driver
28-
echo assert_driver_present ${driver}-driver-present ${driver}
29-
30-
# Check for each instance of the driver
31-
for dev in ${devs} ; do
32-
d=$(cd ${dev} ; pwd -P | sed s,.*/,,)
33-
echo assert_device_present ${d}-probed ${driver} ${d}
34-
done
35-
36-
echo
19+
for driver_path in /sys/bus/*/drivers/* ; do
20+
devs=$(find "$driver_path" -type l -printf "\"%p\" " |
21+
grep -v module$)
22+
if [ "${devs}" = "" ]; then
23+
continue
24+
fi
25+
26+
driver="$(basename "$driver_path")"
27+
28+
# Check for the driver
29+
echo assert_driver_present \"${driver}-driver-present\" \"${driver}\"
30+
31+
# Check for each instance of the driver
32+
find "$driver_path" -type l | grep -v module$ | while read -r dev ; do
33+
d=$(cd ${dev} ; pwd -P | sed s,.*/,,)
34+
echo assert_device_present ${d}-probed \"${driver}\" ${d}
3735
done
36+
37+
echo
3838
done
3939

4040
# Sound card display names are symbolic links to their numbered

helpers/assert_device_present

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ if [ -z "${TEST_CASE_ID}" -o -z "${DRIVER}" -o -z "${DEVICE}" ]; then
1212
exit 1
1313
fi
1414

15-
timeout ${TIMEOUT} [ -d /sys/bus/*/drivers/${DRIVER} ] || test_report_exit blocked
16-
timeout ${TIMEOUT} [ -L /sys/bus/*/drivers/${DRIVER}/${DEVICE} ] || test_report_exit fail
15+
timeout ${TIMEOUT} [ -d /sys/bus/*/drivers/"${DRIVER}" ] || test_report_exit blocked
16+
timeout ${TIMEOUT} [ -L /sys/bus/*/drivers/"${DRIVER}"/"${DEVICE}" ] || test_report_exit fail
1717

1818
test_report_exit pass

helpers/assert_driver_present

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ if [ -z "${TEST_CASE_ID}" -o -z "${DRIVER}" ]; then
1111
exit 1
1212
fi
1313

14-
timeout ${TIMEOUT} [ -d /sys/bus/*/drivers/${DRIVER} ] || test_report_exit fail
14+
timeout ${TIMEOUT} [ -d /sys/bus/*/drivers/"${DRIVER}" ] || test_report_exit fail
1515

1616
test_report_exit pass

helpers/bootrr

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ test_report_exit() {
44
TEST_RESULT=$1
55
command -v lava-test-case
66
if [ "$?" -eq 0 ]; then
7-
lava-test-case ${TEST_CASE_ID} --result ${TEST_RESULT}
7+
lava-test-case "${TEST_CASE_ID}" --result ${TEST_RESULT}
88
else
99
echo "<LAVA_SIGNAL_TESTCASE TEST_CASE_ID=${TEST_CASE_ID} RESULT=${TEST_RESULT}>"
1010
fi

0 commit comments

Comments
 (0)