Fix Trac #2307: need to nub bad fundep reports
[ghc-hetmet.git] / validate
index 20436d3..866ab09 100644 (file)
--- a/validate
+++ b/validate
@@ -5,11 +5,14 @@
 #                     a previous interrupted validation run
 #   --testsuite-only: don't build the compiler, just run
 #                     the test suite
+#   --hpc:            build stage2 with -fhpc, and see how much of the
+#                     compiler the test suite covers
 
 set -e
 
 no_clean=0
 testsuite_only=0
+hpc=0
 
 while [ $# -gt 0 ]
 do
@@ -20,6 +23,9 @@ do
     --testsuite-only)
         testsuite_only=1
         ;;
+    --hpc)
+        hpc=1
+        ;;
     *)
         echo "Bad argument: $1" >&2
         exit 1;;
@@ -49,13 +55,34 @@ else
 fi
 
 sh boot
-./configure $config_args
+./configure "--prefix=`pwd`/inst" $config_args
+
+thisdir=`utils/pwd/pwd forwardslash`
+
+if [ "$hpc" = 1 ]
+then
+    hpcflags="ValidateHpcFlags=-fhpc -hpcdir $thisdir/testsuite/hpc_output/"
+fi
 
-make Validating=YES -j$threads
+make Validating=YES -j$threads ${hpcflags+"$hpcflags"}
 fi # testsuite-only
 
-# ToDo: use THREADS=$threads, see #1558
-make Validating=YES -C testsuite/tests/ghc-regress fast stage=2 CLEANUP=1 2>&1 | tee testlog
+if [ "$hpc" = 1 ]
+then
+    # XXX With threads we'd need to give a different tix file to each thread
+    #     and then sum them up at the end
+    threads=1
+    HPCTIXFILE=$thisdir/testsuite/hpc_output/ghc.tix
+    export HPCTIXFILE
+    rm -f $HPCTIXFILE
+fi
+
+make Validating=YES -C testsuite/tests/ghc-regress fast stage=2 CLEANUP=1 THREADS=$threads 2>&1 | tee testlog
+
+if [ "$hpc" = 1 ]
+then
+    utils/hpc/hpc markup --hpcdir=. --srcdir=compiler --srcdir=testsuite/hpc_output --destdir=testsuite/hpc_output testsuite/hpc_output/ghc.tix
+fi
 
 echo "-------------------------------------------------------------------"
 if