[project @ 1997-09-03 23:37:24 by sof]
authorsof <unknown>
Wed, 3 Sep 1997 23:37:24 +0000 (23:37 +0000)
committersof <unknown>
Wed, 3 Sep 1997 23:37:24 +0000 (23:37 +0000)
Toplevel regression test README

ghc/tests/README [new file with mode: 0644]

diff --git a/ghc/tests/README b/ghc/tests/README
new file mode 100644 (file)
index 0000000..67f1a34
--- /dev/null
@@ -0,0 +1,54 @@
+-------------------------------------------------------------------------------
+                       GHC COMPILER TESTS
+-------------------------------------------------------------------------------
+
+This directory contains the regression tests for the compiler and the
+prelude libraries.  Regression tests meaning "correctness", NoFib
+deals with "performance". Note that regression tests for other parts
+of the ghc system (such as the driver, runtime system, system libs)
+belong elsewhere.
+
+Each test takes the form of a single program (for example, reader001.hs)
+and files which specify ghc's expected error output (reader001.stderr).
+
+"make reader001.runtest" will compile reader001.hs using ghc and compare
+the resulting output with that specified in the file reader001.stderr.
+
+"make all" run all tests.
+
+-------------------------------------------------------------------------------
+                       ADDING A NEW TEST
+-------------------------------------------------------------------------------
+
+To add a new test copy your Haskell program into an appropriately named
+file in the appropriate directory (for example, "typecheck/tc093.hs" for
+the 93rd typechecker test).
+
+If the test needs to set the compiler options to something other than
+the default for the directory, either modify the SRC_HC_OPTS (applies
+to all tests in that directory), or set some extra per-file compiler
+options. For example,
+
+  tc093_HC_OPTS = -noC -ddump-tc 
+
+-noC tells not bother generating any C (not point in doing that, since we
+only want to test the typechecker).  -ddump-tc tells ghc to dump the
+typechecker state. 
+
+Depending on the tests/ subdirectory, a default exit code is
+expected from all tests therein, normally 0 (==success).
+Per-file options to the runtests script can be set as follows
+
+  tc093_RUNTEST_OPTS = -x 1
+
+telling the test script that the compiler is expected to fail
+on tc093.
+
+"touch" the file tc093.stderr.  "make tc093.o" will then run
+the compiler and fail (because the expected output doesn't match the empty
+tc093.stderr).  However, it is then easy to update tc093.stderr with the
+stuff printed out during "make tc093.o". An alternative is to run
+`make' with EXTRA_RUNTEST_OPTS=-accept-output on the new test, and the
+runtest script will add the stderr&stdout dump files for you *in the
+build tree*.
+