xref: /netbsd-src/external/gpl2/dtc/dist/tests/testutils.sh (revision cc7d2833ecf67da5a5ddc470841931eb9f6723e4)
1*cc7d2833Sskrll# Common functions for shell testcases
2*cc7d2833Sskrll
3*cc7d2833SskrllPASS () {
4*cc7d2833Sskrll    echo "PASS"
5*cc7d2833Sskrll    exit 0
6*cc7d2833Sskrll}
7*cc7d2833Sskrll
8*cc7d2833SskrllFAIL () {
9*cc7d2833Sskrll    echo "FAIL" "$@"
10*cc7d2833Sskrll    exit 2
11*cc7d2833Sskrll}
12*cc7d2833Sskrll
13*cc7d2833SskrllFAIL_IF_SIGNAL () {
14*cc7d2833Sskrll    ret="$1"
15*cc7d2833Sskrll    if [ "$ret" -gt 127 ]; then
16*cc7d2833Sskrll	signame=$(kill -l $((ret - 128)))
17*cc7d2833Sskrll	FAIL "Killed by SIG$signame"
18*cc7d2833Sskrll    fi
19*cc7d2833Sskrll}
20*cc7d2833Sskrll
21*cc7d2833SskrllDTC=../dtc
22*cc7d2833SskrllDTGET=../fdtget
23*cc7d2833SskrllDTPUT=../fdtput
24*cc7d2833SskrllFDTDUMP=../fdtdump
25*cc7d2833SskrllFDTOVERLAY=../fdtoverlay
26*cc7d2833Sskrll
27*cc7d2833Sskrllverbose_run () {
28*cc7d2833Sskrll    if [ -z "$QUIET_TEST" ]; then
29*cc7d2833Sskrll	"$@"
30*cc7d2833Sskrll    else
31*cc7d2833Sskrll	"$@" > /dev/null 2> /dev/null
32*cc7d2833Sskrll    fi
33*cc7d2833Sskrll}
34*cc7d2833Sskrll
35*cc7d2833Sskrllverbose_run_check () {
36*cc7d2833Sskrll    verbose_run "$@"
37*cc7d2833Sskrll    ret="$?"
38*cc7d2833Sskrll    FAIL_IF_SIGNAL $ret
39*cc7d2833Sskrll    if [ $ret != 0 ]; then
40*cc7d2833Sskrll	FAIL "Returned error code $ret"
41*cc7d2833Sskrll    fi
42*cc7d2833Sskrll}
43*cc7d2833Sskrll
44*cc7d2833Sskrllverbose_run_log () {
45*cc7d2833Sskrll    LOG="$1"
46*cc7d2833Sskrll    shift
47*cc7d2833Sskrll    "$@" > "$LOG" 2>&1
48*cc7d2833Sskrll    ret=$?
49*cc7d2833Sskrll    if [ -z "$QUIET_TEST" ]; then
50*cc7d2833Sskrll	cat "$LOG" >&2
51*cc7d2833Sskrll    fi
52*cc7d2833Sskrll    return $ret
53*cc7d2833Sskrll}
54*cc7d2833Sskrll
55*cc7d2833Sskrllverbose_run_log_check () {
56*cc7d2833Sskrll    verbose_run_log "$@"
57*cc7d2833Sskrll    ret="$?"
58*cc7d2833Sskrll    FAIL_IF_SIGNAL $ret
59*cc7d2833Sskrll    if [ $ret != 0 ]; then
60*cc7d2833Sskrll	FAIL "Returned error code $ret"
61*cc7d2833Sskrll    fi
62*cc7d2833Sskrll}
63*cc7d2833Sskrll
64