brintos

brintos / linux-shallow public Read only

0
0
Text · 1.3 KiB · fb4733f Raw
85 lines · bash
1#!/bin/sh2# 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 be8# created by adding a script like this:9#10#   #!/bin/sh11#   SPDX-License-Identifier: GPL-2.0+12#   $(dirname $0)/../kselftest/module.sh "description" module_name13#14# Example: tools/testing/selftests/lib/printf.sh15 16desc=""				# Output prefix.17module=""			# Filename (without the .ko).18args=""				# modprobe arguments.19 20modprobe="/sbin/modprobe"21 22main() {23    parse_args "$@"24    assert_root25    assert_have_module26    run_module27}28 29parse_args() {30    script=${0##*/}31 32    if [ $# -lt 2 ]; then33	echo "Usage: $script <description> <module_name> [FAIL]"34	exit 135    fi36 37    desc="$1"38    shift || true39    module="$1"40    shift || true41    args="$@"42}43 44assert_root() {45    if [ ! -w /dev ]; then46	skip "please run as root"47    fi48}49 50assert_have_module() {51    if ! $modprobe -q -n $module; then52	skip "module $module is not found"53    fi54}55 56run_module() {57    if $modprobe -q $module $args; then58	$modprobe -q -r $module59	say "ok"60    else61	fail ""62    fi63}64 65say() {66    echo "$desc: $1"67}68 69 70fail() {71    say "$1 [FAIL]" >&272    exit 173}74 75skip() {76    say "$1 [SKIP]" >&277    # Kselftest framework requirement - SKIP code is 4.78    exit 479}80 81#82# Main script83#84main "$@"85