2008-10-14 Vladimir Makarov <vmakarov@redhat.com>
[official-gcc.git] / gcc / testsuite / README.gcc
blobf193bde54bbbbf1fe684a951341651fe3b554870
1 This file contains a list of notes for those writing testcases and those
2 writing expect scripts.  At present, they're in random order.
3 \f
4 Verbosity Levels
6 - each level adds verbosity so level 2 prints all level 1 and level 2 stuff.
8 1) Print a one-liner indicating the testcase being run (and maybe special
9    compiler options).
11 2) Print compiler and program invocation including arguments and their output.
12    Proc's gcc_load and gcc_start handle the latter two.
14 3) Print detailed testcase analysis like "Looking for pattern ...", etc.
16 4) Maximum verbosity.  Print anything else of interest.
18 send_log conventions
20 Various messages are stored in gcc.log by the testing framework and we
21 try to augment them with some of our own.  The format of the framework
22 messages are:
24 PASS: blah blah ...
25 FAIL: blah blah ...
27 so we use
29 XXXX: blah blah ...
31 Current messages are:
33 EXEC: program being executed (so compiler path and args are recorded)
34 STAT: intermediate pass/fail statistics
36 Test scripts must ignore the compiler messages "path prefix never used"
37 and "linker input file unused".  Don't let their appearance cause a testcase
38 to fail.  See lib/dg.exp for the exact regsub to use.
40 If you're unclear about which directory a testcase should be installed in,
41 ask gcc-local.
43 Have the text of a fail message be the same as that for pass.
44 IE: have
46         if ...success...
47                 pass "pr 1234"
48         else
49                 fail "pr 1234"
51 not
53         if ...success...
54                 pass "pr 1234 passed"
55         else
56                 fail "pr 1234 failed"
59 This lets test-tool (which drives the nightly tests) do a better job
60 at tracking which tests have digressed or been fixed.
62 DO NOT PUT NON-PORTABLE TESTCASES IN gcc.c-torture.
64 ANY TARGET SPECIFIC TESTCASE MUST HAVE APPROPRIATE CODE TO PREVENT IT FROM
65 CAUSING A `FAILURE' ON UNSUPPORTED PLATFORMS.
67 The "torture" tests are meant to be generic tests that can run on any
68 target.  So you have to be careful about endianness, assumptions about
69 sizes of datatypes, etc etc.
71 For tests that merely need to compile, put them in the "compile" directory.
73 For tests which should give an error, put them in the "noncompile" directory
74 and update noncompile.exp appropriately (see examples in noncompile.exp).
76 For IEEE FP specific tests, put them in execute/ieee.
78 For execution tests, put them in execute.
80 If a test does not fit into the torture framework, use the dg framework.