dtc: More detailed testing of tree checks
This patch modifies the dtc-checkfails.sh testcase wrapper so that instead of testing just that dtc fails with a particular error code on the sample input, it scans dtc's stderr output looking for a message that dtc failed a specific check or checks. This has several advantages: - It means we more precisely check dtc's checking behaviour - It means we can check for generation of warnings using the same script - It means we can test cases where dtc should generate multiple errors or warnings from different checks Signed-off-by: David Gibson <david@gibson.dropbear.id.au>main
parent
d6060bd231
commit
5ba0086bfd
|
@ -26,7 +26,7 @@ TESTS_TARGETS = $(TESTS) $(TESTS_TREES)
|
||||||
TESTS_DEPFILES = $(TESTS:%=%.d) \
|
TESTS_DEPFILES = $(TESTS:%=%.d) \
|
||||||
$(addprefix $(TESTS_PREFIX),testutils.d trees.d dumptrees.d)
|
$(addprefix $(TESTS_PREFIX),testutils.d trees.d dumptrees.d)
|
||||||
|
|
||||||
TESTS_CLEANFILES_L = *.output vglog.* vgcore.* *.dtb *.test.dts
|
TESTS_CLEANFILES_L = *.output vglog.* vgcore.* *.dtb *.test.dts tmp.*
|
||||||
TESTS_CLEANFILES = $(TESTS_CLEANFILES_L:%=$(TESTS_PREFIX)%)
|
TESTS_CLEANFILES = $(TESTS_CLEANFILES_L:%=$(TESTS_PREFIX)%)
|
||||||
|
|
||||||
BIN += $(TESTS) $(TESTS_PREFIX)dumptrees
|
BIN += $(TESTS) $(TESTS_PREFIX)dumptrees
|
||||||
|
|
|
@ -2,21 +2,27 @@
|
||||||
|
|
||||||
. tests.sh
|
. tests.sh
|
||||||
|
|
||||||
TMPFILE="tmp.out.$$"
|
for x; do
|
||||||
|
shift
|
||||||
|
if [ "$x" = "--" ]; then
|
||||||
|
break;
|
||||||
|
fi
|
||||||
|
CHECKS="$CHECKS $x"
|
||||||
|
done
|
||||||
|
|
||||||
rm -f $TMPFILE
|
LOG="tmp.log.$$"
|
||||||
|
|
||||||
verbose_run "$DTC" -o $TMPFILE "$@"
|
rm -f $TMPFILE $LOG
|
||||||
|
|
||||||
|
verbose_run_log "$LOG" "$DTC" -o /dev/null "$@"
|
||||||
ret="$?"
|
ret="$?"
|
||||||
|
|
||||||
if [ -f $TMPFILE ]; then
|
for c in $CHECKS; do
|
||||||
FAIL "output file was created despite bad input"
|
if ! grep -E "^(ERROR)|(Warning) \($c\):" $LOG > /dev/null; then
|
||||||
fi
|
FAIL "Failed to trigger check \"%c\""
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
if [ "$ret" = "2" ]; then
|
rm -f $LOG
|
||||||
PASS
|
|
||||||
else
|
|
||||||
FAIL "dtc returned error code $ret instead of 2 (check failed)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -f $TMPFILE
|
PASS
|
||||||
|
|
|
@ -158,14 +158,14 @@ dtc_tests () {
|
||||||
done
|
done
|
||||||
|
|
||||||
# Check some checks
|
# Check some checks
|
||||||
run_test dtc-checkfails.sh -I dts -O dtb dup-nodename.dts
|
run_test dtc-checkfails.sh duplicate_node_names -- -I dts -O dtb dup-nodename.dts
|
||||||
run_test dtc-checkfails.sh -I dts -O dtb dup-propname.dts
|
run_test dtc-checkfails.sh duplicate_property_names -- -I dts -O dtb dup-propname.dts
|
||||||
run_test dtc-checkfails.sh -I dts -O dtb dup-phandle.dts
|
run_test dtc-checkfails.sh explicit_phandles -- -I dts -O dtb dup-phandle.dts
|
||||||
run_test dtc-checkfails.sh -I dts -O dtb zero-phandle.dts
|
run_test dtc-checkfails.sh explicit_phandles -- -I dts -O dtb zero-phandle.dts
|
||||||
run_test dtc-checkfails.sh -I dts -O dtb minusone-phandle.dts
|
run_test dtc-checkfails.sh explicit_phandles -- -I dts -O dtb minusone-phandle.dts
|
||||||
run_test dtc-checkfails.sh -I dts -O dtb nonexist-node-ref.dts
|
run_test dtc-checkfails.sh phandle_references -- -I dts -O dtb nonexist-node-ref.dts
|
||||||
run_test dtc-checkfails.sh -I dts -O dtb nonexist-label-ref.dts
|
run_test dtc-checkfails.sh phandle_references -- -I dts -O dtb nonexist-label-ref.dts
|
||||||
run_test dtc-checkfails.sh -I dts -O dtb bad-name-property.dts
|
run_test dtc-checkfails.sh name_properties -- -I dts -O dtb bad-name-property.dts
|
||||||
}
|
}
|
||||||
|
|
||||||
while getopts "vt:m" ARG ; do
|
while getopts "vt:m" ARG ; do
|
||||||
|
|
|
@ -19,3 +19,14 @@ verbose_run () {
|
||||||
"$@" > /dev/null 2> /dev/null
|
"$@" > /dev/null 2> /dev/null
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
verbose_run_log () {
|
||||||
|
LOG="$1"
|
||||||
|
shift
|
||||||
|
"$@" &> "$LOG"
|
||||||
|
ret=$?
|
||||||
|
if [ -z "$QUIET_TEST" ]; then
|
||||||
|
cat "$LOG" >&2
|
||||||
|
fi
|
||||||
|
return $ret
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue