diff options
Diffstat (limited to 'qemu/dtc/tests/dtc-checkfails.sh')
-rwxr-xr-x | qemu/dtc/tests/dtc-checkfails.sh | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/qemu/dtc/tests/dtc-checkfails.sh b/qemu/dtc/tests/dtc-checkfails.sh new file mode 100755 index 000000000..76ded15c2 --- /dev/null +++ b/qemu/dtc/tests/dtc-checkfails.sh @@ -0,0 +1,44 @@ +#! /bin/sh + +. ./tests.sh + +for x; do + shift + if [ "$x" = "-n" ]; then + for x; do + shift + if [ "$x" = "--" ]; then + break; + fi + NOCHECKS="$NOCHECKS $x" + done + break; + fi + if [ "$x" = "--" ]; then + break; + fi + YESCHECKS="$YESCHECKS $x" +done + +LOG=tmp.log.$$ +rm -f $LOG +trap "rm -f $LOG" 0 + +verbose_run_log "$LOG" $VALGRIND "$DTC" -o /dev/null "$@" +ret="$?" + +FAIL_IF_SIGNAL $ret + +for c in $YESCHECKS; do + if ! grep -E "^(ERROR)|(Warning) \($c\):" $LOG > /dev/null; then + FAIL "Failed to trigger check \"$c\"" + fi +done + +for c in $NOCHECKS; do + if grep -E "^(ERROR)|(Warning) \($c\):" $LOG > /dev/null; then + FAIL "Incorrectly triggered check \"$c\"" + fi +done + +PASS |