summaryrefslogtreecommitdiff
path: root/tests/fdtput-runtest.sh
blob: 8e4cd95ec4726edf10f67b4ff0cb57025978ad40 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#! /bin/sh

# Run script for fdtput tests
# We run fdtput to update the device tree, thn fdtget to check it

# Usage
#    fdtput-runtest.sh name expected_output dtb_file node property flags value

. ./tests.sh

LOG="tmp.log.$$"
EXPECT="tmp.expect.$$"

rm -f $LOG

expect="$1"
echo "$expect" >$EXPECT
dtb="$2"
node="$3"
property="$4"
flags="$5"
shift 5
value="$@"

# First run fdtput
verbose_run $VALGRIND "$DTPUT" "$dtb" "$node" "$property" $value $flags
ret="$?"

if [ "$ret" -ne 0 -a "$expect" = "ERR" ]; then
	PASS
fi
if [ "$ret" -gt 127 ]; then
    signame=$(kill -l $[ret - 128])
    FAIL "Killed by SIG$signame"
fi

# Now fdtget to read the value
verbose_run_log "$LOG" $VALGRIND "$DTGET" "$dtb" "$node" "$property" $flags
ret="$?"

if [ "$ret" -gt 127 ]; then
    signame=$(kill -l $[ret - 128])
    FAIL "Killed by SIG$signame"
fi

diff $EXPECT $LOG
ret="$?"

rm -f $LOG $EXPECT

if [ "$ret" -eq 0 ]; then
	PASS
else
	FAIL
fi