Commit Graph

976 Commits

Author SHA1 Message Date
Michael Walker
d3419845d3 Split Test.DejaFu.SCT.Internal up 2017-12-13 07:24:18 +00:00
Michael Walker
4a4baec1d9 Be explicit about bound threads in test execution in docs 2017-12-13 07:24:18 +00:00
Michael Walker
ade267c166 Record the result in IsCurrentThreadBound 2017-12-13 07:24:18 +00:00
Michael Walker
a3954f3179 Add a migration guide
Closes #149
2017-12-13 07:24:18 +00:00
Michael Walker
32016d4e64 More docs tweaks 2017-12-13 07:24:18 +00:00
Michael Walker
e36b72dd51 Fix a name shadowing warning 2017-12-13 07:24:18 +00:00
Michael Walker
45117b0655 Remove an unused import 2017-12-13 07:24:18 +00:00
Michael Walker
d570f524a1 Do not export _other from Test.DejaFu.Types 2017-12-13 07:24:18 +00:00
Michael Walker
dfd9017861 Do not export Decision, NonEmpty, tidOf, or decisionOf from Schedule 2017-12-13 07:24:18 +00:00
Michael Walker
f310c60bc5 Update copyright years 2017-12-13 07:24:18 +00:00
Michael Walker
cdbf30dec3 Do not include the current thread in trace lists of alternatives
Closes #121
2017-12-13 07:24:18 +00:00
Michael Walker
c1046268e8 Reduce code duplication in *Id types
Closes #137
2017-12-13 07:24:18 +00:00
Michael Walker
4ae16eab64 Make Test.DejaFu.STM an internal module 2017-12-12 14:07:22 +00:00
Michael Walker
81bcb5a351 Split up Test.DejaFu.Common 2017-12-12 14:07:22 +00:00
Michael Walker
5ee2590f0e Rework docs
Closes #146
Closes #147
Closes #156
2017-12-12 14:07:22 +00:00
Michael Walker
988032c9a2 Replace "alwaysTrue2" with "alwaysSameOn" and "alwaysSameBy" 2017-12-12 14:07:22 +00:00
Michael Walker
a30e1617b9 Do not wait for interference thread to terminate 2017-12-12 14:07:22 +00:00
Michael Walker
020e3967f7 Change order of arguments to test functions
1. Discard function (if present)
2. Way              (if present)
3. Memory type      (if present)
4. Name of test
5. Predicate
6. Action

For multi-predicate functions, 4 and 5 are replaced with a list.
2017-12-12 14:07:22 +00:00
Michael Walker
3a534f70fa Add helpers to lift Maybe functions to ProPredicates 2017-12-12 14:07:22 +00:00
Michael Walker
6644bf76ef Remove _casesChecked from Result
It's now almost meaningless how many cases were examined before
finding a failure given that, ideally, only failures will be returned
at all.
2017-12-12 14:07:22 +00:00
Michael Walker
db95dde7df Give predicates discard functions 2017-12-12 14:07:22 +00:00
Michael Walker
6eaae0a589 Wrap predicate functions in a newtype & separate ty params
Also adds a Functor and Profunctor instance for predicates.  The old
predicate type is kept as an alias for the (common) case where both
tyvars are the same.
2017-12-12 14:07:22 +00:00
Michael Walker
3348c4705c Add bound-thread async function variants 2017-12-12 14:06:59 +00:00
Michael Walker
45256193c0 Implement bound threads
This also adds forkOS(N) and isCurrentThreadBound to MonadConc, a
breaking change.

Note: forkOSWithUnmask(N) is NOT added to MonadConc, as it isn't
supported in base-4.8 (GHC 7.10).  See #132 for the action on this.

