I noticed the error type passed in didn't matter for check tests to pass. There's a couple of problems with the grep regex. The error/warning messages begin with the output filename now, so "ERROR" or "Warning" is not at the beginning of the line. Secondly, the parentheses seem to be wrong. It's not clear to me what was intended. Signed-off-by: Rob Herring <robh@kernel.org> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
45 lines
700 B
Bash
Executable File
45 lines
700 B
Bash
Executable File
#! /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
|