From 15802fb2456736b46a25622244d1080a87320d3c Mon Sep 17 00:00:00 2001 From: Caleb Connolly Date: Fri, 5 May 2023 20:55:23 +0100 Subject: [PATCH 1/2] 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 --- bin/bootrr-generate-template | 30 +++++++++++++++--------------- helpers/assert_device_present | 4 ++-- helpers/assert_driver_present | 2 +- helpers/bootrr | 2 +- 4 files changed, 19 insertions(+), 19 deletions(-) diff --git a/bin/bootrr-generate-template b/bin/bootrr-generate-template index 67c337a9aacb..42866dc5982d 100755 --- a/bin/bootrr-generate-template +++ b/bin/bootrr-generate-template @@ -16,25 +16,25 @@ if [ -f /sys/devices/system/cpu/cpuidle/current_driver ]; then fi # Find drivers with bound devices -for bus in $(ls /sys/bus) ; do - for driver in $(ls /sys/bus/${bus}/drivers) ; do - devs=$(find /sys/bus/${bus}/drivers/${driver} -type l | - grep -v module$) - if [ "${devs}" = "" ]; then - continue - fi +for driver_path in /sys/bus/*/drivers/* ; do + devs=$(find "$driver_path" -type l -printf "\"%p\" " | + grep -v module$) + if [ "${devs}" = "" ]; then + continue + fi - # Check for the driver - echo assert_driver_present ${driver}-driver-present ${driver} + driver="$(basename "$driver_path")" - # Check for each instance of the driver - for dev in ${devs} ; do - d=$(cd ${dev} ; pwd -P | sed s,.*/,,) - echo assert_device_present ${d}-probed ${driver} ${d} - done + # Check for the driver + echo assert_driver_present \"${driver}-driver-present\" \"${driver}\" - echo + # Check for each instance of the driver + find "$driver_path" -type l | grep -v module$ | while read -r dev ; do + d=$(cd ${dev} ; pwd -P | sed s,.*/,,) + echo assert_device_present ${d}-probed \"${driver}\" ${d} done + + echo done # Sound card display names are symbolic links to their numbered diff --git a/helpers/assert_device_present b/helpers/assert_device_present index 57151c117d90..acfd1a2bc59d 100755 --- a/helpers/assert_device_present +++ b/helpers/assert_device_present @@ -12,7 +12,7 @@ if [ -z "${TEST_CASE_ID}" -o -z "${DRIVER}" -o -z "${DEVICE}" ]; then exit 1 fi -timeout ${TIMEOUT} [ -d /sys/bus/*/drivers/${DRIVER} ] || test_report_exit blocked -timeout ${TIMEOUT} [ -L /sys/bus/*/drivers/${DRIVER}/${DEVICE} ] || test_report_exit fail +timeout ${TIMEOUT} [ -d /sys/bus/*/drivers/"${DRIVER}" ] || test_report_exit blocked +timeout ${TIMEOUT} [ -L /sys/bus/*/drivers/"${DRIVER}"/"${DEVICE}" ] || test_report_exit fail test_report_exit pass diff --git a/helpers/assert_driver_present b/helpers/assert_driver_present index b7c48199d8f9..2927bffe6ea2 100755 --- a/helpers/assert_driver_present +++ b/helpers/assert_driver_present @@ -11,6 +11,6 @@ if [ -z "${TEST_CASE_ID}" -o -z "${DRIVER}" ]; then exit 1 fi -timeout ${TIMEOUT} [ -d /sys/bus/*/drivers/${DRIVER} ] || test_report_exit fail +timeout ${TIMEOUT} [ -d /sys/bus/*/drivers/"${DRIVER}" ] || test_report_exit fail test_report_exit pass diff --git a/helpers/bootrr b/helpers/bootrr index f5768543681f..f5aad59db0ac 100644 --- a/helpers/bootrr +++ b/helpers/bootrr @@ -4,7 +4,7 @@ test_report_exit() { TEST_RESULT=$1 command -v lava-test-case if [ "$?" -eq 0 ]; then - lava-test-case ${TEST_CASE_ID} --result ${TEST_RESULT} + lava-test-case "${TEST_CASE_ID}" --result ${TEST_RESULT} else echo "" fi -- 2.42.0