A bound thread under test gets a dedicated worker thread, which is
forked bound using the underlying MonadConc.  This worker is used for
all lifted actions, with execution as normal otherwise.
2017-12-12 14:06:59 +00:00
Michael Walker
31d29c11ea Require a 'MonadConc n' instance to run 'ConcT r n' expressions
This is preparation for adding bound threads.  The instance isn't used
in this commit, but the diff is large enough that I feel this should
be a separate commit for ease of review.

Fallout:

- The MonadBaseControl IO instance is gone, as I'm not sure how to do
  it generally.
- The pure/IO split is gone, everything is now monadic.
- The execution, SCT, and dejafu functions are of the form (MonadConc
  n, MonadRef r n) => ...
2017-12-12 14:06:59 +00:00
Michael Walker
99cae72b42 Pick version numbers for next-supermajor release 2017-12-12 14:06:59 +00:00
Michael Walker
0c8e387339 dejafu-0.9.1.2 release 2017-12-12 13:51:34 +00:00
Michael Walker
94dfe4b61a Update leancheck dependency 2017-12-12 13:50:35 +00:00
Michael Walker
8c2bf9d784 dejafu-0.9.1.1 release 2017-12-08 14:25:10 +00:00
Michael Walker
4791333dc0 Reduce default number of quickcheck tests in dejafu-tests 2017-12-08 14:21:51 +00:00
Michael Walker
455a0f4ba7 Fix depstate being one step out of sync in backtracking
Fixes #161
2017-12-08 14:21:51 +00:00
Michael Walker
be64ba90ab Add weeder exclude rules for optional dependencies 2017-12-08 14:20:39 +00:00
Michael Walker
d750342c77 hunit-dejafu-0.7.1.1 and tasty-dejafu-0.7.1.1 releases 2017-11-30 22:08:56 +00:00
Michael Walker
fa1836c3a8 Add missing haddock @since annotations 2017-11-30 22:08:38 +00:00
Michael Walker
82966c43f3 hunit-dejafu-0.7.1.0 and tasty-dejafu-0.7.1.0 releases 2017-11-30 21:43:12 +00:00
Michael Walker
417415937a Add testPropertyFor to {hunit,tasty}-dejafu
Closes #159
2017-11-30 21:40:25 +00:00
Michael Walker
e2a8882764 concurrency-1.2.3.0 release 2017-11-30 21:25:51 +00:00
Michael Walker
e408dcb40b Add named-thread variants of the 'withAsync*' functions
Closes #148
2017-11-30 21:22:46 +00:00
Michael Walker
2fa165ac6f dejafu-0.9.1.0 release 2017-11-26 22:41:54 +00:00
Michael Walker
c88ec04ec2 Display pre-emptions following a yield with a lower-case "p"
Fixes #109
2017-11-26 22:24:13 +00:00
Michael Walker
e9a64a1f8d Add missing MonadFail instances (when base >=4.9) for ConcT/STM
Closes #136
2017-11-25 23:40:08 +00:00
Michael Walker
a0801d65eb Fix new hlint warnings 2017-11-20 19:25:48 +00:00
Michael Walker
7aa407df47 Remove accidentally committed file 2017-11-20 19:25:48 +00:00
Michael Walker
743dcad20d Travis improvements
- separate build matrix entry for style checks
- run stylish-haskell
- use `stack --no-terminal`
- improve folding

Closes #151
Closes #152
2017-11-20 19:25:48 +00:00
Michael Walker
9354282ee5 Fix some incorrect "@since" haddock comments 2017-11-07 14:21:23 +00:00
Michael Walker
b0fb55a50e dejafu-0.9.0.3 release 2017-11-06 01:10:52 +00:00
Michael Walker
4437baf672 concurrency-1.2.2.0 release 2017-11-05 01:53:22 +00:00
Michael Walker
77c708014d Add IsConc and IsSTM types 2017-11-05 01:47:30 +00:00
Michael Walker
74b1c2c996 Use underlying monad for modifyCRefCAS_ transformer instances 2017-11-05 01:33:43 +00:00
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