testsuite: Mark th tests as broken in ext-interp way in LLVM build flavours
authorBen Gamari <ben@smart-cactus.org>
Sun, 23 Dec 2018 07:24:17 +0000 (02:24 -0500)
committerBen Gamari <ben@smart-cactus.org>
Mon, 24 Dec 2018 05:24:04 +0000 (00:24 -0500)
This is due to the failures documented in #16087. The condition here could be
improved as it matches on `BUILD_FLAVOUR` instead of looking at the compiler
flags. However, it's better than nothing and I hope we will be able to fix these
issues before long.

hadrian/src/Settings/Builders/RunTest.hs
testsuite/mk/test.mk
testsuite/tests/th/all.T

index 8312592..908668b 100644 (file)
@@ -83,6 +83,9 @@ runTestBuilderArgs = builder RunTest ? do
     timeoutProg <- expr buildRoot <&> (-/- timeoutPath)
     integerLib  <- expr (integerLibrary flav)
 
+    -- See #16087
+    let ghcBuiltByLlvm = False -- TODO: Implement this check
+
     let asZeroOne s b = s ++ zeroOne b
 
     -- TODO: set CABAL_MINIMAL_BUILD/CABAL_PLUGIN_BUILD
@@ -112,6 +115,7 @@ runTestBuilderArgs = builder RunTest ? do
             , arg "-e", arg $ "config.ghc_dynamic_by_default=" ++ show hasDynamicByDefault
             , arg "-e", arg $ "config.ghc_dynamic=" ++ show hasDynamic
             , arg "-e", arg $ "config.integer_backend=" ++ show (pkgName integerLib)
+            , arg "-e", arg $ "config.ghc_built_by_llvm=" ++ show ghcBuiltByLlvm
 
             -- Use default value, see:
             -- https://github.com/ghc/ghc/blob/master/testsuite/mk/boilerplate.mk
index 1bac4fd..cead469 100644 (file)
@@ -240,6 +240,13 @@ else
 RUNTEST_OPTS += -e config.local=True
 endif
 
+# Some tests in ext-interp fail when ghc-stage2 is built using LLVM. See #16087
+ifeq "$(findstring llvm,$(BUILD_FLAVOUR))" ""
+RUNTEST_OPTS += -e config.ghc_built_by_llvm=False
+else
+RUNTEST_OPTS += -e config.ghc_built_by_llvm=True
+endif
+
 RUNTEST_OPTS += -e 'config.integer_backend="$(INTEGER_LIBRARY)"'
 
 RUNTEST_OPTS +=  \
index 96c7e1e..1bea110 100644 (file)
@@ -12,6 +12,8 @@ setTestOpts(req_interp)
 if config.have_ext_interp :
        setTestOpts(extra_ways(['ext-interp']))
        setTestOpts(only_ways(['normal','ghci','ext-interp']))
+       if config.ghc_built_by_llvm:
+           setTestOpts(expect_broken_for(16087, ['ext-interp']))
 
 test('TH_mkName', normal, compile, ['-v0'])
 test('TH_overloadedlabels', normal, compile, ['-v0'])