File: TestParsing

package info (click to toggle)
openfoam 1912.200626-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye
  • size: 238,940 kB
  • sloc: cpp: 1,159,638; sh: 15,902; ansic: 5,195; lex: 660; xml: 387; python: 282; awk: 212; makefile: 103; sed: 88; csh: 3
file content (113 lines) | stat: -rwxr-xr-x 2,542 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#!/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
}


for dict in \
    good*.dict \
    warn*.dict \
    fatal*.dict \
;
do
    [ -f "$dict" ] || continue   # protect against bad globs

    # 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


#------------------------------------------------------------------------------