Estimated hours taken: 9
Provide a more uniform interface to the test directories. Before this
change, the tests directory as well as direct descendents had `runtests'
scripts to execute the tests. These would run `mmake', which in turn
would recursively run `mmake' in any subdirectories. The subdirectories
did not have their own `runtests' scripts.
This change adds a `runtests' script to those subdirectories that did
not have them before. The scripts have the same meaning as they did
previously---run all tests in the current directory and below, and
return a status of 0 only if all tests pass.
The rationale for this change is so that each directory in the tests
is treated the same, regardless of whether it is a top-level
directory or not. This means, for example, that any test directory can
be used as an argument to the `--test-dir' option to tools/bootcheck.
This change also links tests/general/accumulator into the automated
testing suite.
tests/README:
Update comments.
tests/Mmake.common:
Introduce new target dependencies. Targets of the form
`foo' depend on the targets `foo_local' and `foo_subdirs'.
tests/subdir_runtests:
New script to recursively call runtests scripts in subdirectories.
Most of the code for this script originally came from
tests/runtests.
tests/shutdown:
tests/startup:
Use `realclean_local' as a target instead of `realclean', since
the subdirectories will be handled by other runtests scripts.
tests/runtests:
tests/debugger/runtests:
tests/general/runtests:
tests/hard_coded/runtests:
Use the new script to run tests in the subdirectories, rather
than doing a recursive mmake. Make sure that non-zero return
values are propagated upwards where appropriate.
tests/debugger/declarative/runtests:
tests/hard_coded/typeclasses/runtests:
tests/hard_coded/sub-modules/runtests:
New scripts to handle running tests in the subdirectories.
tests/debugger/Mmakefile:
tests/general/Mmakefile:
tests/hard_coded/Mmakefile:
Add `*_subdirs' targets that do a recursive Mmake. Change the
existing targets to `*_local' ones.
tests/warnings/Mmakefile:
Manually add the extra dependencies, since this Mmakefile does
not include tests/Mmake.common.
Estimated hours taken: 2
runtests:
A shell script to run the tests in all the subdirectories.
handle_options:
A shell script fragment to handle the options for the runtests
scripts in this directory and the subdirectories.
generate_exp:
A shell script to generate the .exp files by running NU-Prolog
in the directories where they aren't generated by hand. This is
now a separate activity from running the tests themselves.
Mmake:
Only include the rule for making .exp files if mmake is executed on
a machine whose name is listed in the file NUPROLOG. Don't remove
.exp files for "mmake clean".
NUPROLOG:
The control file for the Makefile change.
README:
Document these changes.