Commit Graph

70 Commits

Author SHA1 Message Date
Michael Walker
7d5df170e7 Do not pass memory model to dependency functions
This is sane because buffered writes can only happen if the MemType
isn't sequential consistency anyway.
2017-11-02 22:15:11 +00:00
Michael Walker
e780c69f80 Impose a dependency between commits and memory barriers
The previous behaviour was unsound.

Fixes #138
2017-11-02 21:37:11 +00:00
Michael Walker
eb73600b39 Add property tests for memory ops 2017-10-31 17:17:27 +00:00
Michael Walker
29b1f28546 Add some property tests
Goes some way to solving #142, but it would be nice to have some for
the memory stuff.
2017-10-30 20:32:00 +00:00
Michael Walker
e099b29597 Remove GHC <7.10 checks from dejafu-tests 2017-10-28 17:26:52 +01:00
Michael Walker
a963822d6c Do not pop exception handlers twice
Fix #139 and #141
2017-10-28 12:21:41 +01:00
Michael Walker
5838a921b7 Add a test case exhibiting #139 2017-10-25 18:47:02 +01:00
Michael Walker
52e6f628c3 Test threadDelay in async tests 2017-10-11 10:25:03 +01:00
Michael Walker
a571368125 Include the exception in UncaughtException
Closes #133
2017-10-11 10:10:48 +01:00
Michael Walker
dddc4b62d6 Reset masking state when entering an exception handler
Fixes #118
2017-09-25 16:17:28 +01:00
Michael Walker
95dceb9670 Add a failing test case for #118 2017-09-25 16:03:49 +01:00
Michael Walker
c769662fa5 Move regression tests to a new module 2017-09-20 20:45:47 +01:00
Michael Walker
6bab3e883d Add some new async tests 2017-09-20 20:06:44 +01:00
Michael Walker
8636fe9708 Remove top-level definitions of individual tests 2017-09-20 20:06:44 +01:00
Michael Walker
fb13d62218 Give test cases more descriptive names 2017-09-20 20:06:44 +01:00
Michael Walker
58ab0e2c2f Use a typeclass to simplify test group definitions 2017-09-19 23:17:02 +01:00
Michael Walker
89728f0040 Whoops, refer to the correct test 2017-09-07 23:37:13 +01:00
Michael Walker
a84368953f Add tests for the ticket casCRef returns 2017-09-06 16:03:28 +01:00
Michael Walker
5087ff8a29 Add more tests for single-threaded MVar operations
Closes #94
2017-09-06 15:44:20 +01:00
Michael Walker
1da31432a8 Add a test case for #111 2017-09-01 13:53:16 +01:00
Michael Walker
26bdb96b25 Add tests for MonadFail exceptions 2017-08-21 18:53:08 +01:00
Michael Walker
b39200ab7e Test case doesn't actually need three preemptions 2017-08-19 15:43:21 +01:00
Michael Walker
305cf27c0b Add a test for discarding 2017-08-10 20:22:03 +01:00
Michael Walker
6bc2fd044f Remove unused imports 2017-06-07 16:59:24 +01:00
Michael Walker
6b1fd17024 Implement uniform random scheduling
Adds a new `uniformly` smart constructor and `sctUniformRandom`
function.

Also renames `sctRandom` to `sctWeightedRandom`.
2017-06-07 16:50:56 +01:00
Michael Walker
1146ce9b38 Add a smart constructor for constructing swarmy executions
The `randomly` constructor now corresponds exactly to the old
`Randomly`.

Also refactor tests a bit.
2017-06-07 16:50:56 +01:00
Michael Walker
fba26e6c73 Make Way abstract and expose smart constructors 2017-06-07 16:50:56 +01:00
Michael Walker
d65b8359a9 Allow re-using the weights for multiple executions in sctRandom 2017-06-07 16:45:43 +01:00
Michael Walker
94e22a765e Add tests for refinement checking
New coverage report, as there have been a bunch of new tests since the
one in the CONTRIBUTING file was generated:

 54% expressions used (4311/7948)
 51% boolean coverage (67/131)
      47% guards (50/106), 31 always True, 6 always False, 19 unevaluated
      57% 'if' conditions (11/19), 2 always True, 1 always False, 5 unevaluated
     100% qualifiers (6/6)
 61% alternatives used (413/671)
 83% local declarations used (212/254)
 28% top-level declarations used (313/1099)
