Another batch of './validation --slow' tweaks
authorAlp Mestanogullari <alp@well-typed.com>
Sat, 19 May 2018 18:00:21 +0000 (14:00 -0400)
committerBen Gamari <ben@smart-cactus.org>
Sun, 20 May 2018 15:01:34 +0000 (11:01 -0400)
This finally gets us to a green ./validate --slow on linux for a ghc
checkout from the beginning of this week, see

  https://circleci.com/gh/ghc/ghc/4739

This is hopefully the final (or second to final) patch to
address #14890.

Test Plan: ./validate --slow

Reviewers: bgamari, hvr, simonmar

Reviewed By: bgamari

Subscribers: rwbarton, thomie, carter

GHC Trac Issues: #14890

Differential Revision: https://phabricator.haskell.org/D4712

13 files changed:
libraries/base/tests/all.T
libraries/ghc-compact/tests/all.T
testsuite/tests/cabal/all.T
testsuite/tests/dependent/should_compile/all.T
testsuite/tests/partial-sigs/should_compile/all.T
testsuite/tests/patsyn/should_run/all.T
testsuite/tests/profiling/should_run/all.T
testsuite/tests/rts/all.T
testsuite/tests/simplCore/should_compile/all.T
testsuite/tests/th/all.T
testsuite/tests/th/should_compile/T13949/all.T
testsuite/tests/th/should_compile/T8025/all.T
testsuite/tests/typecheck/should_compile/all.T

index eb00fc3..88827b3 100644 (file)
@@ -188,7 +188,8 @@ test('T9681', normal, compile_fail, [''])
 #   make an educated guess how long it needs to be guaranteed to reach the C
 #   call."
 test('T8089',
-     [exit_code(99), run_timeout_multiplier(0.01)],
+     [exit_code(99), run_timeout_multiplier(0.01),
+      expect_broken_for(15158, ['ghci', 'threaded1', 'threaded2', 'profthreaded'])],
      compile_and_run, [''])
 test('T8684', expect_broken(8684), compile_and_run, [''])
 test('T9826',normal, compile_and_run,[''])
index 0264bab..1f20a4e 100644 (file)
@@ -15,6 +15,9 @@ test('compact_function', exit_code(1), compile_and_run, [''])
 test('compact_mutable', exit_code(1), compile_and_run, [''])
 test('compact_pinned', exit_code(1), compile_and_run, [''])
 test('compact_gc', ignore_stdout, compile_and_run, [''])
-test('compact_share', normal, compile_and_run, [''])
+# this test computes closure sizes and those are affected
+# by the ghci and prof ways, because of BCOs and profiling headers.
+test('compact_share', omit_ways(['ghci', 'profasm', 'profthreaded']),
+                     compile_and_run, [''])
 test('compact_bench', [ ignore_stdout, extra_run_opts('100') ],
                        compile_and_run, [''])
index 82c1b15..5f1b308 100644 (file)
@@ -1,6 +1,9 @@
 def normaliseDynlibNames(str):
     return re.sub('-ghc[0-9.]+\.', '-ghc<VERSION>.', str)
 
+def ignore_warnings(str):
+    return re.sub(r'Warning:.*\n', '', str)
+
 test('ghcpkg01', [extra_files(['test.pkg', 'test2.pkg', 'test3.pkg'])], run_command, ['$MAKE -s --no-print-directory ghcpkg01'])
 
 # Use ignore_stderr to prevent (when HADDOCK_DOCS=NO):
@@ -29,7 +32,7 @@ def normalise_haddock_junk( str ):
 
 test('ghcpkg05',
      [extra_files(['test2.pkg', 'test3.pkg']),
-      normalise_errmsg_fun(normalise_haddock_junk, normaliseDynlibNames)],
+      normalise_errmsg_fun(normalise_haddock_junk, normaliseDynlibNames, ignore_warnings)],
      run_command, ['$MAKE -s --no-print-directory ghcpkg05'])
 test('ghcpkg06', [extra_files(['test.pkg', 'testdup.pkg'])], run_command, ['$MAKE -s --no-print-directory ghcpkg06'])
 
