OSDN Git Service

30ff13d6e2de9a9afd90063a2fe9d8da83ed083b
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.test-framework / test-framework.awk
1 # Process the gcc.sum file for a run through gcc.test-framework.
2 # Print result lines that show potential problems.  Report the number
3 # of passing tests.
4 #
5 #
6 # Copyright (c) 2004, 2005 Free Software Foundation, Inc.
7 #
8 # This file is free software; you can redistribute it and/or modify
9 # it under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 2 of the License, or
11 # (at your option) any later version.
12 #
13 # This program is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 # GNU General Public License for more details.
17 #
18 # For a copy of the GNU General Public License, write the the
19 # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20 # Boston, MA 02110-1301, USA.
21
22 function pass(msg)      {
23                           passes++;
24                         # printf("pass   %s\n", $0);
25                         }
26 function fail(msg)      {
27                           fails++;
28                           printf("fail   %s\n", $0);
29                         }
30 function ignore(msg)    {
31                         # printf("ignore %s\n", $0);
32                         }
33
34 BEGIN                   { skip = 1; passes = 0; fails = 0; }
35 /Running.*test-frame/   { skip = 0; next }
36 /gcc Summary/           { skip = 1; next }
37                         { if (skip) next }
38 /^$/                    { next }
39 # The post tests are always expected to pass.
40 /^PASS.*-2.c/           { ignore(); next }
41 # dg-xfail-if applies to the compile step; these should be XPASS for the
42 # compile step on dox tests, which are run tests.
43 /^XPASS.*dox.*xiff.*-1.c.*(test for excess errors)/ { ignore(); next }
44 # xfail for scan-assembler-not tests doesn't apply to the compile step.
45 /^PASS.*sa.*-1.c.*(test for excess errors)/ { ignore(); next }
46 # The other dox tests pass the compile step; ignore that message.
47 /^PASS.*dox.*(test for excess errors)/ { ignore(); next }
48 # Ignore lines that begin with comma.
49 /^,/                    { ignore(); next }
50 # For tests of dg-output, ignore successful compilation.
51 /^PASS.*dg-output.*(test for excess error)/     { ignore(); next }
52 # For tests of dg-output, ignore successful execution.
53 /^PASS.*dg-output.*execution test/      { ignore(); next }
54 /^PASS/                 { if (match ($0, "exp-P")) { pass(); next } }
55 /^FAIL/                 { if (match ($0, "exp-F")) { pass(); next } }
56 /^XPASS/                { if (match ($0, "exp-XP")) { pass(); next } }
57 /^XFAIL/                { if (match ($0, "exp-XF")) { pass(); next } }
58 /^UNSUPPORTED/          { if (match ($0, "exp-U")) { pass(); next } }
59                         { fail() }
60 END                     {
61                           printf("\n\t\t=== Test Framework Summary ===\n\n");
62                           printf("# of expected passes\t\t%d\n", passes);
63                           if (fails != 0)
64                             printf("# of unexpected failures\t%d\n", fails);
65                         }