Hi Petr, On Sat, 2019-04-06 at 23:49 +0200, Petr Vorel wrote: > kselftest.sh is a beginning of shell API. > ATM it's a stub (target could be as rich as LTP API), containing only: > * exit codes > * filling TEST variable > * logging functions > * requiring root function > * add script directory into PATH > > Inspired by kexec functions (with some cleanup) > and LTP. > > Signed-off-by: Petr Vorel <pvorel@xxxxxxx> > --- > tools/testing/selftests/kselftest.sh | 53 ++++++++++++++++++++++++++++ > 1 file changed, 53 insertions(+) > create mode 100644 tools/testing/selftests/kselftest.sh > > diff --git a/tools/testing/selftests/kselftest.sh b/tools/testing/selftests/kselftest.sh > new file mode 100644 > index 000000000000..519ec2707dd8 > --- /dev/null > +++ b/tools/testing/selftests/kselftest.sh > @@ -0,0 +1,53 @@ > +#!/bin/sh > +# SPDX-License-Identifier: GPL-2.0 > +# Copyright (c) 2019 Petr Vorel <pvorel@xxxxxxx> > + > +PATH="$(dirname $0):$PATH" > + > +KSFT_PASS=0 > +KSFT_FAIL=1 > +KSFT_XFAIL=2 > +KSFT_XPASS=3 > +KSFT_SKIP=4 The kexec tests only defined functions for PASS, FAIL, and SKIP. What is the difference between KSFT_FAIL and KSFT_XFAIL, and similarly between KSFT_PASS and KSFT_XPASS? Either here or above the functions should be a comment. > + > +TEST=$(basename $0) > + > +ksft_info() > +{ > + echo "[INFO] $TEST: $1" > +} The "ksft_" prefix is good. Mimi > +ksft_pass() > +{ > + echo "[PASS] $TEST: $1" > + exit $KSFT_PASS > +} > + > +ksft_fail() > +{ > + echo "[FAIL] $TEST: $1" > + exit $KSFT_FAIL > +} > + > +ksft_xfail() > +{ > + echo "[FAIL] $TEST: $1" > + exit $KSFT_XFAIL > +} > +ksft_xpass() > +{ > + echo "[PASS] $TEST: $1" > + exit $KSFT_XPASS > +} > + > +ksft_skip() > +{ > + echo "[SKIP] $TEST: $1" > + exit $KSFT_SKIP > +} > + > +ksft_require_root() > +{ > + [ $(id -ru) -eq 0 ] || ksft_skip "requires root privileges" > +}