123 lines
2.7 KiB
Bash
Executable File
123 lines
2.7 KiB
Bash
Executable File
#!/bin/sh
|
|
cd "${0%/*}" || exit # Run from this directory
|
|
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
|
|
#------------------------------------------------------------------------------
|
|
|
|
echo "dictionary input tests"
|
|
|
|
verbose=false
|
|
npass=0
|
|
nwarn=0
|
|
nfail=0
|
|
|
|
# Increase verbosity on demand, with the -verbose flag
|
|
for i in "$@"
|
|
do
|
|
case "$i" in (-verbose*) verbose=true ;; esac
|
|
done
|
|
|
|
|
|
foamDictionary -help > /dev/null 2>&1 || {
|
|
echo "Error: non-functional foamDictionary"
|
|
exit 2
|
|
}
|
|
|
|
|
|
# Some tests may need #calc
|
|
unset noDynamicCode
|
|
canCompile || noDynamicCode=true
|
|
|
|
for dict in \
|
|
good*.dict \
|
|
warn*.dict \
|
|
fatal*.dict \
|
|
;
|
|
do
|
|
[ -f "$dict" ] || continue # protect against bad globs
|
|
|
|
if [ "$noDynamicCode" = true ] && grep -q '#calc' "$dict"
|
|
then
|
|
continue
|
|
fi
|
|
|
|
# capture stderr, ignore stdout
|
|
stderr=$(foamDictionary -keywords $dict 2>&1 >/dev/null)
|
|
exitCode=$?
|
|
|
|
case "$dict" in
|
|
*fatal*)
|
|
if [ $exitCode -eq 0 ]
|
|
then
|
|
echo "NOK did not detect fatal input $dict"
|
|
nfail=$(($fail + 1))
|
|
else
|
|
echo "OK detected fatal input $dict"
|
|
npass=$(($npass + 1))
|
|
fi
|
|
;;
|
|
|
|
*good*)
|
|
if [ $exitCode -eq 0 ]
|
|
then
|
|
npass=$(($npass + 1))
|
|
if [ "${#stderr}" -gt 0 ]
|
|
then
|
|
# count unexpected warnings
|
|
nwarn=$(($nwarn + 1))
|
|
echo "NOK unexpected warnings: $dict"
|
|
else
|
|
echo "OK good input $dict"
|
|
fi
|
|
else
|
|
echo "NOK failed input $dict"
|
|
nfail=$(($fail + 1))
|
|
fi
|
|
;;
|
|
|
|
*warn*)
|
|
if [ $exitCode -eq 0 ]
|
|
then
|
|
npass=$(($npass + 1))
|
|
if [ "${#stderr}" -gt 0 ]
|
|
then
|
|
echo "OK trapped warnings: $dict"
|
|
else
|
|
# count missing warnings
|
|
nwarn=$(($nwarn + 1))
|
|
echo "NOK missing expected warnings: $dict"
|
|
fi
|
|
else
|
|
nfail=$(($fail + 1))
|
|
echo "NOK failed (not warn) input $dict"
|
|
fi
|
|
;;
|
|
|
|
esac
|
|
|
|
if [ "$verbose" = true ] && [ "${#stderr}" -gt 0 ]
|
|
then
|
|
echo "================" 1>&2
|
|
echo "dictionary = $dict" 1>&2
|
|
echo "$stderr" 1>&2
|
|
echo "================" 1>&2
|
|
fi
|
|
|
|
done
|
|
|
|
echo "$npass passed"
|
|
echo "$nwarn warnings"
|
|
echo "$nfail failed"
|
|
|
|
if test $nfail -eq 0
|
|
then
|
|
echo
|
|
echo End
|
|
echo
|
|
else
|
|
echo "Found $nfail FatalErrors"
|
|
exit 1
|
|
fi
|
|
|
|
|
|
#------------------------------------------------------------------------------
|