mirror of
https://github.com/Mercury-Language/mercury.git
synced 2025-12-09 10:52:24 +00:00
Estimated hours taken: 0.1 Branches: main tests/hard_coded/Mmakefile: Add my recently-added test case constant_prop_2 to the list of tests which pass in grade java. (constant_prop_1 doesn't pass in grade java, due to different numbers of trailing zeroes after the decimal point when outputting a float.)
The Mercury test suite is (dis)organized into a directory hierarchy. `mmake' will run the tests in the directory it is invoked in and all subdirectories of that subdirectory. Use `mmake runtests_local' to just run the local tests without the subdirectories. To run just the tests that failed in a previous test run, use `mmake ERROR_FILE=FILE', where FILE is a copy of the runtests.errs file from the previous run. Both the bootcheck script and the nightly script use `mmake' to run all the tests. Unless otherwise stated, the tests in each directory compile the test programs and compare their output against hand-coded `.exp' (or `.exp2', `.exp3', etc) files. benchmarks This directory contains Mercury versions of the benchmarks. debugger This directory is for testing mdb, the Mercury debugger. Programs are compiled with deep tracing turned on. The tests in this directory are not performed if the base grade is `jump' or `fast'. debugger/declarative This directory is for testing the declarative debugging features of mdb. general hard_coded These directories are for general test cases. (It might be a good idea to split this into tests of particular features and regression tests that check for old bugs. But for the moment, just about everything goes in here.) The historical reason for the separate `general' and `hard_coded' directories was that the tests in `general' worked with NU-Prolog and compared the Mercury output with the NU-Prolog output, but the tests in `hard_coded' didn't work with NU-Prolog, so their expected output needed to be hard-coded. We no longer support compilation with NU-Prolog, so everything goes in hard_coded now. recompilation This directory contains tests of the smart recompilation system. As well as checking for the correct output from the test programs these tests also examine the `.err' files to make sure that all necessary recompilations are performed. valid This directory is for test cases that are not complete programs. We just check that the files compile. invalid This directory is for test cases that are invalid programs. We check that the files do *not* compile, and check that the errors match those in the hand-written `.err_exp' file. warnings This directory is for tests of compiler warnings. These work by comparing the warnings emitted by the compiler with those given in the hand-written `.exp' file.