2017-06-07 14:25:55 +01:00
Michael Walker
c11f1d92db Test case for #81.
This is a large diff because it pulls in a variant of QSemN.
2017-05-03 23:09:56 +01:00
Michael Walker
efaf353920 Rename Conc to ConcT and turn into a MonadTrans.
Closes #70.
2017-04-08 20:59:05 +01:00
Michael Walker
d3062234fa Make Way a GADT.
Closes #65.
2017-04-08 20:57:25 +01:00
Michael Walker
0e59d9aa40 Add a basic test for uninterruptible masks.
Closes #76.
2017-03-04 05:36:32 +00:00
Michael Walker
c2f8ffe473 Add some CAS tests.
Closes #75.
2017-03-04 05:28:29 +00:00
Michael Walker
32f6887a1b Add tests for throwing exceptions to the main thread.
Closes #74.
2017-03-04 05:28:29 +00:00
Michael Walker
463efd3f8d Merge "async-dejafu" into "concurrency" + bump versions.
Closes #73.
2017-03-03 22:06:09 +00:00
Michael Walker
95eed7524c Add a test case to replicate issue 71. 2017-02-25 06:01:59 +00:00
Michael Walker
12335e0090 Add tryReadMVar to MonadConc and dejafu.
Also pins the version of "concurrency" that dejafu depends on down to
the third digit, as additions to `MonadConc` will break dejafu.

Closes #62.
2017-02-20 23:42:08 +00:00
Michael Walker
f2c6dc69f3 Add tests for random sctRandom. 2017-02-20 04:41:36 +00:00
Michael Walker
f5bf9da038 Update dejafu-tests for new hunit-dejafu interface. 2017-02-20 03:23:46 +00:00
Michael Walker
8fd3e5900b Messy implementation of subconcurrency.
This makes `stepThread` messier, and doesn't actually prevent nesting
currently - although it does prevent usage when there are multiple
threads, which may be enough.
2017-02-02 12:26:40 +00:00
Michael Walker
75fbad38a1 Rename Deterministic to Conc.
Closes #45
2016-07-21 19:33:49 +01:00
Michael Walker
2f0f51ceb6 Split concurrency modules into a separate package.
The new 'concurrency' package is starting at version 1.0.0.0 because the
API is already very mature (copied from base).

This breaks the dejafu-0.2 compatibility of async-dejafu.

Closes #51.
2016-07-21 19:33:49 +01:00
Michael Walker
2aa2b8f447 Unify IO and ST instances
Closes #44
2016-07-21 19:33:49 +01:00
Michael Walker
c742da2bfd Drop _concKnows stuff and fix litmus tests.
Removing the stuff broke some of the litmus tests, which is bad. It
probably means that those actions were being put into sleep sets, and so
hiding actually interesting interleavings from the POR implementation. I
need to improve the lookahead behaviour to ignore these invisible
actions.

Closes #46.
2016-07-21 19:33:49 +01:00
Michael Walker
70bcad4615 Bump versions for 0.4.0.0 release 2016-07-21 19:33:46 +01:00
Michael Walker
8b35ec9ef7 Propagate read TVars in orElse.
Fixes #55.
2016-07-21 18:53:26 +01:00
Michael Walker
b978476c8b Add a test case for #40. 2016-06-05 23:40:03 +01:00
Michael Walker
232e7e5f40 Bump version numbers 2016-05-26 14:02:07 +01:00
Michael Walker
d4cb712b50 Make everything build with GHC 8 2016-05-26 13:54:13 +01:00