Files
mercury/tests/recompilation/README
Zoltan Somogyi 52208fc8bf Use the new type maybe_top_module.
compiler/module_imports.m:
    The module_and_imports structure used to have a field, mf_nested_children,
    which stored a set of module names, but which had confusing semantics:
    it had two different meanings in two different circumstances.
    Replace that field with a value of a new type, maybe_top_module, which
    has two separate function symbols for those two circumstances:
    when a module is the top module in its source file, and when it is not.

compiler/mercury_compile_main.m:
    Conform to the change above.

    Put related arguments next to each other.

compiler/grab_modules.m:
compiler/make.dependencies.m:
compiler/make.module_dep_file.m:
compiler/make.module_target.m:
compiler/recompilation.check.m:
compiler/write_deps_file.m:
    Conform to the change above.

tests/recompilation/test_functions:
    Impose a limit of 10 minutes of CPU time on each process. This should
    help catch infinite loops, such as happened during the development
    of this diff.

    Fix indentation, and clarify some comments.

tests/recompilation/README:
    Fix stray blank line.
2021-07-19 20:48:12 +10:00

24 lines
913 B
Plaintext

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.