mirror of
https://github.com/Mercury-Language/mercury.git
synced 2025-12-10 03:13:46 +00:00
My commitafe2887882broke the ability to run the test suite outside of a bootcheck by executing "mmake runtests" in the tests directory. This diff fixes that. tests/Mmake.common: Don't define "TESTS_DIR = ..". While every single tests/*/Mmakefile defined it as such, I overlooked the fact that tests/Mmakefile itself defined it ".", referring to the same directory from a different starting point. Document this easily-overlooked fact. Rename the old runtests target, which afterafe2887runs the tests in a single directory, as runtests_dir, to leave the target name "runtests" itself free for tests/Mmakefile to use. tests/Mmakefile: Define "TESTS_DIR = .", and add a target "runtests" which invokes "mmake runtests_dir" in each test directory. tools/bootcheck: Invoke "mmake runtests_dir" instead of "mmake runtests" in each test directory. Initialize a variable just before it is used. tests/*/Mmakefile: Add back the definition "TESTS_DIR = .."
This directory contains tests for the `--smart-recompilation' option. The output with `--verbose-recompilation' is checked to make sure that recompilation occurs when expected. Most of the tests consist of two modules, a main module and a module imported from the main module. The `.1' or `.2' after the file name is a version number. The tests are run as follows: Compile the program using the `.1' versions of each module. Check the expected output. Update the imported module to version `.2'. Check the expected output. Check that the `.err' files contain the correct `--verbose-recompilation' messages. Tests with names ending in `_nr' result in no recompilation of the main module after the change to the imported module. Tests with names ending in `_r' should recompile the main module. Tests with names ending in `_re' should recompile the main module, reporting an error in the recompilation.