#!/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 #------------------------------------------------------------------------------