summaryrefslogtreecommitdiff
path: root/testsuite/tests/concurrent/should_run/all.T
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests/concurrent/should_run/all.T')
-rw-r--r--testsuite/tests/concurrent/should_run/all.T200
1 files changed, 200 insertions, 0 deletions
diff --git a/testsuite/tests/concurrent/should_run/all.T b/testsuite/tests/concurrent/should_run/all.T
new file mode 100644
index 0000000000..cdcbd6da68
--- /dev/null
+++ b/testsuite/tests/concurrent/should_run/all.T
@@ -0,0 +1,200 @@
+# -----------------------------------------------------------------------------
+# These tests we do even for 'make fast'
+
+test('conc003', normal, compile_and_run, [''])
+test('conc006', normal, compile_and_run, [''])
+test('conc027', normal, compile_and_run, [''])
+test('conc051', normal, compile_and_run, [''])
+
+if ('threaded1' in config.run_ways):
+ only_threaded_ways = only_ways(['ghci','threaded1','threaded2'])
+else:
+ only_threaded_ways = skip
+
+test('conc069', only_threaded_ways, compile_and_run, [''])
+test('conc069a', only_threaded_ways, compile_and_run, [''])
+# this test gives slightly different results for non-threaded ways, so omit
+# those for now.
+test('conc070', only_threaded_ways, compile_and_run, [''])
+
+test('conc071', omit_ways(['threaded2']), compile_and_run, [''])
+test('conc072', only_ways(['threaded2']), compile_and_run, [''])
+
+test('1980', normal, compile_and_run, [''])
+test('2910', normal, compile_and_run, [''])
+test('2910a', normal, compile_and_run, [''])
+test('3279', normal, compile_and_run, [''])
+
+# This test takes a long time with the default context switch interval
+test('3429', extra_run_opts('+RTS -i0.001 -RTS'), compile_and_run, [''])
+
+# without -O, goes into an infinite loop
+# GHCi cannot deterct the infinite loop, because the thread is always reachable
+# (see also conc033 and others). We should really fix this.
+test('4030', omit_ways('ghci'), compile_and_run, ['-O'])
+
+# each of these runs for about a second
+test('throwto001', [reqlib('random'), extra_run_opts('1000 2000')],
+ compile_and_run, [''])
+test('throwto002', [reqlib('random'), ignore_output], compile_and_run, [''])
+test('throwto003', normal, compile_and_run, [''])
+
+test('mask001', normal, compile_and_run, [''])
+# ghci does not generate the BlockedIndefinitely exceptions, so omit:
+test('mask002', omit_ways(['ghci']), compile_and_run, [''])
+
+test('async001', normal, compile_and_run, [''])
+
+test('numsparks001', only_ways(['threaded1']), compile_and_run, [''])
+
+test('4262', [ skip, # skip for now, it doesn't give reliable results
+ only_ways(['threaded1']),
+ unless_os('linux',skip),
+ if_compiler_lt('ghc', '7.1', expect_fail) ],
+ compile_and_run, [''])
+
+test('4813', normal, compile_and_run, [''])
+test('4811', normal, compile_and_run, [''])
+
+test('allowinterrupt001', normal, compile_and_run, [''])
+
+# -----------------------------------------------------------------------------
+# These tests we only do for a full run
+
+def f( opts ):
+ if config.fast:
+ opts.skip = 1
+
+setTestOpts(f)
+
+test('conc001', normal, compile_and_run, [''])
+test('conc002', normal, compile_and_run, [''])
+
+# Omit GHCi way - it blows up to 0.5G. Something to do with the threaded RTS?
+test('conc004', omit_ways(['ghci']), compile_and_run, [''])
+
+test('conc007', compose(only_compiler_types(['ghc']),
+ extra_run_opts('+RTS -H128M -RTS')),
+ compile_and_run, [''])
+test('conc008', only_compiler_types(['ghc']), compile_and_run, [''])
+test('conc009', compose(only_compiler_types(['ghc']), exit_code(1)),
+ compile_and_run, [''])
+test('conc010', only_compiler_types(['ghc']), compile_and_run, [''])
+
+# conc012(ghci) needs a smaller stack, or it takes forever
+test('conc012', normal, compile_and_run, ['+RTS -K8m -RTS'])
+
+test('conc013', only_compiler_types(['ghc']), compile_and_run, [''])
+
+test('conc014', only_compiler_types(['ghc']), compile_and_run, [''])
+test('conc015', only_compiler_types(['ghc']), compile_and_run, [''])
+test('conc015a', only_compiler_types(['ghc']), compile_and_run, [''])
+test('conc016', [ omit_ways(['threaded2']), # see comment in conc016.hs
+ only_compiler_types(['ghc']) ], compile_and_run, [''])
+test('conc017', only_compiler_types(['ghc']), compile_and_run, [''])
+test('conc017a', only_compiler_types(['ghc']), compile_and_run, [''])
+test('conc018', only_compiler_types(['ghc']), compile_and_run, [''])
+test('conc019', compose(only_compiler_types(['ghc']),
+ extra_run_opts('+RTS -K16m -RTS')),
+ compile_and_run, [''])
+test('conc020', only_compiler_types(['ghc']), compile_and_run, [''])
+test('conc021', compose(omit_ways(['ghci']), exit_code(1)),
+ compile_and_run, [''])
+test('conc022', only_compiler_types(['ghc']), compile_and_run, [''])
+
+# On Windows, the non-threaded RTS creates a real OS thread for each
+# threadDelay. conc023 creates 5000 concurrent threadDelays, and the
+# resulting creation of OS threads seems to cause the system to run
+# out of memory sometimes (I'm not sure exactly how/why this happens,
+# but the threaded RTS fixes it). See #1197.
+if config.platform == 'i386-unknown-mingw32':
+ conc023_ways = only_ways(['threaded1','threaded2'])
+else:
+ conc023_ways = normal
+
+test('conc023', composes([skip_if_fast,
+ only_compiler_types(['ghc']),
+ conc023_ways]), compile_and_run, [''])
+
+test('conc024', only_compiler_types(['ghc']), compile_and_run, [''])
+test('conc025', normal, compile_and_run, [''])
+test('conc026', only_compiler_types(['ghc']), compile_and_run, [''])
+test('conc028', normal, compile_and_run, [''])
+test('conc029', normal, compile_and_run, [''])
+test('conc030', compose(only_compiler_types(['ghc']),
+ extra_run_opts('+RTS -K4M -RTS')),
+ compile_and_run, [''])
+
+test('conc031', normal, compile_and_run, [''])
+
+test('conc032', only_compiler_types(['ghc']), compile_and_run, [''])
+
+# Omit for GHCi, because it just sits there waiting for you to press ^C
+test('conc033', omit_ways(['ghci']), compile_and_run, [''])
+
+# Omit for GHCi, because it just sits there waiting for you to press ^C
+test('conc034', compose(only_compiler_types(['ghc']),
+ compose(omit_ways(['ghci']),
+ extra_run_opts('+RTS -C0 -RTS'))),
+ compile_and_run, [''])
+
+test('conc035', only_compiler_types(['ghc']), compile_and_run, [''])
+
+# Omit for GHCi: firstly GHCi doesn't have unsafe FFI calls, and secondly
+# the main thread cannot receive the deadlock exception because it can be
+# woken up by ^C.
+# Omit for threaded2: this test is really bogus and fails to do anything
+# sensible for more than one CPU.
+test('conc036', compose(skip_if_fast,
+ compose(omit_ways(['ghci','threaded2']),
+ only_compiler_types(['ghc']))), compile_and_run, [''])
+# Interrupting foreign calls only makes sense if we are threaded
+test('foreignInterruptible', composes([skip_if_fast,
+ only_threaded_ways,
+ only_compiler_types(['ghc'])]), compile_and_run, [''])
+
+test('conc037', only_ways(['threaded1','threaded2']), compile_and_run, [''])
+test('conc038', only_ways(['threaded1','threaded2']), compile_and_run, [''])
+
+# Omit for GHCi, uses foreign export
+# Omit for the threaded ways, because in this case the main thread is allowed to
+# complete, which causes the child thread to be interrupted.
+test('conc039', omit_ways(['ghci','threaded1','threaded2','profthreaded']), compile_and_run, [''])
+
+# Omit for GHCi, uses foreign export
+test('conc040', compose(only_compiler_types(['ghc']),
+ compose(exit_code(1),
+ omit_ways(['ghci']))),
+ compile_and_run, [''])
+
+# STM-related tests.
+test('conc041', only_compiler_types(['ghc']), compile_and_run, [''])
+test('conc042', only_compiler_types(['ghc']), compile_and_run, [''])
+test('conc043', only_compiler_types(['ghc']), compile_and_run, [''])
+test('conc044', only_compiler_types(['ghc']), compile_and_run, [''])
+test('conc045', only_compiler_types(['ghc']), compile_and_run, [''])
+
+test('conc058', only_compiler_types(['ghc']), compile_and_run, [''])
+
+test('conc059',
+ [only_compiler_types(['ghc']),
+ only_ways(['threaded1','threaded2']),
+ compile_cmd_prefix('$MAKE conc059_setup && '),
+ extra_clean(['conc059_c.o'])],
+ compile_and_run,
+ ['conc059_c.c -no-hs-main'])
+
+# This test sometimes just exits successfully
+# when run the threaded2 way. The problem hasn't been diagnosed yet
+test('conc064',
+ exit_code(1),
+ compile_and_run, [''])
+
+test('conc065', ignore_output, compile_and_run, [''])
+test('conc066', ignore_output, compile_and_run, [''])
+test('conc067', ignore_output, compile_and_run, [''])
+
+# omit threaded2, the behaviour of this test is non-deterministic with more
+# than one CPU.
+test('conc068', [ omit_ways('threaded2'), exit_code(1) ], compile_and_run, [''])
+