index 6585316..6622184 100644 (file)
@@ -31,7 +31,16 @@ test('T13538', normal, compile, [''])
 test('T12176', normal, compile, [''])
 test('T14038', normal, compile, [''])
 test('T12742', normal, compile, [''])
-test('T13910', normal, compile, [''])
+# we omit profasm because it doesn't bring much to the table but
+# introduces its share of complexity, as the test as it is fails with
+# profasm:
+# T13910.hs:6:5: fatal:
+#     Cannot load -prof objects when GHC is built with -dynamic
+#     To fix this, either:
+#       (1) Use -fexternal-interpreter, or
+#       (2) Build the program twice: once with -dynamic, and then
+#           with -prof using -osuf to set a different object file suffix.
+test('T13910', omit_ways(['profasm']), compile, [''])
 test('T13938', [extra_files(['T13938a.hs'])], run_command,
      ['$MAKE -s --no-print-directory T13938'])
 test('T14556', normal, compile, [''])
index bdfc13d..d6eaa77 100644 (file)
@@ -38,7 +38,16 @@ test('PatBind', normal, compile, ['-ddump-types -fno-warn-partial-type-signature
 # Bug
 test('PatBind2', normal, compile, ['-ddump-types -fno-warn-partial-type-signatures'])
 test('PatternSig', normal, compile, ['-ddump-types -fno-warn-partial-type-signatures'])
-test('PatternSplice', [req_interp, normal], compile, ['-fno-warn-partial-type-signatures'])
+# we omit profasm because it doesn't bring much to the table but
+# introduces its share of complexity, as the test as it is fails with
+# profasm:
+# PatternSplice.hs:6:5: fatal:
+#     Cannot load -prof objects when GHC is built with -dynamic
+#     To fix this, either:
+#       (1) Use -fexternal-interpreter, or
+#       (2) Build the program twice: once with -dynamic, and then
+#           with -prof using -osuf to set a different object file suffix.
+test('PatternSplice', [req_interp, omit_ways(['profasm'])], compile, ['-fno-warn-partial-type-signatures'])
 test('Recursive', normal, compile, ['-ddump-types -fno-warn-partial-type-signatures'])
 test('ScopedNamedWildcards', normal, compile, ['-ddump-types -fno-warn-partial-type-signatures'])
 test('ScopedNamedWildcardsGood', normal, compile, ['-ddump-types -fno-warn-partial-type-signatures'])
index 878a7b0..57bc41f 100644 (file)
@@ -14,6 +14,15 @@ test('records-run', normal, compile_and_run, [''])
 test('ghci', just_ghci, ghci_script, ['ghci.script'])
 test('T11985', just_ghci, ghci_script, ['T11985.script'])
 test('T11224', normal, compile_and_run, [''])
-test('T13688', normal, multimod_compile_and_run, ['T13688', '-v0'])
+# we omit profasm/profthreaded because it doesn't bring much to the table but
+# introduces its share of complexity, as the test as it is fails with
+# profasm:
+# T13688.hs:6:13: fatal:
+#     Cannot load -prof objects when GHC is built with -dynamic
+#     To fix this, either:
+#       (1) Use -fexternal-interpreter, or
+#       (2) Build the program twice: once with -dynamic, and then
+#           with -prof using -osuf to set a different object file suffix.
+test('T13688', omit_ways(['profasm', 'profthreaded']), multimod_compile_and_run, ['T13688', '-v0'])
 # Requires UnboxedSums, which GHCi does not support.
 test('T14228', omit_ways(['ghci']), compile_and_run, [''])
index 03332f6..7904de8 100644 (file)
@@ -36,10 +36,10 @@ test('T3001', [only_ways(['prof_hb']), extra_ways(['prof_hb'])],
 test('T3001-2', [only_ways(['prof_hb']), extra_ways(['prof_hb'])],
      compile_and_run, ['-package bytestring'])
 
-# As with ioprof001, the unoptimised profile is different but
-# not badly wrong (CAF attribution is different).
+# For profasm/profthreaded, the answer is correct but the ordering of some
+# lines in the output happen to be different, so we just skip them.
 test('scc001',
-     [expect_broken_for_10037],
+     omit_ways(['profasm', 'profthreaded']),
      compile_and_run,
      ['-fno-state-hack -fno-full-laziness']) # Note [consistent stacks]
 
index a07179a..f822873 100644 (file)
@@ -384,15 +384,17 @@ test('T12497', [ unless(opsys('mingw32'), skip)
                ],
                run_command, ['$MAKE -s --no-print-directory T12497'])
 
+# This test sometimes produces out of sequence samples in the profasm way, but
+# not reliably, so we just skip it. See ticket #15065.
 test('T12903', [ when(opsys('mingw32'), skip)
-               # produces out of sequence samples in the profasm way
-              , expect_broken_for(15065, ['profasm'])
-              , omit_ways(['ghci'])
+              , omit_ways(['ghci', 'profasm'])
               ], compile_and_run, [''])
 
 test('T13832', exit_code(1), compile_and_run, ['-threaded'])
 test('T13894', normal, compile_and_run, [''])
-test('T14497', normal, compile_and_run, ['-O'])
+# this test fails with the profasm way on some machines but not others,
+# so we just skip it.
+test('T14497', omit_ways(['profasm']), compile_and_run, ['-O'])
 test('T14695', normal, run_command, ['$MAKE -s --no-print-directory T14695'])
 test('T14702', [ ignore_stdout
                , only_ways(['threaded1', 'threaded2'])
index 71743bc..9a3b8f9 100644 (file)
@@ -158,7 +158,16 @@ test('T7702',
      compile,
      ['-v0 -package-db T7702plugin/pkg.T7702/local.package.conf -fplugin T7702Plugin -package T7702plugin ' + config.plugin_way_flags])
 
-test('T7944', normal, compile, ['-O2'])
+# we omit profasm because it doesn't bring much to the table but
+# introduces its share of complexity, as the test as it is fails with
+# profasm:
+# T7944.hs:7:1: fatal:
+#     Cannot load -prof objects when GHC is built with -dynamic
+#     To fix this, either:
+#       (1) Use -fexternal-interpreter, or
+#       (2) Build the program twice: once with -dynamic, and then
+#           with -prof using -osuf to set a different object file suffix.
+test('T7944', omit_ways(['profasm']), compile, ['-O2'])
 test('T7995',
      # RULE doesn't seem to fire unless optimizations are turned on.
      # This seems reasonable, so I've required it for the test. -- EZY 20130720
@@ -279,7 +288,8 @@ test('T14779b',
 test('T13708', normal, compile, [''])
 
 # thunk should inline here, so check whether or not it appears in the Core
-test('T14137', [ check_errmsg(r'thunk') ], compile, ['-dsuppress-uniques -ddump-simpl'])
+# (we skip profasm because it might not inline there)
+test('T14137', [ check_errmsg(r'thunk'), omit_ways(['profasm']) ], compile, ['-dsuppress-uniques -ddump-simpl'])
 # bar and foo should CSEd here, so check for that in the Core
 test('T14186', [ only_ways(['optasm']), check_errmsg(r'bar = foo') ], compile, ['-ddump-simpl'])
 
@@ -303,4 +313,5 @@ test('T14978',
      ['$MAKE -s --no-print-directory T14978'])
 test('T15002', [ req_profiling ], compile, ['-O -fprof-auto -prof'])
 test('T15005', normal, compile, ['-O'])
-test('T15056', [extra_files(['T15056a.hs'])], multimod_compile, ['T15056', '-O -v0 -ddump-rule-firings'])
+# we omit profiling because it affects the optimiser and makes the test fail
+test('T15056', [extra_files(['T15056a.hs']), omit_ways(['profasm'])], multimod_compile, ['T15056', '-O -v0 -ddump-rule-firings'])
index 4169d7e..4fcf700 100644 (file)
@@ -406,7 +406,9 @@ test('T14869', normal, compile,
     ['-v0 -ddump-splices -dsuppress-uniques ' + config.ghc_th_way_flags])
 test('T14888', normal, compile,
     ['-v0 -ddump-splices -dsuppress-uniques ' + config.ghc_th_way_flags])
-test('T14298', normal, compile_and_run, ['-v0'])
+# There is a phasing issue in the ghci way which prevents us from being
+# able to compile and link the foreign file while compiling the haskell module.
+test('T14298', expect_broken_for(15161, ['ghci']), compile_and_run, ['-v0'])
 test('T14875', normal, compile, ['-v0 -ddump-splices -dsuppress-uniques'])
 test('T14885a', normal, compile, [''])
 test('T14885b', normal, compile, [''])
index 9975e58..193b06f 100644 (file)
@@ -1,2 +1,12 @@
-test('T13949', extra_files(['ASCII.hs', 'PatternGenerator.hs', 'These.hs', 'Tree.hs']),
+# we omit profasm because it doesn't bring much to the table but
+# introduces its share of complexity, as the test as it is fails with
+# profasm:
+# ASCII.hs:1:1: fatal:
+#     Cannot load -prof objects when GHC is built with -dynamic
+#     To fix this, either:
+#       (1) Use -fexternal-interpreter, or
+#       (2) Build the program twice: once with -dynamic, and then
+#           with -prof using -osuf to set a different object file suffix.
+test('T13949', [extra_files(['ASCII.hs', 'PatternGenerator.hs', 'These.hs', 'Tree.hs']),
+               omit_ways(['profasm'])],
      multimod_compile, ['ASCII PatternGenerator These Tree', '-fno-code -v0'])
\ No newline at end of file
index 81e6d5e..2eb42ac 100644 (file)
@@ -1,2 +1,9 @@
-test('T8025', extra_files(['A.hs', 'B.hs']), multimod_compile,
-     ['A B', '-fno-code -v0'])
\ No newline at end of file
+# we omit profasm because it fails with:
+# B.hs:5:5: fatal:
+#     Cannot load -prof objects when GHC is built with -dynamic
+#     To fix this, either:
+#       (1) Use -fexternal-interpreter, or
+#       (2) Build the program twice: once with -dynamic, and then
+#           with -prof using -osuf to set a different object file suffix.
+test('T8025', [extra_files(['A.hs', 'B.hs']), omit_ways(['profasm'])],
+             multimod_compile, ['A B', '-fno-code -v0'])
\ No newline at end of file
index f4f48d2..afba48d 100644 (file)
@@ -597,7 +597,7 @@ test('T14590', normal, compile, ['-fdefer-type-errors -fno-max-valid-substitutio
 # output we expect (T13032.stderr).
 test('T13032', omit_ways(['hpc', 'profasm']), compile, [''])
 test('T14273', normal, compile, ['-fdefer-type-errors -fno-max-valid-substitutions'])
-test('T14732', normal, compile, [''])
+test('T14732', expect_broken_for(15163, ['profasm']), compile, [''])
 test('T14774', [], run_command, ['$MAKE -s --no-print-directory T14774'])
 test('T14763', normal, compile, [''])
 test('T14811', normal, compile, [''])
@@ -605,5 +605,12 @@ test('T14934', [extra_files(['T14934.hs', 'T14934a.hs'])], run_command,
                ['$MAKE -s --no-print-directory T14934'])
 test('T13643', normal, compile, [''])
 test('SplitWD', normal, compile, [''])
-test('T14441', normal, compile, [''])
+# we omit profasm because it fails with:
+# T14441.hs:1:1: fatal:
+#     Cannot load -prof objects when GHC is built with -dynamic
+#     To fix this, either:
+#       (1) Use -fexternal-interpreter, or
+#       (2) Build the program twice: once with -dynamic, and then
+#           with -prof using -osuf to set a different object file suffix.
+test('T14441', omit_ways(['profasm']), compile, [''])
 test('T15050', [expect_broken(15050)], compile, [''])