Loading...
Note: File does not exist in v3.15.
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
16desc="" # Output prefix.
17module="" # Filename (without the .ko).
18args="" # modprobe arguments.
19
20modprobe="/sbin/modprobe"
21
22main() {
23 parse_args "$@"
24 assert_root
25 assert_have_module
26 run_module
27}
28
29parse_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
44assert_root() {
45 if [ ! -w /dev ]; then
46 skip "please run as root"
47 fi
48}
49
50assert_have_module() {
51 if ! $modprobe -q -n $module; then
52 skip "module $module is not found"
53 fi
54}
55
56run_module() {
57 if $modprobe -q $module $args; then
58 $modprobe -q -r $module
59 say "ok"
60 else
61 fail ""
62 fi
63}
64
65say() {
66 echo "$desc: $1"
67}
68
69
70fail() {
71 say "$1 [FAIL]" >&2
72 exit 1
73}
74
75skip() {
76 say "$1 [SKIP]" >&2
77 # Kselftest framework requirement - SKIP code is 4.
78 exit 4
79}
80
81#
82# Main script
83#
84main "$@"