mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-23 13:23:47 +00:00
Estimated hours taken: 0.5
Avoid about half of the slow "mmake realclean"s required by a bootcheck.
tests/*/runtests:
Concentrate all the actions performed before the test and after
a successful tests (both of which involve an "mmake realclean")
into two scripts, tests/{startup,shutdown}.
tests/shutdown:
Clean up the directory, and touch the file CLEAN.
tests/startup:
If the file CLEAN exists and is the most recent file in the directory,
consider the directory clean to beging with. Otherwise, run mmake
realclean.
28 lines
733 B
Bash
Executable File
28 lines
733 B
Bash
Executable File
#!/bin/sh
|
|
# Test whether the code generated by the Mercury compiler
|
|
# is producing the expected output.
|
|
# Return a status of 0 (true) if everything is all right, and 1 otherwise.
|
|
|
|
. ../handle_options
|
|
. ../startup
|
|
|
|
mmake $jfactor depend || exit 1
|
|
eval mmake -k $jfactor $gradeopt $flagsopt $cflagsopt check
|
|
checkstatus=$?
|
|
|
|
cat *.res > .allres
|
|
if test ! -s .allres -a "$checkstatus" = 0
|
|
then
|
|
echo "the tests in the hard_coded directory succeeded"
|
|
echo "gradeopt=$gradeopt, flagsopt=$flagsopt, cflagsopt=$cflagsopt"
|
|
rm -f .allres
|
|
. ../shutdown
|
|
exit 0
|
|
else
|
|
echo "the tests in the hard_coded directory failed"
|
|
echo "gradeopt=$gradeopt, flagsopt=$flagsopt, cflagsopt=$cflagsopt"
|
|
echo "the differences are:"
|
|
cat .allres
|
|
exit 1
|
|
fi
|