blob: b3d19f5e23c400f3b7fdd6ddcf91b18c60090f82 [file] [log] [blame]
#!/usr/bin/env bash
# SPDX-License-Identifier: GPL-2.0-or-later
# SPDX-FileCopyrightText: 2017-2021 Bartosz Golaszewski <bartekgola@gmail.com>
MIN_KERNEL_VERSION="5.5.0"
BATS_SCRIPT="gpio-tools-test.bats"
SOURCE_DIR="$(dirname ${BASH_SOURCE[0]})"
die() {
echo "$@" 1>&2
exit 1
}
check_kernel() {
local REQUIRED=$1
local CURRENT=$(uname -r)
SORTED=$(printf "$REQUIRED\n$CURRENT" | sort -V | head -n 1)
if [ "$SORTED" != "$REQUIRED" ]
then
die "linux kernel version must be at least: v$REQUIRED - got: v$CURRENT"
fi
}
check_prog() {
local PROG=$1
which "$PROG" > /dev/null
if [ "$?" -ne "0" ]
then
die "$PROG not found - needed to run the tests"
fi
}
# Check all required non-coreutils tools
check_prog bats
check_prog modprobe
check_prog rmmod
check_prog udevadm
# Check if we're running a kernel at the required version or later
check_kernel $MIN_KERNEL_VERSION
# The bats script must be in the same directory.
if [ ! -e "$SOURCE_DIR/$BATS_SCRIPT" ]
then
die "testing script not found"
fi
BATS_PATH=$(which bats)
exec $BATS_PATH $SOURCE_DIR/$BATS_SCRIPT ${1+"$@"}