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 += convert-dtsv0
|
||||||
TESTS_BIN += fdtput
|
TESTS_BIN += fdtput
|
||||||
TESTS_BIN += fdtget
|
TESTS_BIN += fdtget
|
||||||
|
TESTS_BIN += fdtdump
|
||||||
|
|
||||||
include tests/Makefile.tests
|
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" "$@"
|
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 () {
|
tree1_tests () {
|
||||||
TREE=$1
|
TREE=$1
|
||||||
|
|
||||||
|
@ -602,6 +609,25 @@ utilfdt_tests () {
|
||||||
run_test utilfdt_test
|
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
|
while getopts "vt:me" ARG ; do
|
||||||
case $ARG in
|
case $ARG in
|
||||||
"v")
|
"v")
|
||||||
|
@ -620,7 +646,7 @@ while getopts "vt:me" ARG ; do
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ -z "$TESTSETS" ]; then
|
if [ -z "$TESTSETS" ]; then
|
||||||
TESTSETS="libfdt utilfdt dtc dtbs_equal fdtget fdtput"
|
TESTSETS="libfdt utilfdt dtc dtbs_equal fdtget fdtput fdtdump"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Make sure we don't have stale blobs lying around
|
# Make sure we don't have stale blobs lying around
|
||||||
|
@ -646,6 +672,9 @@ for set in $TESTSETS; do
|
||||||
"fdtput")
|
"fdtput")
|
||||||
fdtput_tests
|
fdtput_tests
|
||||||
;;
|
;;
|
||||||
|
"fdtdump")
|
||||||
|
fdtdump_tests
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@ FAIL_IF_SIGNAL () {
|
||||||
DTC=../dtc
|
DTC=../dtc
|
||||||
DTGET=../fdtget
|
DTGET=../fdtget
|
||||||
DTPUT=../fdtput
|
DTPUT=../fdtput
|
||||||
|
FDTDUMP=../fdtdump
|
||||||
|
|
||||||
verbose_run () {
|
verbose_run () {
|
||||||
if [ -z "$QUIET_TEST" ]; then
|
if [ -z "$QUIET_TEST" ]; then
|
||||||
|
|
Loading…
Reference in New Issue