mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-22 21:03:53 +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 = .."
60 lines
1.4 KiB
Makefile
60 lines
1.4 KiB
Makefile
#-----------------------------------------------------------------------------#
|
|
# vim: ts=8 sw=8 noexpandtab ft=make
|
|
#-----------------------------------------------------------------------------#
|
|
|
|
TESTS_DIR = ..
|
|
THIS_DIR = benchmarks
|
|
MAYBE_J1 =
|
|
|
|
# To test the performance of the benchmarks (with I/O suppressed),
|
|
# uncomment one the following two lines. The `.hlc' version should be
|
|
# used for --high-level-code grades, the other version for LLDS grades.
|
|
#
|
|
# MLFLAGS += -w "`extract $(*:_init=) '' BenchEntry.hlc`"
|
|
# MLFLAGS += -w "`extract $(*:_init=) '' BenchEntry`"
|
|
|
|
#-----------------------------------------------------------------------------#
|
|
|
|
PROGS = \
|
|
cqueens \
|
|
crypt \
|
|
deriv \
|
|
deriv2 \
|
|
nrev \
|
|
poly \
|
|
primes \
|
|
qsort \
|
|
queens \
|
|
query \
|
|
tak
|
|
|
|
TESTS = $(PROGS)
|
|
include ../Mmake.common
|
|
|
|
# Module-specific options should go in Mercury.options so they can be found
|
|
# by `mmc --make'.
|
|
include Mercury.options
|
|
|
|
#-----------------------------------------------------------------------------#
|
|
|
|
%.runtest: %.res ;
|
|
|
|
CS = $(PROGS:%=%.c)
|
|
TIMES = $(PROGS:%=%.time)
|
|
|
|
cs: $(CS)
|
|
|
|
times: $(TIMES)
|
|
|
|
dir.%: $(PROGS)
|
|
-mkdir $@
|
|
cp $(PROGS) $@
|
|
cp BenchEntry $@
|
|
|
|
%.time: %
|
|
{ count=`awk '/$*/ { print $$2; exit; }' < BenchRepeatCounts`; \
|
|
echo "$$count "; \
|
|
MERCURY_OPTIONS="-t -r$$count" ./repeat_time 3 ./$*; } 2>&1 | tee $@
|
|
|
|
#-----------------------------------------------------------------------------#
|