mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-10-31 08:44:41 +00:00 
			
		
		
		
	 3a019636e6
			
		
	
	
		3a019636e6
		
	
	
	
	
		
			
			Commitc78fd76f2b("selftests: Move kselftest_module.sh into kselftest/") moved kselftest_module.sh but missed updating a few references to the path in documentation. Fixes:c78fd76f2b("selftests: Move kselftest_module.sh into kselftest/") Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Acked-by: Kees Cook <keescook@chromium.org> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
		
			
				
	
	
		
			84 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/bin/sh
 | |
| # SPDX-License-Identifier: GPL-2.0+
 | |
| 
 | |
| #
 | |
| # Runs an individual test module.
 | |
| #
 | |
| # kselftest expects a separate executable for each test, this can be
 | |
| # created by adding a script like this:
 | |
| #
 | |
| #   #!/bin/sh
 | |
| #   SPDX-License-Identifier: GPL-2.0+
 | |
| #   $(dirname $0)/../kselftest/module.sh "description" module_name
 | |
| #
 | |
| # Example: tools/testing/selftests/lib/printf.sh
 | |
| 
 | |
| desc=""				# Output prefix.
 | |
| module=""			# Filename (without the .ko).
 | |
| args=""				# modprobe arguments.
 | |
| 
 | |
| modprobe="/sbin/modprobe"
 | |
| 
 | |
| main() {
 | |
|     parse_args "$@"
 | |
|     assert_root
 | |
|     assert_have_module
 | |
|     run_module
 | |
| }
 | |
| 
 | |
| parse_args() {
 | |
|     script=${0##*/}
 | |
| 
 | |
|     if [ $# -lt 2 ]; then
 | |
| 	echo "Usage: $script <description> <module_name> [FAIL]"
 | |
| 	exit 1
 | |
|     fi
 | |
| 
 | |
|     desc="$1"
 | |
|     shift || true
 | |
|     module="$1"
 | |
|     shift || true
 | |
|     args="$@"
 | |
| }
 | |
| 
 | |
| assert_root() {
 | |
|     if [ ! -w /dev ]; then
 | |
| 	skip "please run as root"
 | |
|     fi
 | |
| }
 | |
| 
 | |
| assert_have_module() {
 | |
|     if ! $modprobe -q -n $module; then
 | |
| 	skip "module $module is not found"
 | |
|     fi
 | |
| }
 | |
| 
 | |
| run_module() {
 | |
|     if $modprobe -q $module $args; then
 | |
| 	$modprobe -q -r $module
 | |
| 	say "ok"
 | |
|     else
 | |
| 	fail ""
 | |
|     fi
 | |
| }
 | |
| 
 | |
| say() {
 | |
|     echo "$desc: $1"
 | |
| }
 | |
| 
 | |
| 
 | |
| fail() {
 | |
|     say "$1 [FAIL]" >&2
 | |
|     exit 1
 | |
| }
 | |
| 
 | |
| skip() {
 | |
|     say "$1 [SKIP]" >&2
 | |
|     # Kselftest framework requirement - SKIP code is 4.
 | |
|     exit 4
 | |
| }
 | |
| 
 | |
| #
 | |
| # Main script
 | |
| #
 | |
| main "$@"
 |