[commit: ghc] wip/merge: Add test case for #8144. (6b6f986)

git at git.haskell.org git at git.haskell.org
Wed Nov 19 04:27:35 UTC 2014


Repository : ssh://git@git.haskell.org/ghc

On branch  : wip/merge
Link       : http://ghc.haskell.org/trac/ghc/changeset/6b6f986975b62e2b7667dc272182136dbe5eb588/ghc

>---------------------------------------------------------------

commit 6b6f986975b62e2b7667dc272182136dbe5eb588
Author: Niklas Hambüchen <mail at nh2.me>
Date:   Tue Nov 18 21:10:45 2014 -0600

    Add test case for #8144.
    
    Based on:
      https://github.com/nh2/ghc-bug-time-dependent-interface-hashes
    
    I verified that this test fails for GHC 7.6.3 and older, and passes
    for GHC 7.8 and newer.
    
    Signed-off-by: Austin Seipp <austin at well-typed.com>


>---------------------------------------------------------------

6b6f986975b62e2b7667dc272182136dbe5eb588
 testsuite/tests/driver/recomp015/Makefile          | 32 ++++++++++++++++++++++
 testsuite/tests/driver/recomp015/Test.hs           |  3 ++
 testsuite/tests/driver/recomp015/all.T             |  7 +++++
 .../tests/driver/recomp015/cabal_macros.h          |  0
 testsuite/tests/driver/recomp015/recomp015.stdout  |  5 ++++
 5 files changed, 47 insertions(+)

diff --git a/testsuite/tests/driver/recomp015/Makefile b/testsuite/tests/driver/recomp015/Makefile
new file mode 100644
index 0000000..430516d
--- /dev/null
+++ b/testsuite/tests/driver/recomp015/Makefile
@@ -0,0 +1,32 @@
+TOP=../../..
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/test.mk
+
+# -fforce-recomp makes lots of driver tests trivially pass, so we
+# filter it out from $(TEST_HC_OPTS).
+TEST_HC_OPTS_NO_RECOMP = $(filter-out -fforce-recomp,$(TEST_HC_OPTS))
+
+# Recompilation tests
+
+clean:
+	rm -f *.o *.hi
+	rm -f Test$(exeext)
+
+# bug #8144
+
+# All compilations except the first should print
+# compilation IS NOT required
+
+recomp015: clean
+	ghc -c Test.hs -optP-include -optPcabal_macros.h
+	touch cabal_macros.h
+	ghc -c Test.hs -optP-include -optPcabal_macros.h
+	touch cabal_macros.h
+	ghc -c Test.hs -optP-include -optPcabal_macros.h
+	touch cabal_macros.h
+	ghc -c Test.hs -optP-include -optPcabal_macros.h
+	touch cabal_macros.h
+	ghc -c Test.hs -optP-include -optPcabal_macros.h
+	touch cabal_macros.h
+	sleep 2
+	ghc -c Test.hs -optP-include -optPcabal_macros.h
diff --git a/testsuite/tests/driver/recomp015/Test.hs b/testsuite/tests/driver/recomp015/Test.hs
new file mode 100644
index 0000000..5c8df53
--- /dev/null
+++ b/testsuite/tests/driver/recomp015/Test.hs
@@ -0,0 +1,3 @@
+{-# LANGUAGE CPP #-}
+
+module Test () where
diff --git a/testsuite/tests/driver/recomp015/all.T b/testsuite/tests/driver/recomp015/all.T
new file mode 100644
index 0000000..0643030
--- /dev/null
+++ b/testsuite/tests/driver/recomp015/all.T
@@ -0,0 +1,7 @@
+# Test for #8144, a recompilation bug
+
+test('recomp015',
+     [ clean_cmd('$MAKE -s clean') ],
+     run_command,
+     ['$MAKE -s --no-print-directory recomp015'])
+
diff --git a/libraries/base/tests/IO/misc001.stdout b/testsuite/tests/driver/recomp015/cabal_macros.h
similarity index 100%
copy from libraries/base/tests/IO/misc001.stdout
copy to testsuite/tests/driver/recomp015/cabal_macros.h
diff --git a/testsuite/tests/driver/recomp015/recomp015.stdout b/testsuite/tests/driver/recomp015/recomp015.stdout
new file mode 100644
index 0000000..178cb00
--- /dev/null
+++ b/testsuite/tests/driver/recomp015/recomp015.stdout
@@ -0,0 +1,5 @@
+compilation IS NOT required
+compilation IS NOT required
+compilation IS NOT required
+compilation IS NOT required
+compilation IS NOT required



More information about the ghc-commits mailing list