More work for C++ mode:
[cparser] / parsetest / do_tests.sh
1 #!/bin/bash
2
3 CPARSER=../build/cparser
4 CPARSER_FLAGS="-O3 -fno-inline"
5
6 rm -f messages.cparser messages.gcc
7 for i in *.c should_pass/*.c; do
8         echo -n "Compile $i..."
9         "$CPARSER" $i $CPARSER_FLAGS -std=c99 -o prog.cparser >> messages.cparser 2>&1 || echo -n " CPARSER COMPILE FAILED"
10         gcc -m32 -std=c99 $i -O3 -o prog.gcc >> messages.gcc 2>&1 || echo -n " GCC COMPILE FAILED"
11         ./prog.cparser > out.cparser || echo -n " FAILED CPARSER RUN"
12         ./prog.gcc > out.gcc || echo -n " FAILED GCC RUN"
13         diff -u out.cparser out.gcc > /dev/null || echo -n " RESULTS MISCOMPARE"
14         echo ""
15 done
16
17 for i in gnu99/*.c; do
18         echo -n "Compile $i..."
19         "$CPARSER" $i $CPARSER_FLAGS -std=gnu99 -o prog.cparser >> messages.cparser 2>&1 || echo -n " CPARSER COMPILE FAILED"
20         gcc -m32 -std=gnu99 $i -O3 -o prog.gcc >> messages.gcc 2>&1 || echo -n " GCC COMPILE FAILED"
21         ./prog.cparser > out.cparser || echo -n " FAILED CPARSER RUN"
22         ./prog.gcc > out.gcc || echo -n " FAILED GCC RUN"
23         diff -u out.cparser out.gcc > /dev/null || echo -n " RESULTS MISCOMPARE"
24         echo ""
25 done
26
27 for i in MS/*.c; do
28         echo -n "Compile $i..."
29         "$CPARSER" $CPARSER_FLAGS --ms $i -o prog.cparser >> messages.cparser 2>&1 || echo -n " CPARSER COMPILE FAILED"
30         ./prog.cparser > out.cparser || echo -n " FAILED CPARSER RUN"
31         echo ""
32 done
33
34 for i in should_warn/*.c; do
35         echo -n "Compile $i..."
36         "$CPARSER" $CPARSER_FLAGS $i -Wall -o prog.cparser >> messages.cparser 2>&1 || echo -n " CPARSER DID NOT COMPILE"
37         gcc -Wall -m32 -std=gnu99 $i -O3 -o prog.gcc >> messages.gcc 2>&1 || echo -n " GCC DID NOT COMPILER"
38         echo ""
39         if diff -u /dev/null messages.cparser > /dev/null; then
40                 echo -n " CPARSER HAD NO WARNINGS"
41         fi
42         if diff -u /dev/null messages.gcc > /dev/null; then
43                 echo -n " GCC HAD NO WARNINGS"
44         fi
45 done
46
47 for i in should_fail/*.c; do
48         echo -n "Compile $i..."
49         "$CPARSER" $CPARSER_FLAGS $i -std=c99 -o prog.cparser >> messages.cparser 2>&1 && echo -n " CPARSER COMPILED"
50         gcc -m32 -std=c99 $i -O3 -o prog.gcc >> messages.gcc 2>&1 && echo -n " GCC COMPILED"
51         echo ""
52 done