summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlp Mestanogullari <alp@well-typed.com>2018-05-19 14:00:21 -0400
committerBen Gamari <ben@smart-cactus.org>2018-05-20 11:01:34 -0400
commitc4219d9f7d122a106fc8fb1e5cd9a62dadadf76c (patch)
tree70d63e39967b4691ad2a6dc2ec69e258b5f3fc02
parent9171c7f847bc71770a4bb351c4274069d64cd847 (diff)
downloadhaskell-c4219d9f7d122a106fc8fb1e5cd9a62dadadf76c.tar.gz
Another batch of './validation --slow' tweaks
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
-rw-r--r--libraries/base/tests/all.T3
-rw-r--r--libraries/ghc-compact/tests/all.T5
-rw-r--r--testsuite/tests/cabal/all.T5
-rw-r--r--testsuite/tests/dependent/should_compile/all.T11
-rw-r--r--testsuite/tests/partial-sigs/should_compile/all.T11
-rw-r--r--testsuite/tests/patsyn/should_run/all.T11
-rw-r--r--testsuite/tests/profiling/should_run/all.T6
-rw-r--r--testsuite/tests/rts/all.T10
-rw-r--r--testsuite/tests/simplCore/should_compile/all.T17
-rw-r--r--testsuite/tests/th/all.T4
-rw-r--r--testsuite/tests/th/should_compile/T13949/all.T12
-rw-r--r--testsuite/tests/th/should_compile/T8025/all.T11
-rw-r--r--testsuite/tests/typecheck/should_compile/all.T11
13 files changed, 95 insertions, 22 deletions
diff --git a/libraries/base/tests/all.T b/libraries/base/tests/all.T
index eb00fc37af..88827b328f 100644
--- a/libraries/base/tests/all.T
+++ b/libraries/base/tests/all.T
@@ -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,[''])
diff --git a/libraries/ghc-compact/tests/all.T b/libraries/ghc-compact/tests/all.T
index 0264bab6b2..1f20a4e4ca 100644
--- a/libraries/ghc-compact/tests/all.T
+++ b/libraries/ghc-compact/tests/all.T
@@ -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, [''])
diff --git a/testsuite/tests/cabal/all.T b/testsuite/tests/cabal/all.T
index 82c1b1584b..5f1b308565 100644
--- a/testsuite/tests/cabal/all.T
+++ b/testsuite/tests/cabal/all.T
@@ -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'])
diff --git a/testsuite/tests/dependent/should_compile/all.T b/testsuite/tests/dependent/should_compile/all.T
index 65853169bd..66221840bb 100644
--- a/testsuite/tests/dependent/should_compile/all.T
+++ b/testsuite/tests/dependent/should_compile/all.T
@@ -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, [''])
diff --git a/testsuite/tests/partial-sigs/should_compile/all.T b/testsuite/tests/partial-sigs/should_compile/all.T
index bdfc13d284..d6eaa7727a 100644
--- a/testsuite/tests/partial-sigs/should_compile/all.T
+++ b/testsuite/tests/partial-sigs/should_compile/all.T
@@ -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'])
diff --git a/testsuite/tests/patsyn/should_run/all.T b/testsuite/tests/patsyn/should_run/all.T
index 878a7b07f5..57bc41fc73 100644
--- a/testsuite/tests/patsyn/should_run/all.T
+++ b/testsuite/tests/patsyn/should_run/all.T
@@ -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, [''])
diff --git a/testsuite/tests/profiling/should_run/all.T b/testsuite/tests/profiling/should_run/all.T
index 03332f6097..7904de8991 100644
--- a/testsuite/tests/profiling/should_run/all.T
+++ b/testsuite/tests/profiling/should_run/all.T
@@ -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]
diff --git a/testsuite/tests/rts/all.T b/testsuite/tests/rts/all.T
index a07179a4df..f822873e87 100644
--- a/testsuite/tests/rts/all.T
+++ b/testsuite/tests/rts/all.T
@@ -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'])
diff --git a/testsuite/tests/simplCore/should_compile/all.T b/testsuite/tests/simplCore/should_compile/all.T
index 71743bc654..9a3b8f9629 100644
--- a/testsuite/tests/simplCore/should_compile/all.T
+++ b/testsuite/tests/simplCore/should_compile/all.T
@@ -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'])
diff --git a/testsuite/tests/th/all.T b/testsuite/tests/th/all.T
index 4169d7e202..4fcf700987 100644
--- a/testsuite/tests/th/all.T
+++ b/testsuite/tests/th/all.T
@@ -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, [''])
diff --git a/testsuite/tests/th/should_compile/T13949/all.T b/testsuite/tests/th/should_compile/T13949/all.T
index 9975e58bf3..193b06f67d 100644
--- a/testsuite/tests/th/should_compile/T13949/all.T
+++ b/testsuite/tests/th/should_compile/T13949/all.T
@@ -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
diff --git a/testsuite/tests/th/should_compile/T8025/all.T b/testsuite/tests/th/should_compile/T8025/all.T
index 81e6d5e5fd..2eb42ac740 100644
--- a/testsuite/tests/th/should_compile/T8025/all.T
+++ b/testsuite/tests/th/should_compile/T8025/all.T
@@ -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
diff --git a/testsuite/tests/typecheck/should_compile/all.T b/testsuite/tests/typecheck/should_compile/all.T
index f4f48d27ae..afba48d93e 100644
--- a/testsuite/tests/typecheck/should_compile/all.T
+++ b/testsuite/tests/typecheck/should_compile/all.T
@@ -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, [''])