#!/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() {
    echo "Checking for $module"
    if ! $modprobe -n $module; then
	skip "module $module is not found"
    fi
}

run_module() {
    if $modprobe $module $args; then
	$modprobe -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 "$@"
