test_sysctl: Fix test metadata getters
authorJoel Granados <j.granados@samsung.com>
Fri, 16 Jun 2023 08:59:16 +0000 (10:59 +0200)
committerLuis Chamberlain <mcgrof@kernel.org>
Sun, 18 Jun 2023 09:32:53 +0000 (02:32 -0700)
The functions get_test_{count,enabled,target} use awk to get the N'th
field in the ALL_TESTS variable. A variable with leading zeros (e.g.
0009) is misinterpreted as an entire line instead of the N'th field.
Remove the leading zeros so this does not happen. We can now use the
helper in tests 6, 7 and 8.

Signed-off-by: Joel Granados <j.granados@samsung.com>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
tools/testing/selftests/sysctl/sysctl.sh

index bfc54b422f25a13cd213339361c8071b809f1de4..cb8f83dfe16ba0639858ce42f94ce3415bccb284 100755 (executable)
@@ -730,7 +730,7 @@ sysctl_test_0005()
 
 sysctl_test_0006()
 {
-       TARGET="${SYSCTL}/bitmap_0001"
+       TARGET="${SYSCTL}/$(get_test_target 0006)"
        reset_vals
        ORIG=""
        run_bitmaptest
@@ -738,7 +738,7 @@ sysctl_test_0006()
 
 sysctl_test_0007()
 {
-       TARGET="${SYSCTL}/boot_int"
+       TARGET="${SYSCTL}/$(get_test_target 0007)"
        if [ ! -f $TARGET ]; then
                echo "Skipping test for $TARGET as it is not present ..."
                return $ksft_skip
@@ -778,7 +778,7 @@ sysctl_test_0007()
 
 sysctl_test_0008()
 {
-       TARGET="${SYSCTL}/match_int"
+       TARGET="${SYSCTL}/$(get_test_target 0008)"
        if [ ! -f $TARGET ]; then
                echo "Skipping test for $TARGET as it is not present ..."
                return $ksft_skip
@@ -857,25 +857,32 @@ function test_num()
                usage
        fi
 }
+function remove_leading_zeros()
+{
+       echo $1 | sed 's/^0*//'
+}
 
 function get_test_count()
 {
        test_num $1
-       TEST_DATA=$(echo $ALL_TESTS | awk '{print $'$1'}')
+       awk_field=$(remove_leading_zeros $1)
+       TEST_DATA=$(echo $ALL_TESTS | awk '{print $'$awk_field'}')
        echo ${TEST_DATA} | awk -F":" '{print $2}'
 }
 
 function get_test_enabled()
 {
        test_num $1
-       TEST_DATA=$(echo $ALL_TESTS | awk '{print $'$1'}')
+       awk_field=$(remove_leading_zeros $1)
+       TEST_DATA=$(echo $ALL_TESTS | awk '{print $'$awk_field'}')
        echo ${TEST_DATA} | awk -F":" '{print $3}'
 }
 
 function get_test_target()
 {
        test_num $1
-       TEST_DATA=$(echo $ALL_TESTS | awk '{print $'$1'}')
+       awk_field=$(remove_leading_zeros $1)
+       TEST_DATA=$(echo $ALL_TESTS | awk '{print $'$awk_field'}')
        echo ${TEST_DATA} | awk -F":" '{print $4}'
 }