diff options
Diffstat (limited to 'testsuite/tests/driver/multipleHomeUnits/mhu-closure')
21 files changed, 134 insertions, 0 deletions
diff --git a/testsuite/tests/driver/multipleHomeUnits/mhu-closure/Makefile b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/Makefile new file mode 100644 index 0000000000..ff67f37808 --- /dev/null +++ b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/Makefile @@ -0,0 +1,41 @@ +TOP=../../.. +include $(TOP)/mk/boilerplate.mk +include $(TOP)/mk/test.mk + +SETUP=../Setup -v0 + +mhu-closure: clean + $(MAKE) -s --no-print-directory clean + '$(GHC_PKG)' init tmp.d + '$(TEST_HC)' $(TEST_HC_OPTS) -v0 --make Setup + cd p && $(SETUP) clean + cd p && $(SETUP) configure $(CABAL_MINIMAL_BUILD) --ipid=p-0.1.0.0 --with-ghc='$(TEST_HC)' --ghc-options='$(TEST_HC_OPTS)' --package-db=../tmp.d + cd p && $(SETUP) build + cd p && $(SETUP) register --inplace + cd q && $(SETUP) configure $(CABAL_MINIMAL_BUILD) --ipid=q-0.1.0.0 --with-ghc='$(TEST_HC)' --ghc-options='$(TEST_HC_OPTS)' --package-db=../tmp.d + cd q && $(SETUP) build + cd q && $(SETUP) register --inplace + cd r && $(SETUP) configure $(CABAL_MINIMAL_BUILD) --ipid=r-0.1.0.0 --with-ghc='$(TEST_HC)' --ghc-options='$(TEST_HC_OPTS)' --package-db=../tmp.d + cd r && $(SETUP) build + cd r && $(SETUP) register --inplace + # This should work + '$(TEST_HC)' $(TEST_HC_OPTS) -fhide-source-paths -fforce-recomp -unit @unitP + # So should this + '$(TEST_HC)' $(TEST_HC_OPTS) -fhide-source-paths -fforce-recomp -unit @unitP -unit @unitQ + # So should this + '$(TEST_HC)' $(TEST_HC_OPTS) -fhide-source-paths -fforce-recomp -unit @unitP -unit @unitQ -unit @unitR + # This should error with a closure message + ! '$(TEST_HC)' $(TEST_HC_OPTS) -fhide-source-paths -fforce-recomp -unit @unitP -unit @unitR + # This should work, even though r1 is not in the package db + '$(TEST_HC)' $(TEST_HC_OPTS) -fhide-source-paths -fforce-recomp -unit @unitP -unit @unitQ -unit @unitR1 + # This should fail, even though r1 is not in the package db + ! '$(TEST_HC)' $(TEST_HC_OPTS) -fhide-source-paths -fforce-recomp -unit @unitP -unit @unitR1 + + +ifeq "$(CLEANUP)" "1" + $(MAKE) -s --no-print-directory clean +endif + +clean : + $(RM) -r tmp*.d inst-* *.o *.hi */*.o */*.hi */Setup$(exeext) */dist Setup$(exeext) + diff --git a/testsuite/tests/driver/multipleHomeUnits/mhu-closure/Setup.hs b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/Setup.hs new file mode 100644 index 0000000000..9a994af677 --- /dev/null +++ b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/Setup.hs @@ -0,0 +1,2 @@ +import Distribution.Simple +main = defaultMain diff --git a/testsuite/tests/driver/multipleHomeUnits/mhu-closure/all.T b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/all.T new file mode 100644 index 0000000000..16fb06efa9 --- /dev/null +++ b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/all.T @@ -0,0 +1,9 @@ +if config.cleanup: + cleanup = 'CLEANUP=1' +else: + cleanup = 'CLEANUP=0' + +test('mhu-closure', + extra_files(['p/', 'q/', 'r/', 'r1/', 'unitP', 'unitQ', 'unitR', 'unitR1', 'Setup.hs']), + run_command, + ['$MAKE -s --no-print-directory mhu-closure ' + cleanup]) diff --git a/testsuite/tests/driver/multipleHomeUnits/mhu-closure/mhu-closure.stderr b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/mhu-closure.stderr new file mode 100644 index 0000000000..115d141070 --- /dev/null +++ b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/mhu-closure.stderr @@ -0,0 +1,10 @@ + +<command line>: error: + Home units are not closed. + It is necessary to also load the following units: + - q-0.1.0.0 + +<command line>: error: + Home units are not closed. + It is necessary to also load the following units: + - q-0.1.0.0 diff --git a/testsuite/tests/driver/multipleHomeUnits/mhu-closure/mhu-closure.stdout b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/mhu-closure.stdout new file mode 100644 index 0000000000..0afbe831dc --- /dev/null +++ b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/mhu-closure.stdout @@ -0,0 +1,9 @@ +[1 of 1] Compiling P +[1 of 2] Compiling P[p-0.1.0.0] +[2 of 2] Compiling Q[q-0.1.0.0] +[1 of 3] Compiling P[p-0.1.0.0] +[2 of 3] Compiling Q[q-0.1.0.0] +[3 of 3] Compiling R[r-0.1.0.0] +[1 of 3] Compiling P[p-0.1.0.0] +[2 of 3] Compiling Q[q-0.1.0.0] +[3 of 3] Compiling R[r1-0.1.0.0] diff --git a/testsuite/tests/driver/multipleHomeUnits/mhu-closure/p/P.hs b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/p/P.hs new file mode 100644 index 0000000000..fc4877ad85 --- /dev/null +++ b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/p/P.hs @@ -0,0 +1 @@ +module P where diff --git a/testsuite/tests/driver/multipleHomeUnits/mhu-closure/p/Setup.hs b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/p/Setup.hs new file mode 100644 index 0000000000..9a994af677 --- /dev/null +++ b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/p/Setup.hs @@ -0,0 +1,2 @@ +import Distribution.Simple +main = defaultMain diff --git a/testsuite/tests/driver/multipleHomeUnits/mhu-closure/p/p.cabal b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/p/p.cabal new file mode 100644 index 0000000000..b0113ee1f1 --- /dev/null +++ b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/p/p.cabal @@ -0,0 +1,11 @@ +name: p +version: 0.1.0.0 +author: Edward Z. Yang +maintainer: ezyang@cs.stanford.edu +build-type: Simple +cabal-version: >=1.10 + +library + exposed-modules: P + build-depends: base + default-language: Haskell2010 diff --git a/testsuite/tests/driver/multipleHomeUnits/mhu-closure/q/Q.hs b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/q/Q.hs new file mode 100644 index 0000000000..8c7bcdc87b --- /dev/null +++ b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/q/Q.hs @@ -0,0 +1,2 @@ +module Q where +import P diff --git a/testsuite/tests/driver/multipleHomeUnits/mhu-closure/q/Setup.hs b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/q/Setup.hs new file mode 100644 index 0000000000..9a994af677 --- /dev/null +++ b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/q/Setup.hs @@ -0,0 +1,2 @@ +import Distribution.Simple +main = defaultMain diff --git a/testsuite/tests/driver/multipleHomeUnits/mhu-closure/q/q.cabal b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/q/q.cabal new file mode 100644 index 0000000000..874f392569 --- /dev/null +++ b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/q/q.cabal @@ -0,0 +1,11 @@ +name: q +version: 0.1.0.0 +author: Edward Z. Yang +maintainer: ezyang@cs.stanford.edu +build-type: Simple +cabal-version: >=1.10 + +library + exposed-modules: Q + build-depends: base, p + default-language: Haskell2010 diff --git a/testsuite/tests/driver/multipleHomeUnits/mhu-closure/r/R.hs b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/r/R.hs new file mode 100644 index 0000000000..01f057a907 --- /dev/null +++ b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/r/R.hs @@ -0,0 +1,2 @@ +module R where +import Q diff --git a/testsuite/tests/driver/multipleHomeUnits/mhu-closure/r/Setup.hs b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/r/Setup.hs new file mode 100644 index 0000000000..9a994af677 --- /dev/null +++ b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/r/Setup.hs @@ -0,0 +1,2 @@ +import Distribution.Simple +main = defaultMain diff --git a/testsuite/tests/driver/multipleHomeUnits/mhu-closure/r/r.cabal b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/r/r.cabal new file mode 100644 index 0000000000..2a9e09cab0 --- /dev/null +++ b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/r/r.cabal @@ -0,0 +1,11 @@ +name: r +version: 0.1.0.0 +author: Edward Z. Yang +maintainer: ezyang@cs.stanford.edu +build-type: Simple +cabal-version: >=1.10 + +library + exposed-modules: R + build-depends: base, q + default-language: Haskell2010 diff --git a/testsuite/tests/driver/multipleHomeUnits/mhu-closure/r1/R.hs b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/r1/R.hs new file mode 100644 index 0000000000..01f057a907 --- /dev/null +++ b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/r1/R.hs @@ -0,0 +1,2 @@ +module R where +import Q diff --git a/testsuite/tests/driver/multipleHomeUnits/mhu-closure/r1/Setup.hs b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/r1/Setup.hs new file mode 100644 index 0000000000..9a994af677 --- /dev/null +++ b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/r1/Setup.hs @@ -0,0 +1,2 @@ +import Distribution.Simple +main = defaultMain diff --git a/testsuite/tests/driver/multipleHomeUnits/mhu-closure/r1/r1.cabal b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/r1/r1.cabal new file mode 100644 index 0000000000..b87a73276e --- /dev/null +++ b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/r1/r1.cabal @@ -0,0 +1,11 @@ +name: r1 +version: 0.1.0.0 +author: Edward Z. Yang +maintainer: ezyang@cs.stanford.edu +build-type: Simple +cabal-version: >=1.10 + +library + exposed-modules: R + build-depends: base, q + default-language: Haskell2010 diff --git a/testsuite/tests/driver/multipleHomeUnits/mhu-closure/unitP b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/unitP new file mode 100644 index 0000000000..7b3b088b7e --- /dev/null +++ b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/unitP @@ -0,0 +1 @@ +-working-dir p P -i -i. -package-db ../tmp.d -this-unit-id p-0.1.0.0 diff --git a/testsuite/tests/driver/multipleHomeUnits/mhu-closure/unitQ b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/unitQ new file mode 100644 index 0000000000..dcd9ae059a --- /dev/null +++ b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/unitQ @@ -0,0 +1 @@ +-working-dir q Q -i -i. -package-db ../tmp.d -this-unit-id q-0.1.0.0 -package-id p-0.1.0.0 diff --git a/testsuite/tests/driver/multipleHomeUnits/mhu-closure/unitR b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/unitR new file mode 100644 index 0000000000..2535bd7d14 --- /dev/null +++ b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/unitR @@ -0,0 +1 @@ +-working-dir r R -i -i. -package-db ../tmp.d -this-unit-id r-0.1.0.0 -package-id q-0.1.0.0 diff --git a/testsuite/tests/driver/multipleHomeUnits/mhu-closure/unitR1 b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/unitR1 new file mode 100644 index 0000000000..9bb366c78e --- /dev/null +++ b/testsuite/tests/driver/multipleHomeUnits/mhu-closure/unitR1 @@ -0,0 +1 @@ +-working-dir r1 R -i -i. -package-db ../tmp.d -this-unit-id r1-0.1.0.0 -package-id q-0.1.0.0 |