diff options
Diffstat (limited to 'testsuite/tests/ghc-regress/driver/Makefile')
-rw-r--r-- | testsuite/tests/ghc-regress/driver/Makefile | 487 |
1 files changed, 0 insertions, 487 deletions
diff --git a/testsuite/tests/ghc-regress/driver/Makefile b/testsuite/tests/ghc-regress/driver/Makefile deleted file mode 100644 index cb64ea675a..0000000000 --- a/testsuite/tests/ghc-regress/driver/Makefile +++ /dev/null @@ -1,487 +0,0 @@ -TOP=../../.. -include $(TOP)/mk/boilerplate.mk -include $(TOP)/mk/test.mk - -# A set of driver tests - -# Things to test: -# -# - one-shot vs. --make -# - hierarchical vs. flat -# - -odir vs. no -odir -# - -hidir vs. no -hidir -# - root module vs. found modules - -OBJSUFFIX = .o - -# ----------------------------------------------------------------------------- -# One-shot compilations, non-hierarchical modules - -test011: - $(RM) A011.hi - $(RM) A011$(OBJSUFFIX) - "$(TEST_HC)" $(TEST_HC_OPTS) $(TEST_HC_OPTS) -c A011.hs - test -f A011.hi - test -f A011$(OBJSUFFIX) - -# test -o -test012: - $(RM) A012.hi - $(RM) A012$(OBJSUFFIX)oo - "$(TEST_HC)" $(TEST_HC_OPTS) -c A012.hs -o A012$(OBJSUFFIX)oo - test -f A012$(OBJSUFFIX)oo - -# test -ohi -test013: - $(RM) A013.xhi - $(RM) A013$(OBJSUFFIX) - "$(TEST_HC)" $(TEST_HC_OPTS) -c A013.hs -ohi A013.xhi - test -f A013.xhi - -# test -odir -test014: - $(RM) -f A014.hi - $(RM) -rf obj014 - mkdir obj014 - "$(TEST_HC)" $(TEST_HC_OPTS) -c A014.hs -odir obj014 - test -f obj014/A014$(OBJSUFFIX) - test -f A014.hi - -# test -hidir -test015: - $(RM) -f A015$(OBJSUFFIX) - $(RM) -rf hi015 - mkdir hi015 - "$(TEST_HC)" $(TEST_HC_OPTS) -c A015.hs -hidir hi015 - test -f A015$(OBJSUFFIX) - test -f hi015/A015.hi - -# test stub generation -test016: - $(RM) F016.hi F016$(OBJSUFFIX) F016_stub.h - "$(TEST_HC)" $(TEST_HC_OPTS) -c F016.hs - test -f F016_stub.h - -# test -stubdir (filename differs from module name) -test017: - $(RM) F017.hi F017$(OBJSUFFIX) - "$(TEST_HC)" $(TEST_HC_OPTS) -c F017.hs -stubdir stub017 - test -f stub017/TestStub017_stub.h - -# test -odir with stubs (filename differs from module name) -test018: - $(RM) -f F018.hi F018$(OBJSUFFIX) F018_stub.h - $(RM) -rf obj018 - mkdir obj018 - "$(TEST_HC)" $(TEST_HC_OPTS) -c F018.hs -odir obj018 - -# test for bug #3093 -test018a: - $(RM) -f F018a.hi F018a_stub.h *.obj.018 - "$(TEST_HC)" $(TEST_HC_OPTS) -c F018a.hs -osuf obj.018 - test -f F018a.obj.018 - -# test -outputdir -test019: - $(RM) -rf out019 - "$(TEST_HC)" $(TEST_HC_OPTS) -c F019.hs -outputdir out019 - test -f out019/TestStub019.hi - test -f out019/TestStub019_stub.h - -# ----------------------------------------------------------------------------- -# One-shot compilation, hierarchical modules - -test021: - $(RM) B021/C.hi - $(RM) B021/C$(OBJSUFFIX) - "$(TEST_HC)" $(TEST_HC_OPTS) -c B021/C.hs - test -f B021/C.hi - test -f B021/C$(OBJSUFFIX) - -# test -o -test022: - $(RM) B022/C.hi - $(RM) B022/C$(OBJSUFFIX)oo - "$(TEST_HC)" $(TEST_HC_OPTS) -c B022/C.hs -o B022/C$(OBJSUFFIX)oo - test -f B022/C$(OBJSUFFIX)oo - -# test -ohi -test023: - $(RM) B023/C.xhi - $(RM) B023/C$(OBJSUFFIX) - "$(TEST_HC)" $(TEST_HC_OPTS) -c B023/C.hs -ohi B023/C.xhi - test -f B023/C.xhi - -# test -odir -test024: - $(RM) -f B024/C.hi - $(RM) -rf obj024 - mkdir obj024 - "$(TEST_HC)" $(TEST_HC_OPTS) -c B024/C.hs -odir obj024 - test -f obj024/B024/C$(OBJSUFFIX) - -# test -odir with non-Haskell compilation -test024a: - $(RM) -rf B024a - $(RM) -rf obj024a - mkdir B024a - mkdir obj024a - echo >B024a/stub.c - "$(TEST_HC)" $(TEST_HC_OPTS) -c B024a/stub.c -odir obj024a - test -f obj024a/B024a/stub$(OBJSUFFIX) - -# test -hidir -test025: - $(RM) -rf hi025 - mkdir hi025 - $(RM) B025/C$(OBJSUFFIX) - "$(TEST_HC)" $(TEST_HC_OPTS) -c B025/C.hs -hidir hi025 - test -f hi025/B025/C.hi - -# This is a hierarchical module that lives in a subdirectory. -test026: - $(RM) d026/P/Q.hi - $(RM) d026/P/Q$(OBJSUFFIX) - "$(TEST_HC)" $(TEST_HC_OPTS) -c d026/P/Q.hs - test -f d026/P/Q.hi - test -f d026/P/Q$(OBJSUFFIX) - -# test stub generation -# -fvia-C, because we want to check that the .hc file can #include the stub.h -test027: - $(RM) B027/F.hi B027/F$(OBJSUFFIX) B027/F_stub.h - "$(TEST_HC)" $(TEST_HC_OPTS) -c B027/F.hs -fno-warn-deprecated-flags -fvia-C - test -f B027/F_stub.h - -# test -stubdir -# -fvia-C, because we want to check that the .hc file can #include the stub.h -test028: - $(RM) B028/F.hi B028/F$(OBJSUFFIX) - $(RM) stub028/B028/F_stub.h - "$(TEST_HC)" $(TEST_HC_OPTS) -c B028/F.hs -stubdir stub028 -fno-warn-deprecated-flags -fvia-C - test -f stub028/B028/F_stub.h - -# ----------------------------------------------------------------------------- -# Compilation-manager compilations, flat modules - -test031: - $(RM) A031.hi - $(RM) A031$(OBJSUFFIX) - "$(TEST_HC)" $(TEST_HC_OPTS) -v0 --make A031.hs - test -f A031.hi - test -f A031$(OBJSUFFIX) - -# test -odir -test032: - $(RM) A032.hi - $(RM) -rf obj032 - mkdir obj032 - "$(TEST_HC)" $(TEST_HC_OPTS) -v0 --make A032.hs -odir obj032 - test -f obj032/A032$(OBJSUFFIX) - -# test -hidir -test033: - $(RM) -rf hi033 - $(RM) A033$(OBJSUFFIX) - mkdir hi033 - "$(TEST_HC)" $(TEST_HC_OPTS) -v0 --make A033.hs -hidir hi033 - test -f hi033/A033.hi - -# test stub generation -test034: - $(RM) F034.hi F034$(OBJSUFFIX) F034_stub.h - "$(TEST_HC)" $(TEST_HC_OPTS) -v0 --make F034.hs - test -f F034_stub.h - -# test -stubdir (filename differs from module name) -test035: - $(RM) F035.hi F$(OBJSUFFIX) stub035/Stubs_stub.h - "$(TEST_HC)" $(TEST_HC_OPTS) -v0 --make F035.hs -stubdir stub035 - test -f stub035/TestStub035_stub.h - -# ----------------------------------------------------------------------------- -# Compilation-manager compilations, hierarchical modules - -test041: - $(RM) B041/C.hi - $(RM) B041/C$(OBJSUFFIX) - "$(TEST_HC)" $(TEST_HC_OPTS) -v0 --make B041/C.hs - test -f B041/C.hi - test -f B041/C$(OBJSUFFIX) - -# test -odir -test042: - $(RM) -rf obj042 - mkdir obj042 - $(RM) B042/C.hi - "$(TEST_HC)" $(TEST_HC_OPTS) -v0 --make B042/C.hs -odir obj042 - test -f obj042/B042/C$(OBJSUFFIX) - -# test -hidir -test043: - $(RM) -f B043/C$(OBJSUFFIX) - $(RM) -rf hi043 - mkdir hi043 - "$(TEST_HC)" $(TEST_HC_OPTS) -v0 --make B043/C.hs -hidir hi043 - test -f hi043/B043/C.hi - -# test stub generation -test044: - $(RM) B044/F.hi B044/F$(OBJSUFFIX) B044/F_stub.h - "$(TEST_HC)" $(TEST_HC_OPTS) -v0 --make B044/F.hs - test -f B044/F_stub.h - -# test -stubdir -test045: - $(RM) B045/F.hi B045/F$(OBJSUFFIX) - $(RM) stub045/B045/F_stub.h - "$(TEST_HC)" $(TEST_HC_OPTS) -v0 --make B045/F.hs -stubdir stub045 - test -f stub045/B045/F_stub.h - -# ----------------------------------------------------------------------------- -# Compilation-manager compilations, hierarchical modules, non-root modules - -test051: - $(RM) d051_2/R/S.hi - $(RM) d051_2/R/S$(OBJSUFFIX) - $(RM) d051_1/P/Q.hi - $(RM) d051_1/P/Q$(OBJSUFFIX) - "$(TEST_HC)" $(TEST_HC_OPTS) -v0 --make -id051_1 -id051_2 R.S - test -f d051_2/R/S.hi - test -f d051_2/R/S$(OBJSUFFIX) - test -f d051_1/P/Q.hi - test -f d051_1/P/Q$(OBJSUFFIX) - -# test -odir -test052: - $(RM) d052_2/R/S.hi - $(RM) d052_1/P/Q.hi - $(RM) -rf obj052 - mkdir obj052 - "$(TEST_HC)" $(TEST_HC_OPTS) -v0 --make -id052_1 -id052_2 -odir obj052 R.S - test -f d052_2/R/S.hi - test -f obj052/R/S$(OBJSUFFIX) - test -f d052_1/P/Q.hi - test -f obj052/P/Q$(OBJSUFFIX) - -# test -hidir -test053: - $(RM) hi053/R/S.hi - $(RM) d053_2/R/S$(OBJSUFFIX) - $(RM) hi053/P/Q.hi - $(RM) d053_1/P/Q$(OBJSUFFIX) - "$(TEST_HC)" $(TEST_HC_OPTS) -v0 --make -id053_1 -id053_2 -hidir hi053 R.S - test -f hi053/R/S.hi - test -f d053_2/R/S$(OBJSUFFIX) - test -f hi053/P/Q.hi - test -f d053_1/P/Q$(OBJSUFFIX) - -# ----------------------------------------------------------------------------- -# Other tests - -# Test that -keep-s-files works with --make and -fvia-C -test061a: - $(RM) A061a.hi A061a$(OBJSUFFIX) A061a.s - "$(TEST_HC)" $(TEST_HC_OPTS) -v0 --make -keep-s-files -fno-warn-deprecated-flags -fvia-C A061a.hs - test -f A061a.s - -# Test that -keep-s-files works without --make -test061b: - $(RM) A061b.hi A061b$(OBJSUFFIX) A061b.s - "$(TEST_HC)" $(TEST_HC_OPTS) -c -keep-s-files -fno-warn-deprecated-flags -fvia-C A061b.hs - test -f A061b.s - -# Test that -main-is works with --make -test062a: - $(RM) Hello062a.hs Hello062a.hi Hello062a$(OBJSUFFIX) Hello062a.hc hello062a - echo "module Hello062a where { hello062a = putStrLn \"ok\" }" >Hello062a.hs - "$(TEST_HC)" $(TEST_HC_OPTS) -v0 --make -main-is Hello062a.hello062a Hello062a -o hello062a - ./hello062a -test062b: - $(RM) Hello062b.hs Hello062b.hi Hello062b$(OBJSUFFIX) Hello062b.hc hello062b - echo "module Hello062b where { main = putStrLn \"ok\" }" >Hello062b.hs - "$(TEST_HC)" $(TEST_HC_OPTS) -v0 --make -main-is Hello062b Hello062b -o hello062b - ./hello062b -test062c: - $(RM) Hello062c.hs Hello062c.hi Hello062c$(OBJSUFFIX) Hello062c.hc hello062c - echo "module Main (hello062c) where { hello062c = putStrLn \"ok\" }" >Hello062c.hs - "$(TEST_HC)" $(TEST_HC_OPTS) -v0 --make -main-is hello062c Hello062c.hs -o hello062c - ./hello062c -test062d: - $(RM) -rf B062d - $(RM) hello062d - mkdir B062d - echo "module B062d.Hello062d (hello062d) where { hello062d = putStrLn \"ok\" }" >B062d/Hello062d.hs - "$(TEST_HC)" $(TEST_HC_OPTS) -v0 --make -main-is B062d.Hello062d.hello062d B062d/Hello062d.hs -o hello062d - ./hello062d -test062e: - $(RM) -rf B062e - $(RM) Hello062e.hc hello062e - mkdir B062e - echo "module B062e.Hello062e (main) where { main = putStrLn \"ok\" }" >B062e/Hello062e.hs - "$(TEST_HC)" $(TEST_HC_OPTS) -v0 --make -main-is B062e.Hello062e B062e/Hello062e.hs -o hello062e - ./hello062e - -# Test that -i deletes the list of search paths. -# The compilation will fail, but we ignore the failure and just -# compare the output, because make might give us a different exit code. -test063: - $(RM) A063.hi A063$(OBJSUFFIX) A063.hc D063.hi D063$(OBJSUFFIX) D063.hc - -"$(TEST_HC)" $(TEST_HC_OPTS) --make -i -v0 D063.hs - -# Test -E -test064: - $(RM) A064.hi A064.hspp - "$(TEST_HC)" $(TEST_HC_OPTS) -E A064.hs - test -f A064.hspp - -# Test -E/-cpp -test065: - $(RM) A065.hi A065.hspp - "$(TEST_HC)" $(TEST_HC_OPTS) -E -cpp A065.hs - test -f A065.hspp - -# Test -E/-o -test066: - $(RM) A066.hi A066.tmp - "$(TEST_HC)" $(TEST_HC_OPTS) -E A066.hs -o A066.tmp - test -f A066.tmp - -# Test -E/-cpp/-o -test067: - $(RM) A067.hi A067.tmp - "$(TEST_HC)" $(TEST_HC_OPTS) -cpp -E A067.hs -o A067.tmp - test -f A067.tmp - -# Test -S -test070: - $(RM) A070.hi A070.s - "$(TEST_HC)" $(TEST_HC_OPTS) -S A070.hs - test -f A070.s - -# Test -S/-o -test071: - $(RM) A071.hi A071.tmp - "$(TEST_HC)" $(TEST_HC_OPTS) -S A071.hs -o A071.tmp - test -f A071.tmp - - -# Tests for #2248, -o and .exe - -define test081 -$(RM) $(1).hs $(1).hi $(1)$(OBJSUFFIX) $(1).hc $(1)$(exeext) -echo "module Main where { main = putStrLn \"ok\" }" >$(1).hs -"$(TEST_HC)" $(TEST_HC_OPTS) --make -v0 $(1).hs -test -f $(1)$(exeext) -endef - -test081a: - $(call test081, Test_081a) -test081b: - $(call test081, Test.081b) - -# ----------------------------------------------------------------------------- -# --make tests - -# Test for overlap between home module and package module -test100: - $(RM) overlap/List.hi overlap/List.o - $(RM) overlap/Overlap.hi overlap/Overlap.o - "$(TEST_HC)" $(TEST_HC_OPTS) -v0 --make -ioverlap Overlap - -# ----------------------------------------------------------------------------- -# dependency-generation tests - -DEPFILE200 = depend200 - -# Test that we can create a dependency file, and that we can -# modify an existing dependency file. -test200: - $(RM) $(DEPFILE200) - "$(TEST_HC)" $(TEST_HC_OPTS) -M -dep-makefile $(DEPFILE200) D200 - test -f $(DEPFILE200) - "$(TEST_HC)" $(TEST_HC_OPTS) -M -dep-makefile $(DEPFILE200) D200 B200.C A200 - test -f $(DEPFILE200) - "$(TEST_HC)" $(TEST_HC_OPTS) -M -dep-makefile $(DEPFILE200) D200.hs B200/C.hs A200.hs - test -f $(DEPFILE200) - -# ----------------------------------------------------------------------------- - -2566:: - if "$(TEST_HC)" $(TEST_HC_OPTS) -c foo2566.bar; then false else true; fi - -.PHONY: mode001 -# We use -# sed '2,$$d' -# rather than -# head -1 -# as the latter gives -# ghc: <stdout>: hFlush: resource vanished (Broken pipe) -# on OS X -mode001: - "$(TEST_HC)" $(TEST_HC_OPTS) --make --help | sed '2,$$d' - "$(TEST_HC)" $(TEST_HC_OPTS) --help --make | sed '2,$$d' - "$(TEST_HC)" $(TEST_HC_OPTS) --interactive --help | sed '2,$$d' - "$(TEST_HC)" $(TEST_HC_OPTS) --help --interactive | sed '2,$$d' - "$(TEST_HC)" $(TEST_HC_OPTS) --version --help | sed "s/, version.*//" - "$(TEST_HC)" $(TEST_HC_OPTS) --help --version | sed '2,$$d' - "$(TEST_HC)" $(TEST_HC_OPTS) --interactive --version | sed "s/, version.*//" - "$(TEST_HC)" $(TEST_HC_OPTS) --version --interactive | sed "s/, version.*//" - -# Test for building DLLs with ghc -shared, see #2745 -shared001: - $(RM) Shared001.hi Shared001.o HSdll.dll.a HSdll.dll Shared001_stub.* - "$(TEST_HC)" $(TEST_HC_OPTS) -v0 -shared Shared001.hs - -# ----------------------------------------------------------------------------- - -3674: - $(RM) 3674*.o 3674*.hi 3674_pre - "$(TEST_HC)" $(TEST_HC_OPTS) --make 3674_pre.hs - "$(TEST_HC)" $(TEST_HC_OPTS) --make 3674.hs - -.PHONY: rtsopts001 -rtsopts001: - $(RM) rtsOpts$(exeext) rtsOpts.hi rtsOpts.o - "$(TEST_HC)" $(TEST_HC_OPTS) -v0 --make rtsOpts -rtsopts - echo "Normal" - -./rtsOpts +RTS -C0 2>&1 - $(RM) rtsOpts$(exeext) rtsOpts.hi rtsOpts.o - "$(TEST_HC)" $(TEST_HC_OPTS) -v0 --make rtsOpts - echo "No RTS opts" - -./rtsOpts +RTS -C0 2>&1 - -.PHONY: rtsopts002 -rtsopts002: - $(RM) rtsopts002$(exeext) rtsopts002.hi rtsopts002.o - "$(TEST_HC)" $(TEST_HC_OPTS) -v0 --make rtsopts002 -rtsopts=some - ./rtsopts002 - ./rtsopts002 +RTS --info >/dev/null - if ./rtsopts002 +RTS -C0; then exit 1; else exit 0; fi - GHCRTS= ./rtsopts002 - GHCRTS=--info ./rtsopts002 >/dev/null - if GHCRTS=-C0 ./rtsopts002; then exit 1; else exit 0; fi - -.PHONY: withRtsOpts -withRtsOpts: - $(RM) withRtsOpts$(exeext) withRtsOpts.hi withRtsOpts.o withRtsOpts.out - "$(TEST_HC)" $(TEST_HC_OPTS) -v0 --make withRtsOpts -with-rtsopts=--info - ./withRtsOpts | head -1 - # Also test for non-safe RTS opts, these should be allowed too, - # since the author has explicitly requested them. (#5114) - $(RM) withRtsOpts$(exeext) withRtsOpts.hi withRtsOpts.o withRtsOpts.out - "$(TEST_HC)" $(TEST_HC_OPTS) -v0 --make withRtsOpts -with-rtsopts=-twithRtsOpts.out - ./withRtsOpts | head -1 - test -f withRtsOpts.out - -.PHONY: T3364 -T3364: - -"$(TEST_HC)" $(TEST_HC_OPTS) -H - -.PHONY: T706 -T706: - cp T706a.hs T706.hs - "$(TEST_HC)" $(TEST_HC_OPTS) -c T706.hs - cp T706b.hs T706.hs - "$(TEST_HC)" $(TEST_HC_OPTS) -c T706.hs - echo "test" | "$(TEST_HC)" $(TEST_HC_OPTS) --interactive -ignore-dot-ghci -v0 T706 |