validate 1.93 KB
Newer Older
1
2
3
#!/bin/sh

set -e
4
5
6
7
8
9
10
11

if [ -f mk/config.mk ]; then
   make distclean
fi

if [ -f mk/build.mk ]; then
   mv mk/build.mk mk/build.mk.bak
fi
12
13

# The default is a "quick" build
14
15
16
echo BuildFlavour=quick >mk/build.mk
cat mk/build.mk.sample >>mk/build.mk

17
18
19
20
# You can override the default validate settings using mk/validate.mk
# e.g. you could add GhcLibWays=p to test profiling.
echo '-include $(TOP)/mk/validate.mk' >>mk/build.mk

Simon Marlow's avatar
Simon Marlow committed
21
22
23
24
25
26
27
28
29
case $OSTYPE in
  cygwin|msys) config_args=--build=i386-unknown-mingw32
               if [ -f c:/mingw/bin/gcc.exe ]; then
                   config_args="$config_args --with-gcc=c:/mingw/bin/gcc"
               fi
               ;;
esac

if [ "$CPUS" = "" ]; then
30
    threads=2
Simon Marlow's avatar
Simon Marlow committed
31
else
32
    threads=`expr $CPUS + 1`
Simon Marlow's avatar
Simon Marlow committed
33
34
fi

35
sh boot
Simon Marlow's avatar
Simon Marlow committed
36
./configure $config_args
37

Simon Marlow's avatar
Simon Marlow committed
38
make -j$threads
39

Simon Marlow's avatar
Simon Marlow committed
40
# ToDo: use THREADS=$threads, see #1558
41
make -C testsuite/tests/ghc-regress fast stage=2 CLEANUP=1 2>&1 | tee testlog
42

43
44
45
46
if
    grep '\<0 caused framework failures' testlog >/dev/null 2>/dev/null &&
    grep '\<0 unexpected passes' testlog >/dev/null 2>/dev/null &&
    grep '\<0 unexpected failures' testlog >/dev/null 2>/dev/null ; then
47
48
49
50
51
52
53
54
55
56
57
58
   echo "-------------------------------------------------------------------"
   echo "Congratulations!  This tree is has passed minimal testing."
   echo
   echo "NOTE: If you have made changes that may cause failures not tested"
   echo "for by the minimal testing procedure, please do further testing"
   echo "as necessary."
   echo
   echo "When you are satisfied that you haven't broken anything, go ahead"
   echo "and push/send your patches".
   echo "-------------------------------------------------------------------"
else
   echo "-------------------------------------------------------------------"
59
60
   echo "Oops!  Looks like you have some unexpected test results or"
   echo "framework failures."
61
62
63
   echo "Please fix them before pushing/sending patches."
   echo "-------------------------------------------------------------------"
fi