1 #!/bin/sh 2 # SPDX-License-Identifier: GPL-2.0+ 3 4 # 5 # Runs an individual test module. 6 # 7 # kselftest expects a separate executable for each test, this can be 8 # created by adding a script like this: 9 # 10 # #!/bin/sh 11 # SPDX-License-Identifier: GPL-2.0+ 12 # $(dirname $0)/../kselftest/module.sh "description" module_name 13 # 14 # Example: tools/testing/selftests/lib/printf.sh 15 16 desc="" # Output prefix. 17 module="" # Filename (without the .ko). 18 args="" # modprobe arguments. 19 20 modprobe="/sbin/modprobe" 21 22 main() { 23 parse_args "$@" 24 assert_root 25 assert_have_module 26 run_module 27 } 28 29 parse_args() { 30 script=${0##*/} 31 32 if [ $# -lt 2 ]; then 33 echo "Usage: $script <description> <module_name> [FAIL]" 34 exit 1 35 fi 36 37 desc="$1" 38 shift || true 39 module="$1" 40 shift || true 41 args="$@" 42 } 43 44 assert_root() { 45 if [ ! -w /dev ]; then 46 skip "please run as root" 47 fi 48 } 49 50 assert_have_module() { 51 if ! $modprobe -q -n $module; then 52 skip "module $module is not found" 53 fi 54 } 55 56 run_module() { 57 if $modprobe -q $module $args; then 58 $modprobe -q -r $module 59 say "ok" 60 else 61 fail "" 62 fi 63 } 64 65 say() { 66 echo "$desc: $1" 67 } 68 69 70 fail() { 71 say "$1 [FAIL]" >&2 72 exit 1 73 } 74 75 skip() { 76 say "$1 [SKIP]" >&2 77 # Kselftest framework requirement - SKIP code is 4. 78 exit 4 79 } 80 81 # 82 # Main script 83 # 84 main "$@"
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.