summaryrefslogtreecommitdiff
path: root/testsuite/tests/concurrent
Commit message (Collapse)AuthorAgeFilesLines
* testsuite: disable T367_letnoescape on 'optllvm'Sergei Trofimovich2014-08-281-1/+1
| | | | | | Known Issue #7297 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* testsuite/T9379: Use GHC.Conc instead of Control.Concurrent.STMBen Gamari2014-08-181-1/+3
| | | | | | | | | | | | | | | | | | Summary: `GHC.Conc` provides almost everything we need. Signed-off-by: Ben Gamari <bgamari.foss@gmail.com> Test Plan: make test TEST=T9379 Reviewers: austin, simonmar Reviewed By: austin, simonmar Subscribers: phaskell, simonmar, relrod, ezyang, carter Differential Revision: https://phabricator.haskell.org/D152
* concurrent/should_run/throwto002: DoRec -> RecursiveDoBen Gamari2014-08-181-1/+1
| | | | | | | | | | | | | | Summary: Test case used old extension name; update it. Test Plan: validate Reviewers: austin Reviewed By: austin Subscribers: simonmar, relrod, ezyang, carter Differential Revision: https://phabricator.haskell.org/D161
* interruptible() was not returning true for BlockedOnSTM (#9379)Simon Marlow2014-08-012-0/+19
| | | | | | | | | | | | | | | | | | | Summary: There's an knock-on fix in HeapStackCheck.c which is potentially scary, but I'm pretty confident is OK. See comment for details. Test Plan: I've run all the STM tests I can find, including libraries/stm/tests/stm049 with +RTS -N8 and some of the constants bumped to make it more of a stress test. Reviewers: hvr, rwbarton, austin Subscribers: simonmar, relrod, ezyang, carter Differential Revision: https://phabricator.haskell.org/D104 GHC Trac Issues: #9379
* use GHC-7.8.3's values for thread block reason (fixes #9333)Jost Berthold2014-07-283-1/+46
| | | | | | | | | | | | | | | | | | | | Summary: For now, BlockedOnMVar and BlockedOnMVarRead are not distinguished. Making the distinction would mean to change an exported datatype (API change). Code for this change is included but commented out. The patch adds a test for the threadstatus, which retrieves status BlockedOnMVar for two threads blocked on writing and reading an MVar. Test Plan: ran validate, including the new test Reviewers: simonmar, austin, ezyang Reviewed By: austin, ezyang Subscribers: phaskell, simonmar, relrod, carter Differential Revision: https://phabricator.haskell.org/D83
* Fix test for fetchNandIntArray#Johan Tibell2014-07-231-7/+18
| | | | | The test was incorrectly testing that NAND is associative, which it isn't.
* Re-add more primops for atomic ops on byte arraysJohan Tibell2014-06-303-0/+253
| | | | | | | | | | | | | | | | | | | | | | | This is the second attempt to add this functionality. The first attempt was reverted in 950fcae46a82569e7cd1fba1637a23b419e00ecd, due to register allocator failure on x86. Given how the register allocator currently works, we don't have enough registers on x86 to support cmpxchg using complicated addressing modes. Instead we fall back to a simpler addressing mode on x86. Adds the following primops: * atomicReadIntArray# * atomicWriteIntArray# * fetchSubIntArray# * fetchOrIntArray# * fetchXorIntArray# * fetchAndIntArray# Makes these pre-existing out-of-line primops inline: * fetchAddIntArray# * casIntArray#
* Simplify .gitignore filesHerbert Valerio Riedel2014-06-281-6/+0
| | | | | | | | | It's a bit confusing to have .gitignore files spread all over the filesystem. This commit tries to consolidate those into one .gitignore file per component. Moreover, we try to describe files to be ignored which happen to have a common identifying pattern by glob patterns. Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
* Revert "Add more primops for atomic ops on byte arrays"Johan Tibell2014-06-264-254/+0
| | | | | | | | This commit caused the register allocator to fail on i386. This reverts commit d8abf85f8ca176854e9d5d0b12371c4bc402aac3 and 04dd7cb3423f1940242fdfe2ea2e3b8abd68a177 (the second being a fix to the first).
* Add more primops for atomic ops on byte arraysJohan Tibell2014-06-244-0/+254
| | | | | | | | | | | | | | | | | | | Summary: Add more primops for atomic ops on byte arrays Adds the following primops: * atomicReadIntArray# * atomicWriteIntArray# * fetchSubIntArray# * fetchOrIntArray# * fetchXorIntArray# * fetchAndIntArray# Makes these pre-existing out-of-line primops inline: * fetchAddIntArray# * casIntArray#
* Fix missing unlockClosure() call in tryReadMVar (#9148)Simon Marlow2014-05-302-0/+16
|
* Add .gitignore for autogenerated test files.Edward Z. Yang2014-05-291-0/+6
| | | | | | | | I used this shell command to automatically generate the lists: for i in `git ls-files -o --exclude-standard --directory`; do echo "`basename $i`" >> "`dirname "$i"`/.gitignore"; done Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
* Revert "Per-thread allocation counters and limits"Simon Marlow2014-05-048-82/+0
| | | | | | | | Problems were found on 32-bit platforms, I'll commit again when I have a fix. This reverts the following commits: 54b31f744848da872c7c6366dea840748e01b5cf b0534f78a73f972e279eed4447a5687bd6a8308e
* Per-thread allocation counters and limitsSimon Marlow2014-05-028-0/+82
| | | | | | | | | | | | | | | | | | | | | | | This tracks the amount of memory allocation by each thread in a counter stored in the TSO. Optionally, when the counter drops below zero (it counts down), the thread can be sent an asynchronous exception: AllocationLimitExceeded. When this happens, given a small additional limit so that it can handle the exception. See documentation in GHC.Conc for more details. Allocation limits are similar to timeouts, but - timeouts use real time, not CPU time. Allocation limits do not count anything while the thread is blocked or in foreign code. - timeouts don't re-trigger if the thread catches the exception, allocation limits do. - timeouts can catch non-allocating loops, if you use -fno-omit-yields. This doesn't work for allocation limits. I couldn't measure any impact on benchmarks with these changes, even for nofib/smp.
* concurrent/conc012: Pass RTS options to executable, not ghcBen Gamari2013-10-091-1/+3
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* Mark those tests which depend on libraries not built when cross-compilingReid Barton2013-10-011-1/+1
| | | | | | Issue #8393 Signed-off-by: Austin Seipp <austin@well-typed.com>
* Update compareAndSwap for new comparison primopsReid Barton2013-09-301-2/+2
|
* Deal with failures for T367, T367_letnoescape under ghciReid Barton2013-09-301-2/+2
| | | | | | | | | | These tests had a very short timeout (0.3 s). With WAY=ghci, the time ghci takes to start up and compile the test modules is counted in this timeout, and that causes the tests to fail. T367 really needs the very short timeout, so this commit disables the ghci way for T367. T367_letnoescape can handle any timeout, so I bumped up the timeout to 6 s to give ghci time to start up.
* Update casArray# test and add simple casMutVar# test.Ryan Newton2013-08-212-2/+44
|
* Omit hpc for CAS test. HPC breaks CAS currently.Ryan Newton2013-08-211-1/+1
|
* Add a basic test for casArray#.Ryan Newton2013-08-213-0/+48
|
* Add output for T7970, make it run when 'fast', and remove bogus fileSimon Marlow2013-07-243-3/+6
|
* Rename atomicReadMVar and friends to readMVar.Edward Z. Yang2013-07-145-14/+10
| | | | Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
* Add simple test for tryAtomicReadMVar.Edward Z. Yang2013-07-102-0/+12
| | | | Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
* Tests for atomicReadMVar.Edward Z. Yang2013-07-094-0/+52
| | | | Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
* conc031 now deadlocks, due to fix for #7970Simon Marlow2013-07-023-3/+2
| | | | We decided that fixing #7970 is more important.
* Add test for #7970Simon Marlow2013-07-023-0/+23
|
* unbreak tests (removal of block/unblock)Simon Marlow2013-05-109-19/+17
|
* The "unblock" was important hereSimon Marlow2013-02-201-3/+3
| | | | Because catch implicitly masks the exception handler.
* small tidyupSimon Marlow2013-02-201-2/+2
|
* use unsafeUnmask instead of an IORef containing restoreSimon Marlow2013-02-201-2/+3
| | | | | This is much closer to how the test originally worked, so it's more likely that the test is still testing what it was testing before :-)
* Revert "Update T3279 to use mask rather than block"Simon Marlow2013-02-201-14/+8
| | | | This reverts commit a6d80ce5fb2211af8dafc425705fefb316702802.
* Follow the removal of blocked in baseIan Lynagh2013-02-192-5/+5
|
* Update a few more tests to use mask rather than block/unblockIan Lynagh2013-02-193-8/+8
|
* Update a couple of tests to use mask rather than block/unblockIan Lynagh2013-02-192-4/+4
|
* Update T3279 to use mask rather than blockIan Lynagh2013-02-191-8/+14
| | | | | I'm not 100% sure that this is still testing what it's meant to be testing, but the test still passes.
* Fix prog003 after forkOnIO was removedIan Lynagh2013-02-171-4/+4
|
* Follow the unsafePerformIO change in baseIan Lynagh2013-02-172-0/+2
|
* mask002: Follow changes in baseIan Lynagh2013-02-161-3/+5
|
* Remove uses of compose(s) in tests, and change how composition is handledIan Lynagh2013-02-141-19/+18
| | | | The driver now also supports nested lists of setup functions
* More helper conversionsIan Lynagh2013-02-115-6/+6
|
* Convert more helper functionsIan Lynagh2013-02-111-1/+1
|
* Replace 'if_os' and 'unless_os' with 'opsys'Ian Lynagh2013-02-111-2/+2
| | | | The name 'os' clashes with a python library
* Pass the test name to the test optionsIan Lynagh2013-02-071-1/+1
| | | | | | | | This allows them to give framework failures. I also had to change how setTestOpts works. Now, rather than applying the options to the directory's "default options", it just stores the options to be applied for each test (i.e. once we know the test name).
* Tidy up some testsIan Lynagh2013-02-031-1/+1
| | | | | We now use pre_cmd rather than cmd_prefix wherever possible. Also, pass "-s --no-print-directory" whenever we use pre_cmd.
* Rename some numeric tests: nnnn -> TnnnnIan Lynagh2013-01-254-2/+2
|
* Rename some numeric tests: nnnn -> TnnnnIan Lynagh2013-01-2532-23/+23
|
* Tweak #367 tests to use -fno-omit-yields and expect passes.Edward Z. Yang2012-09-261-2/+2
| | | | Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
* Add support for per-test timeout adjustment (timeout_multiplier), and ↵Edward Z. Yang2012-09-251-2/+2
| | | | | | tighten up #367 test. Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
* Failing (by timeout) tests for #367.Edward Z. Yang2012-09-245-0/+39
| | | | Signed-off-by: Edward Z. Yang <ezyang@mit.edu>