Add a basic test for fdtdump
We can test fdtdump by comparing its output with the source file that was compiled by dtc. Add a simple test that should at least catch regressions in basic functionality. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>main
parent
c78ca72e1e
commit
76a65b14d1
1
Makefile
1
Makefile
|
@ -211,6 +211,7 @@ TESTS_BIN += dtc
|
|||
TESTS_BIN += convert-dtsv0
|
||||
TESTS_BIN += fdtput
|
||||
TESTS_BIN += fdtget
|
||||
TESTS_BIN += fdtdump
|
||||
|
||||
include tests/Makefile.tests
|
||||
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
#! /bin/sh
|
||||
|
||||
# Arguments:
|
||||
# $1 - source file to compile and compare with fdtdump output of the
|
||||
# compiled file.
|
||||
|
||||
. ./tests.sh
|
||||
|
||||
dts="$1"
|
||||
dtb="${dts}.dtb"
|
||||
out="${dts}.out"
|
||||
LOG=tmp.log.$$
|
||||
|
||||
files="$dtb $out $LOG"
|
||||
|
||||
rm -f $files
|
||||
trap "rm -f $files" 0
|
||||
|
||||
verbose_run_log_check "$LOG" $VALGRIND $DTC -O dtb $dts -o $dtb
|
||||
$FDTDUMP ${dtb} | grep -v "//" >${out}
|
||||
|
||||
if diff -w $dts $out >/dev/null; then
|
||||
PASS
|
||||
else
|
||||
if [ -z "$QUIET_TEST" ]; then
|
||||
echo "DIFF :-:"
|
||||
diff -u -w $dts $out
|
||||
fi
|
||||
FAIL "Results differ from expected"
|
||||
fi
|
|
@ -0,0 +1,37 @@
|
|||
/dts-v1/;
|
||||
|
||||
/memreserve/ 0 0xe;
|
||||
/ {
|
||||
model = "MyBoardName";
|
||||
compatible = "MyBoardName", "MyBoardFamilyName";
|
||||
#address-cells = <0x00000002>;
|
||||
#size-cells = <0x00000002>;
|
||||
cpus {
|
||||
linux,phandle = <0x00000001>;
|
||||
#address-cells = <0x00000001>;
|
||||
#size-cells = <0x00000000>;
|
||||
PowerPC,970@0 {
|
||||
device_type = "cpu";
|
||||
reg = <0x00000000>;
|
||||
linux,boot-cpu;
|
||||
};
|
||||
PowerPC,970@1 {
|
||||
device_type = "cpu";
|
||||
reg = <0x00000001>;
|
||||
};
|
||||
};
|
||||
randomnode {
|
||||
string = "foo", "stuff";
|
||||
bytes = [61 62 63 64 65];
|
||||
child {
|
||||
};
|
||||
};
|
||||
memory@0 {
|
||||
device_type = "memory";
|
||||
reg = <0x00000000 0x00000123 0x00000456 0x87654321>;
|
||||
};
|
||||
chosen {
|
||||
bootargs = "root=/dev/sda2";
|
||||
linux,platform = <0x00000600>;
|
||||
};
|
||||
};
|
|
@ -138,6 +138,13 @@ run_fdtput_test () {
|
|||
base_run_test sh fdtput-runtest.sh "$expect" "$@"
|
||||
}
|
||||
|
||||
run_fdtdump_test() {
|
||||
file="$1"
|
||||
shorten_echo fdtdump-runtest.sh "$file"
|
||||
echo -n ": "
|
||||
base_run_test sh fdtdump-runtest.sh "$file"
|
||||
}
|
||||
|
||||
tree1_tests () {
|
||||
TREE=$1
|
||||
|
||||
|
@ -602,6 +609,25 @@ utilfdt_tests () {
|
|||
run_test utilfdt_test
|
||||
}
|
||||
|
||||
fdtdump_tests () {
|
||||
run_fdtdump_test fdtdump.dts
|
||||
return
|
||||
|
||||
local dts=fdtdump.dts
|
||||
local dtb=fdtdump.dts.dtb
|
||||
local out=fdtdump.dts.out
|
||||
run_dtc_test -O dtb $dts -o ${dtb}
|
||||
$FDTDUMP ${dtb} | grep -v "//" >${out}
|
||||
if cmp $dts $out >/dev/null; then
|
||||
PASS
|
||||
else
|
||||
if [ -z "$QUIET_TEST" ]; then
|
||||
diff -w fdtdump.dts $out
|
||||
fi
|
||||
FAIL "Results differ from expected"
|
||||
fi
|
||||
}
|
||||
|
||||
while getopts "vt:me" ARG ; do
|
||||
case $ARG in
|
||||
"v")
|
||||
|
@ -620,7 +646,7 @@ while getopts "vt:me" ARG ; do
|
|||
done
|
||||
|
||||
if [ -z "$TESTSETS" ]; then
|
||||
TESTSETS="libfdt utilfdt dtc dtbs_equal fdtget fdtput"
|
||||
TESTSETS="libfdt utilfdt dtc dtbs_equal fdtget fdtput fdtdump"
|
||||
fi
|
||||
|
||||
# Make sure we don't have stale blobs lying around
|
||||
|
@ -646,6 +672,9 @@ for set in $TESTSETS; do
|
|||
"fdtput")
|
||||
fdtput_tests
|
||||
;;
|
||||
"fdtdump")
|
||||
fdtdump_tests
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@ FAIL_IF_SIGNAL () {
|
|||
DTC=../dtc
|
||||
DTGET=../fdtget
|
||||
DTPUT=../fdtput
|
||||
FDTDUMP=../fdtdump
|
||||
|
||||
verbose_run () {
|
||||
if [ -z "$QUIET_TEST" ]; then
|
||||
|
|
Loading…
Reference in New Issue