1f9a417508
Currently the test runner script always expects to be run from within the tests/ subdirectory of a dtc source tree: it looks for dtc and other binaries in the parent of the current directory and for the libfdt shared library in ../libfdt. That works great with make check and for testing a build you've just made. However, sometimes it's useful to test a dtc & libfdt which have already been installed on the system, or which for whatever reason are located somewhere else. This patch allows the test runner script to do this when TEST_BINDIR and/or TEST_LIBDIR environment variables are set. Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
67 lines
1 KiB
Bash
67 lines
1 KiB
Bash
# 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
|
|
}
|
|
|