diff options
author | Simon Marlow <marlowsd@gmail.com> | 2011-11-16 13:00:55 +0000 |
---|---|---|
committer | Simon Marlow <marlowsd@gmail.com> | 2011-11-16 14:39:25 +0000 |
commit | 1bbb89f3ab009367fcca84b73b351ddcf5be16a4 (patch) | |
tree | 8daf094aacfa4ca53d86218dcb1fe23c75f79163 /validate | |
parent | e7b42bd4925ce91999f070d74e137a6a0ff6e3e4 (diff) | |
download | haskell-1bbb89f3ab009367fcca84b73b351ddcf5be16a4.tar.gz |
Make the --fast option to validate faster, and add --normal
The --fast option now disables the following:
- dynamic libs
- bindist and bindisttest
Which knocks several minutes off validate for me, but it's still over
30 minutes using 5 cores on 64-bit Linux.
Usual caveats apply: if you're using --fast, then make sure you aren't
doing anything that might destabilise dynamic libs or binary dists.
Diffstat (limited to 'validate')
-rwxr-xr-x | validate | 85 |
1 files changed, 53 insertions, 32 deletions
@@ -9,7 +9,8 @@ # compiler the test suite covers. # 2008-07-01: 63% slower than the default. # HTML generated here: testsuite/hpc_output/hpc_index.html -# --fast: Default. Opposite to --slow. +# --normal: Default settings +# --fast: Omit dyn way, omit binary distribution # --slow: Build stage2 with -DDEBUG. # 2008-07-01: 14% slower than the default. @@ -18,7 +19,7 @@ set -e no_clean=0 testsuite_only=0 hpc=NO -slow=NO +speed=NORMAL while [ $# -gt 0 ] do @@ -33,10 +34,13 @@ do hpc=YES ;; --slow) - slow=YES + speed=SLOW ;; --fast) - slow=NO + speed=FAST + ;; + --normal) + speed=NORMAL ;; *) echo "Bad argument: $1" >&2 @@ -88,32 +92,41 @@ thisdir=`utils/ghc-pwd/dist-boot/ghc-pwd` echo "Validating=YES" > mk/are-validating.mk -$make -j$threads ValidateHpc=$hpc ValidateSlow=$slow +$make -j$threads ValidateHpc=$hpc ValidateSpeed=$speed # For a "debug make", add "--debug=b --debug=m" -$make binary-dist-prep -$make test_bindist TEST_PREP=YES - -# -# Install the mtl package into the bindist, because it is used by some -# tests. It isn't essential that we do this (the failing tests will -# be treated as expected failures), but we get a bit more test -# coverage, and also verify that we can install a package into the -# bindist with Cabal. -# -bindistdir="bindisttest/install dir" -cd libraries/mtl -"$thisdir/$bindistdir/bin/ghc" --make Setup -./Setup configure --with-ghc="$thisdir/$bindistdir/bin/ghc" --with-haddock="$thisdir/$bindistdir/bin/haddock" --global --builddir=dist-bindist --prefix="$thisdir/$bindistdir" -./Setup build --builddir=dist-bindist -./Setup haddock --builddir=dist-bindist -./Setup install --builddir=dist-bindist -./Setup clean --builddir=dist-bindist -rm -f Setup Setup.exe Setup.hi Setup.o -cd $thisdir +# ----------------------------------------------------------------------------- +# Build and test a binary distribution (not --fast) + +if [ $speed != "FAST" ]; then + + $make binary-dist-prep + $make test_bindist TEST_PREP=YES + + # + # Install the mtl package into the bindist, because it is used by some + # tests. It isn't essential that we do this (the failing tests will + # be treated as expected failures), but we get a bit more test + # coverage, and also verify that we can install a package into the + # bindist with Cabal. + # + bindistdir="bindisttest/install dir" + cd libraries/mtl + "$thisdir/$bindistdir/bin/ghc" --make Setup + ./Setup configure --with-ghc="$thisdir/$bindistdir/bin/ghc" --with-haddock="$thisdir/$bindistdir/bin/haddock" --global --builddir=dist-bindist --prefix="$thisdir/$bindistdir" + ./Setup build --builddir=dist-bindist + ./Setup haddock --builddir=dist-bindist + ./Setup install --builddir=dist-bindist + ./Setup clean --builddir=dist-bindist + rm -f Setup Setup.exe Setup.hi Setup.o + cd $thisdir +fi fi # testsuite-only +# ----------------------------------------------------------------------------- +# Run the testsuite + if [ "$hpc" = YES ] then # XXX With threads we'd need to give a different tix file to each thread @@ -124,14 +137,22 @@ then rm -f $HPCTIXFILE fi -if [ "$slow" = YES ] -then -MAKE_TEST_TARGET=fulltest -else -MAKE_TEST_TARGET=test -fi +case "$speed" in +SLOW) + MAKE_TEST_TARGET=fulltest + BINDIST="BINDIST=YES" + ;; +NORMAL) + MAKE_TEST_TARGET=test + BINDIST="BINDIST=YES" + ;; +FAST) + MAKE_TEST_TARGET=test + BINDIST="BINDIST=NO" + ;; +esac -$make $MAKE_TEST_TARGET stage=2 BINDIST=YES THREADS=$threads 2>&1 | tee testlog +$make $MAKE_TEST_TARGET stage=2 $BINDIST THREADS=$threads 2>&1 | tee testlog if [ "$hpc" = YES ] then |