diff options
Diffstat (limited to 'testsuite/tests/driver/recomp-boot')
-rw-r--r-- | testsuite/tests/driver/recomp-boot/A.hs | 3 | ||||
-rw-r--r-- | testsuite/tests/driver/recomp-boot/B1.hs | 3 | ||||
-rw-r--r-- | testsuite/tests/driver/recomp-boot/B2.hs | 3 | ||||
-rw-r--r-- | testsuite/tests/driver/recomp-boot/C.hs | 1 | ||||
-rw-r--r-- | testsuite/tests/driver/recomp-boot/C.hs-boot | 1 | ||||
-rw-r--r-- | testsuite/tests/driver/recomp-boot/Makefile | 20 | ||||
-rw-r--r-- | testsuite/tests/driver/recomp-boot/all.T | 3 | ||||
-rw-r--r-- | testsuite/tests/driver/recomp-boot/recomp-boot.stdout | 6 |
8 files changed, 40 insertions, 0 deletions
diff --git a/testsuite/tests/driver/recomp-boot/A.hs b/testsuite/tests/driver/recomp-boot/A.hs new file mode 100644 index 0000000000..41644a1c54 --- /dev/null +++ b/testsuite/tests/driver/recomp-boot/A.hs @@ -0,0 +1,3 @@ +module A where + +import B diff --git a/testsuite/tests/driver/recomp-boot/B1.hs b/testsuite/tests/driver/recomp-boot/B1.hs new file mode 100644 index 0000000000..ca48559b6d --- /dev/null +++ b/testsuite/tests/driver/recomp-boot/B1.hs @@ -0,0 +1,3 @@ +module B where + +import C diff --git a/testsuite/tests/driver/recomp-boot/B2.hs b/testsuite/tests/driver/recomp-boot/B2.hs new file mode 100644 index 0000000000..29b41f12fe --- /dev/null +++ b/testsuite/tests/driver/recomp-boot/B2.hs @@ -0,0 +1,3 @@ +module B where + +import {-# SOURCE #-} C diff --git a/testsuite/tests/driver/recomp-boot/C.hs b/testsuite/tests/driver/recomp-boot/C.hs new file mode 100644 index 0000000000..5831959653 --- /dev/null +++ b/testsuite/tests/driver/recomp-boot/C.hs @@ -0,0 +1 @@ +module C where diff --git a/testsuite/tests/driver/recomp-boot/C.hs-boot b/testsuite/tests/driver/recomp-boot/C.hs-boot new file mode 100644 index 0000000000..5831959653 --- /dev/null +++ b/testsuite/tests/driver/recomp-boot/C.hs-boot @@ -0,0 +1 @@ +module C where diff --git a/testsuite/tests/driver/recomp-boot/Makefile b/testsuite/tests/driver/recomp-boot/Makefile new file mode 100644 index 0000000000..e888238170 --- /dev/null +++ b/testsuite/tests/driver/recomp-boot/Makefile @@ -0,0 +1,20 @@ +TOP=../../.. +include $(TOP)/mk/boilerplate.mk +include $(TOP)/mk/test.mk + +# Recompilation tests + +clean: + rm -f *.o *.hi + rm -f B.hs + +# Recompile + +recomp-boot: clean + cp B1.hs B.hs + '$(TEST_HC)' $(TEST_HC_OPTS) --make A.hs + sleep 1 + cp B2.hs B.hs + # Operating systems with poor timer resolution (e.g. Darwin) need a bit + # of time here, lest GHC not realize that the file changed. + '$(TEST_HC)' $(TEST_HC_OPTS) --make A.hs diff --git a/testsuite/tests/driver/recomp-boot/all.T b/testsuite/tests/driver/recomp-boot/all.T new file mode 100644 index 0000000000..ca3ab09047 --- /dev/null +++ b/testsuite/tests/driver/recomp-boot/all.T @@ -0,0 +1,3 @@ +test('recomp-boot', [extra_files(['A.hs', 'B1.hs', 'B2.hs', 'C.hs', 'C.hs-boot']), + when(fast(), skip)], + makefile_test, []) diff --git a/testsuite/tests/driver/recomp-boot/recomp-boot.stdout b/testsuite/tests/driver/recomp-boot/recomp-boot.stdout new file mode 100644 index 0000000000..77f5a1794a --- /dev/null +++ b/testsuite/tests/driver/recomp-boot/recomp-boot.stdout @@ -0,0 +1,6 @@ +[1 of 3] Compiling C ( C.hs, C.o ) +[2 of 3] Compiling B ( B.hs, B.o ) +[3 of 3] Compiling A ( A.hs, A.o ) +[1 of 4] Compiling C[boot] ( C.hs-boot, C.o-boot ) +[3 of 4] Compiling B ( B.hs, B.o ) +[4 of 4] Compiling A ( A.hs, A.o ) [B changed] |