diff options
Diffstat (limited to 'testsuite/tests/rts/all.T')
-rw-r--r-- | testsuite/tests/rts/all.T | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/testsuite/tests/rts/all.T b/testsuite/tests/rts/all.T new file mode 100644 index 0000000000..0b37ed19e4 --- /dev/null +++ b/testsuite/tests/rts/all.T @@ -0,0 +1,117 @@ +test('testblockalloc', compose(c_src, + compose(only_ways(['normal','threaded1']), + extra_run_opts('+RTS -I0'))), + compile_and_run, ['']) + + +# See bug #101, test requires +RTS -c (or equivalently +RTS -M<something>) +# only GHCi triggers the bug, but we run the test all ways for completeness. +test('bug1010', normal, compile_and_run, ['+RTS -c -RTS']) +test('derefnull', + composes([ + # LLVM Optimiser considers dereference of a null pointer + # undefined and marks the code as unreachable which means + # that later optimisations remove it altogether. + omit_ways(['optllvm']), + # SIGSEGV on Linux (which we make the default) + exit_code(139), + # Apparently the output can be different on different + # Linux setups, so just ignore it. As long as we get + # the right exit code we're OK. + if_os('linux', ignore_output), + # SIGBUS on OX X (PPC and x86 only; amd64 gives SEGV) + if_platform('i386-apple-darwin', exit_code(138)), + if_platform('powerpc-apple-darwin', exit_code(138)), + if_platform('i386-unknown-mingw32', exit_code(1))]), + compile_and_run, ['']) +test('divbyzero', + composes([ + # SIGFPE on Linux + exit_code(136), + # Apparently the output can be different on different + # Linux setups, so just ignore it. As long as we get + # the right exit code we're OK. + if_os('linux', ignore_output), + if_platform('i386-unknown-mingw32', exit_code(1))]), + compile_and_run, ['']) + +test('outofmem', normal, run_command, ['$MAKE -s --no-print-directory outofmem']) +test('outofmem2', extra_run_opts('+RTS -M5m -RTS'), + run_command, ['$MAKE -s --no-print-directory outofmem2']) + +test('2047', compose(ignore_output, extra_run_opts('+RTS -c -RTS')), + compile_and_run, ['-package containers']) + +# Blackhole-detection test. +# Skip GHCi due to #2786 +test('2783', [ omit_ways(['ghci']), exit_code(1) ], compile_and_run, ['']) + +# Test the work-stealing deque implementation. We run this test in +# both threaded1 (-threaded -debug) and threaded2 (-threaded) ways. +test('testwsdeque', [unless_in_tree_compiler(skip), + c_src, only_ways(['threaded1', 'threaded2'])], + compile_and_run, ['-I../../../rts']) + +test('3236', [c_src, only_ways(['normal','threaded1']), exit_code(1)], compile_and_run, ['']) + +test('stack001', extra_run_opts('+RTS -K32m -RTS'), compile_and_run, ['']) +test('stack002', extra_run_opts('+RTS -K32m -k4m -RTS'), compile_and_run, ['']) + +# run this test with very small stack chunks to exercise the stack +# overflow/underflow machinery. +test('stack003', [ omit_ways('ghci'), # uses unboxed tuples + extra_run_opts('500000 +RTS -kc1k -kb100 -K96m -RTS') ], + compile_and_run, ['']) + +test('atomicinc', [ c_src, only_ways(['normal']) ], compile_and_run, ['']) + +test('3424', # it's slow: + [ skip_if_fast, only_ways(['normal','threaded1','ghci']) ], + compile_and_run, ['']) + +# Test for out-of-range heap size +test('rtsflags001', [ only_ways(['normal']), exit_code(1), extra_run_opts('+RTS -H0m -RTS') ], compile_and_run, ['']) + +# Test to see if linker scripts link properly to real ELF files +test('T2615', + [ if_platform('i386-unknown-mingw32',skip), + # OS X doesn't seem to support linker scripts + if_os('darwin', skip), + # Solaris' linker does not support GNUish linker scripts + if_os('solaris2', skip), + cmd_prefix('$MAKE T2615-prep && ' + + # Add current directory to dlopen search path + 'LD_LIBRARY_PATH=$LD_LIBRARY_PATH:. '), + extra_clean(['libfoo_T2615.so'])], + compile_and_run, + ['-package ghc']) + +# omit dyn and profiling ways, because we don't build dyn_l or p_l +# variants of the RTS by default +test('traceEvent', [ omit_ways(['dyn'] + prof_ways), + extra_run_opts('+RTS -ls -RTS') ], + compile_and_run, ['-eventlog']) + +test('T4059', normal, run_command, ['$MAKE -s --no-print-directory T4059']) + +# Test for #4274 +test('exec_signals', [ + if_platform('i386-unknown-mingw32',skip), + cmd_prefix('$MAKE exec_signals-prep && ./exec_signals_prepare'), + extra_clean(['exec_signals_child', 'exec_signals_prepare']) + ], compile_and_run, ['']) + +test('return_mem_to_os', normal, compile_and_run, ['']) + +test('4850', extra_clean(['4850.o','4850.hi','4850']), + run_command, ['$MAKE -s --no-print-directory 4850']) + +def config_5250(opts): + if not (config.arch in ['i386','x86_64']): + opts.skip = 1; + +test('5250', [ config_5250, + extra_clean(['spalign.o']), + omit_ways(['ghci']) ], + compile_and_run, ['spalign.c']) + |