OSDN Git Service

selftests: kmod: fix handling test numbers above 9
authorEric Biggers <ebiggers@google.com>
Fri, 10 Apr 2020 21:33:53 +0000 (14:33 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 10 Apr 2020 22:36:22 +0000 (15:36 -0700)
get_test_count() and get_test_enabled() were broken for test numbers
above 9 due to awk interpreting a field specification like '$0010' as
octal rather than decimal.  Fix it by stripping the leading zeroes.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Acked-by: Luis Chamberlain <mcgrof@kernel.org>
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Jeff Vander Stoep <jeffv@google.com>
Cc: Jessica Yu <jeyu@kernel.org>
Cc: Kees Cook <keescook@chromium.org>
Cc: NeilBrown <neilb@suse.com>
Link: http://lkml.kernel.org/r/20200318230515.171692-5-ebiggers@kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
tools/testing/selftests/kmod/kmod.sh

index 8b944cf..315a431 100755 (executable)
@@ -505,18 +505,23 @@ function test_num()
        fi
 }
 
-function get_test_count()
+function get_test_data()
 {
        test_num $1
-       TEST_DATA=$(echo $ALL_TESTS | awk '{print $'$1'}')
+       local field_num=$(echo $1 | sed 's/^0*//')
+       echo $ALL_TESTS | awk '{print $'$field_num'}'
+}
+
+function get_test_count()
+{
+       TEST_DATA=$(get_test_data $1)
        LAST_TWO=${TEST_DATA#*:*}
        echo ${LAST_TWO%:*}
 }
 
 function get_test_enabled()
 {
-       test_num $1
-       TEST_DATA=$(echo $ALL_TESTS | awk '{print $'$1'}')
+       TEST_DATA=$(get_test_data $1)
        echo ${TEST_DATA#*:*:}
 }