diff options
Diffstat (limited to 'testsuite/tests/th/TH_recompile')
-rw-r--r-- | testsuite/tests/th/TH_recompile/Main.hs | 7 | ||||
-rw-r--r-- | testsuite/tests/th/TH_recompile/Makefile | 22 | ||||
-rw-r--r-- | testsuite/tests/th/TH_recompile/Sub1.hs | 5 | ||||
-rw-r--r-- | testsuite/tests/th/TH_recompile/Sub2.hs | 5 | ||||
-rw-r--r-- | testsuite/tests/th/TH_recompile/TH_recompile.stdout | 2 | ||||
-rw-r--r-- | testsuite/tests/th/TH_recompile/all.T | 16 |
6 files changed, 57 insertions, 0 deletions
diff --git a/testsuite/tests/th/TH_recompile/Main.hs b/testsuite/tests/th/TH_recompile/Main.hs new file mode 100644 index 0000000000..c4ce4a680f --- /dev/null +++ b/testsuite/tests/th/TH_recompile/Main.hs @@ -0,0 +1,7 @@ + +module Main where + +import Sub + +main = print $x + diff --git a/testsuite/tests/th/TH_recompile/Makefile b/testsuite/tests/th/TH_recompile/Makefile new file mode 100644 index 0000000000..87fab6348a --- /dev/null +++ b/testsuite/tests/th/TH_recompile/Makefile @@ -0,0 +1,22 @@ +TOP=../../.. +include $(TOP)/mk/boilerplate.mk +include $(TOP)/mk/test.mk + +# Test for trac #481. GHC should notice that the code that generates +# the splice has changed, and thus re-run it. + +clean: + rm -f *.o + rm -f hi + rm -f test test2 + rm -f Sub.hs + +TH_recompile: + $(MAKE) clean + cp Sub1.hs Sub.hs + '$(TEST_HC)' $(TEST_HC_OPTS) -v0 --make -XTemplateHaskell Main.hs -o test + cp Sub2.hs Sub.hs + '$(TEST_HC)' $(TEST_HC_OPTS) -v0 --make -XTemplateHaskell Main.hs -o test2 + ./test + ./test2 + diff --git a/testsuite/tests/th/TH_recompile/Sub1.hs b/testsuite/tests/th/TH_recompile/Sub1.hs new file mode 100644 index 0000000000..f52a654e44 --- /dev/null +++ b/testsuite/tests/th/TH_recompile/Sub1.hs @@ -0,0 +1,5 @@ + +module Sub where + +x = [| 1 |] + diff --git a/testsuite/tests/th/TH_recompile/Sub2.hs b/testsuite/tests/th/TH_recompile/Sub2.hs new file mode 100644 index 0000000000..3698ec5064 --- /dev/null +++ b/testsuite/tests/th/TH_recompile/Sub2.hs @@ -0,0 +1,5 @@ + +module Sub where + +x = [| 2 |] + diff --git a/testsuite/tests/th/TH_recompile/TH_recompile.stdout b/testsuite/tests/th/TH_recompile/TH_recompile.stdout new file mode 100644 index 0000000000..1191247b6d --- /dev/null +++ b/testsuite/tests/th/TH_recompile/TH_recompile.stdout @@ -0,0 +1,2 @@ +1 +2 diff --git a/testsuite/tests/th/TH_recompile/all.T b/testsuite/tests/th/TH_recompile/all.T new file mode 100644 index 0000000000..ecdba11c05 --- /dev/null +++ b/testsuite/tests/th/TH_recompile/all.T @@ -0,0 +1,16 @@ +def f(opts): + opts.extra_hc_opts = '-XTemplateHaskell -package template-haskell' + if (ghc_with_interpreter == 0): + opts.skip = 1 + +setTestOpts(f) +setTestOpts(only_compiler_types(['ghc'])) +setTestOpts(only_ways(['normal'])); +setTestOpts(if_compiler_profiled(skip)) + +test('TH_recompile', + [expect_broken(481), + clean_cmd('$MAKE -s clean')], + run_command, + ['$MAKE -s TH_recompile']) + |