2023-08-11 20:59:39 -05:00
|
|
|
#!/usr/bin/env bash
|
2022-01-03 21:12:22 -06:00
|
|
|
|
|
|
|
fail() {
|
|
|
|
echo "$1" >&2
|
|
|
|
exit 1
|
|
|
|
}
|
|
|
|
|
|
|
|
runTest() {
|
|
|
|
desc="$1"
|
|
|
|
want="$2"
|
|
|
|
shift 2
|
|
|
|
echo "running '$desc' with args $@"
|
|
|
|
output=`../../yosys -q "$@" 2>&1`
|
|
|
|
if [ $? -ne 1 ]; then
|
|
|
|
fail "exit code for '$desc' was not 1"
|
|
|
|
fi
|
|
|
|
if [ "$output" != "$want" ]; then
|
|
|
|
fail "output for '$desc' did not match"
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
unmet() {
|
|
|
|
kind=$1
|
|
|
|
runTest "unmet $kind" \
|
|
|
|
"ERROR: Expected $kind pattern 'foobar' not found !" \
|
|
|
|
-p "logger -expect $kind \"foobar\" 1"
|
|
|
|
}
|
|
|
|
|
|
|
|
unmet log
|
|
|
|
unmet warning
|
|
|
|
unmet error
|
|
|
|
|
|
|
|
runTest "too many logs" \
|
|
|
|
"ERROR: Expected log pattern 'statistics' found 2 time(s), instead of 1 time(s) !" \
|
|
|
|
-p "logger -expect log \"statistics\" 1" -p stat -p stat
|
|
|
|
|
|
|
|
runTest "too many warnings" \
|
|
|
|
"Warning: Found log message matching -W regex:
|
|
|
|
Printing statistics.
|
|
|
|
ERROR: Expected warning pattern 'statistics' found 2 time(s), instead of 1 time(s) !" \
|
|
|
|
-p "logger -warn \"Printing statistics\"" \
|
|
|
|
-p "logger -expect warning \"statistics\" 1" -p stat -p stat
|