diff options
author | Reid Barton <rwbarton@gmail.com> | 2017-01-20 15:03:44 -0500 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2017-01-20 16:13:59 -0500 |
commit | b47613178232f8e849ac58ebd4111a34ab9c140b (patch) | |
tree | d62362f932b37d7f139d067b29a334b36b9e69cf /testsuite/tests/driver/recomp017 | |
parent | 33140f41b931fb81bf2e5aa28603fe757bb3779d (diff) | |
download | haskell-b47613178232f8e849ac58ebd4111a34ab9c140b.tar.gz |
Add a failing test for #13099
Reviewers: austin, bgamari
Reviewed By: bgamari
Subscribers: thomie
Differential Revision: https://phabricator.haskell.org/D2990
GHC Trac Issues: #13099
Diffstat (limited to 'testsuite/tests/driver/recomp017')
-rw-r--r-- | testsuite/tests/driver/recomp017/A.hs | 3 | ||||
-rw-r--r-- | testsuite/tests/driver/recomp017/B.hs | 7 | ||||
-rw-r--r-- | testsuite/tests/driver/recomp017/C.hs | 5 | ||||
-rw-r--r-- | testsuite/tests/driver/recomp017/C2.hs | 5 | ||||
-rw-r--r-- | testsuite/tests/driver/recomp017/D.hs | 3 | ||||
-rw-r--r-- | testsuite/tests/driver/recomp017/E.hs | 10 | ||||
-rw-r--r-- | testsuite/tests/driver/recomp017/Makefile | 21 | ||||
-rw-r--r-- | testsuite/tests/driver/recomp017/all.T | 11 |
8 files changed, 65 insertions, 0 deletions
diff --git a/testsuite/tests/driver/recomp017/A.hs b/testsuite/tests/driver/recomp017/A.hs new file mode 100644 index 0000000000..8f9d7c18e8 --- /dev/null +++ b/testsuite/tests/driver/recomp017/A.hs @@ -0,0 +1,3 @@ +{-# LANGUAGE TypeFamilies #-} +module A where +type family F a diff --git a/testsuite/tests/driver/recomp017/B.hs b/testsuite/tests/driver/recomp017/B.hs new file mode 100644 index 0000000000..10f842365f --- /dev/null +++ b/testsuite/tests/driver/recomp017/B.hs @@ -0,0 +1,7 @@ +{-# LANGUAGE TypeFamilies #-} +module B where +import A +data B +type instance F (B,b) = () +b :: () -> F (B,b) +b = id diff --git a/testsuite/tests/driver/recomp017/C.hs b/testsuite/tests/driver/recomp017/C.hs new file mode 100644 index 0000000000..a6d1af041e --- /dev/null +++ b/testsuite/tests/driver/recomp017/C.hs @@ -0,0 +1,5 @@ +{-# LANGUAGE TypeFamilies #-} +module C where +import A +data C +type instance F (a,C) = () diff --git a/testsuite/tests/driver/recomp017/C2.hs b/testsuite/tests/driver/recomp017/C2.hs new file mode 100644 index 0000000000..551de2b325 --- /dev/null +++ b/testsuite/tests/driver/recomp017/C2.hs @@ -0,0 +1,5 @@ +{-# LANGUAGE TypeFamilies #-} +module C where +import A +data C +type instance F (a,C) = Bool diff --git a/testsuite/tests/driver/recomp017/D.hs b/testsuite/tests/driver/recomp017/D.hs new file mode 100644 index 0000000000..8ed80ad8a9 --- /dev/null +++ b/testsuite/tests/driver/recomp017/D.hs @@ -0,0 +1,3 @@ +module D (b) where +import B +import C diff --git a/testsuite/tests/driver/recomp017/E.hs b/testsuite/tests/driver/recomp017/E.hs new file mode 100644 index 0000000000..326a03db76 --- /dev/null +++ b/testsuite/tests/driver/recomp017/E.hs @@ -0,0 +1,10 @@ +{-# LANGUAGE TypeApplications #-} +module E where +import A +import B +import C +import D +c :: F (a, C) -> Bool +c = id +e :: () -> Bool +e = c . b @ C diff --git a/testsuite/tests/driver/recomp017/Makefile b/testsuite/tests/driver/recomp017/Makefile new file mode 100644 index 0000000000..6a2f92a875 --- /dev/null +++ b/testsuite/tests/driver/recomp017/Makefile @@ -0,0 +1,21 @@ +TOP=../../.. +include $(TOP)/mk/boilerplate.mk +include $(TOP)/mk/test.mk + +# Recompilation tests + +clean: + rm -f *.o *.hi + +# bug #13099 + +recomp017: clean + echo 'first run' + '$(TEST_HC)' $(TEST_HC_OPTS) --make D.hs + sleep 1 + # A simple 'cp' would overwrite the original file, + # pointed to by the symlink + mv -f C2.hs C.hs + touch C.hs + echo 'second run' + ! '$(TEST_HC)' $(TEST_HC_OPTS) --make E.hs diff --git a/testsuite/tests/driver/recomp017/all.T b/testsuite/tests/driver/recomp017/all.T new file mode 100644 index 0000000000..1ba5343b9c --- /dev/null +++ b/testsuite/tests/driver/recomp017/all.T @@ -0,0 +1,11 @@ +# Test for #13099, a recompilation bug involving type family instances + +test('recomp017', + [ clean_cmd('$MAKE -s clean'), + extra_files(['A.hs', 'B.hs', 'C.hs', 'C2.hs', + 'D.hs', 'E.hs']), + ignore_stdout, + expect_broken(13099) ], + run_command, + ['$MAKE -s --no-print-directory recomp017']) + |