diff options
Diffstat (limited to 'dtc/tests/testutils.sh')
-rw-r--r-- | dtc/tests/testutils.sh | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/dtc/tests/testutils.sh b/dtc/tests/testutils.sh new file mode 100644 index 000000000..6b2f0d14e --- /dev/null +++ b/dtc/tests/testutils.sh @@ -0,0 +1,67 @@ +# Common functions for shell testcases + +PASS () { + echo "PASS" + exit 0 +} + +FAIL () { + echo "FAIL" "$@" + exit 2 +} + +FAIL_IF_SIGNAL () { + ret="$1" + if [ "$ret" -gt 127 ]; then + signame=$(kill -l $((ret - 128))) + FAIL "Killed by SIG$signame" + fi +} + +if [ -z "$TEST_BINDIR" ]; then + TEST_BINDIR=.. +fi + +DTC=${TEST_BINDIR}/dtc +DTGET=${TEST_BINDIR}/fdtget +DTPUT=${TEST_BINDIR}/fdtput +FDTDUMP=${TEST_BINDIR}/fdtdump +FDTOVERLAY=${TEST_BINDIR}/fdtoverlay + +verbose_run () { + if [ -z "$QUIET_TEST" ]; then + "$@" + else + "$@" > /dev/null 2> /dev/null + fi +} + +verbose_run_check () { + verbose_run "$@" + ret="$?" + FAIL_IF_SIGNAL $ret + if [ $ret != 0 ]; then + FAIL "Returned error code $ret" + fi +} + +verbose_run_log () { + LOG="$1" + shift + "$@" > "$LOG" 2>&1 + ret=$? + if [ -z "$QUIET_TEST" ]; then + cat "$LOG" >&2 + fi + return $ret +} + +verbose_run_log_check () { + verbose_run_log "$@" + ret="$?" + FAIL_IF_SIGNAL $ret + if [ $ret != 0 ]; then + FAIL "Returned error code $ret" + fi +} + |