+-------------------------------------------------------------------------------
+ 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*.
+