4 # --no-clean: don't make clean first, just carry on from
5 # a previous interrupted validation run
6 # --testsuite-only: don't build the compiler, just run
8 # --hpc: build stage2 with -fhpc, and see how much of the
9 # compiler the test suite covers.
10 # 2008-07-01: 63% slower than the default.
11 # HTML generated here: testsuite/hpc_output/hpc_index.html
12 # --fast: Default. Opposite to --slow.
13 # --slow: Build stage2 with -DDEBUG.
14 # 2008-07-01: 14% slower than the default.
42 echo "Bad argument: $1" >&2
48 if [ "$THREADS" = "" ]; then
49 if [ "$CPUS" = "" ]; then
52 threads=$(($CPUS + 1)) # `expr $CPUS + 1`
58 if [ $testsuite_only -eq 0 ]; then
60 if [ $no_clean -eq 0 ]; then
61 make maintainer-clean NO_CLEAN_GMP=YES
64 if [ "$OSTYPE" = "cygwin" ]
66 INSTDIR=`cygpath -m "$INSTDIR"`
70 ./configure --prefix="$INSTDIR" $config_args
73 thisdir=`utils/ghc-pwd/ghc-pwd`
75 echo "Validating=YES" > mk/are-validating.mk
77 make -j$threads ValidateHpc=$hpc ValidateSlow=$slow
80 make -C bindisttest TEST_PREP=YES
86 # XXX With threads we'd need to give a different tix file to each thread
87 # and then sum them up at the end
89 HPCTIXFILE=$thisdir/testsuite/hpc_output/ghc.tix
94 make -C testsuite/tests/ghc-regress fast stage=2 CLEANUP=1 BINDIST=YES THREADS=$threads 2>&1 | tee testlog
98 utils/hpc/hpc markup --hpcdir=. --srcdir=compiler --srcdir=testsuite/hpc_output --destdir=testsuite/hpc_output testsuite/hpc_output/ghc.tix
101 echo "-------------------------------------------------------------------"
103 grep '\<0 caused framework failures' testlog >/dev/null 2>/dev/null &&
104 grep '\<0 unexpected passes' testlog >/dev/null 2>/dev/null &&
105 grep '\<0 unexpected failures' testlog >/dev/null 2>/dev/null ; then
106 if [ $testsuite_only -eq 0 ] && [ $no_clean -eq 0 ]
109 Congratulations! This tree has passed minimal testing.
111 NOTE: If you have made changes that may cause failures not tested for by
112 the minimal testing procedure, please do further testing as necessary.
114 When you are satisfied that you haven't broken anything, go ahead and
115 push/send your patches.
117 if grep -q "^[^#]" mk/validate.mk
121 WARNING: You seem to have things set in mk/validate.mk. Please check
122 that it is OK before pushing.
126 -------------------------------------------------------------------
130 I didn't find any problems, but this wasn't a complete validate run,
133 NOTE: If you have made changes that may cause failures not tested for by
134 the minimal testing procedure, please do further testing as necessary.
135 -------------------------------------------------------------------
140 Oops! Looks like you have some unexpected test results or framework failures.
141 Please fix them before pushing/sending patches.
142 -------------------------------------------------------------------