Commit Graph

56 Commits

Author SHA1 Message Date
Michael Walker
039295ef41 Rename CRef to IORef 2018-07-01 12:45:43 +01:00
Michael Walker
20178ef751 Prepare dejafu, hunit-dejafu, and tasty-dejafu release 2018-03-06 17:25:49 +00:00
Michael Walker
89c14ff2f7 Add *WithSettings to Test.Tasty.DejaFu and deprecate *Discard 2018-03-04 12:38:51 +00:00
Michael Walker
c36685b53e Make all settings other than Way and MemType optional 2018-03-04 02:56:08 +00:00
Michael Walker
b61cc71d36 Prepare for tasty-dejafu-1.0.1.0 release 2018-02-13 18:57:19 +00:00
Michael Walker
a366b812d0 Clarify role of discard function in Tasty testDejafusDiscard 2018-02-13 18:45:20 +00:00
Andreas Herrmann
1ad606b6a5 testDejafusDiscard takes a list of predicates 2018-02-13 12:03:42 +01:00
Michael Walker
f310c60bc5 Update copyright years 2017-12-13 07:24:18 +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
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
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
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
fa1836c3a8 Add missing haddock @since annotations 2017-11-30 22:08:38 +00:00
Michael Walker
417415937a Add testPropertyFor to {hunit,tasty}-dejafu
Closes #159
2017-11-30 21:40:25 +00:00
Michael Walker
a0801d65eb Fix new hlint warnings 2017-11-20 19:25:48 +00:00
Michael Walker
fa7d4bf445 Use MIN_TOOL_VERSION_ghc rather than __GLASGOW_HASKELL_ 2017-10-28 17:26:52 +01:00
Michael Walker
4d05ef6798 Release 2017-08-10 21:51:11 +01:00
Michael Walker
b99caea84c Expose discard functions from Test.Tasty.DejaFu 2017-08-10 16:55:06 +01:00
Michael Walker
a0a5a493d5 Bump versions for release 2017-06-07 17:09:01 +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
748a55d813 Re-export Test.DejaFu.Refinement from Test.DejaFu 2017-06-07 14:25:55 +01:00
Michael Walker
e785e51ddc Expose refinement properties in hunit-dejafu and tasty-dejafu 2017-06-07 14:20:04 +01:00
Michael Walker
2d97030abe tasty-dejafu-0.5.0.0 2017-04-08 21:18:20 +01:00
Michael Walker
d3062234fa Make Way a GADT.
Closes #65.
2017-04-08 20:57:25 +01:00
Michael Walker
9c33eff1f7 Add Haddock @since annotations to everything in dejafu/hunit/tasty 2017-04-08 20:21:22 +01:00
Michael Walker
cc27e03d6d Use stylish-haskell to format import lists. 2017-04-08 05:42:25 +01:00
Michael Walker
5cd55a1921 Add an HLint2 config file & fix warnings. 2017-04-08 05:42:25 +01:00
Michael Walker
fdc0190d25 Expose Way in tasty-dejafu.
Finally bump the minimum version of dejafu in tasty-dejafu too!
2017-02-20 03:17:22 +00:00
Michael Walker
5accde895e Specialise types in 'Test.DPOR.Internal' and rename.
This breaks backwards compatibility, as things which were polymorphic
are no longer.
2016-12-05 07:36:00 +00:00
Michael Walker
e1162dc033 Add missing module headers to {hunit,tasty}-dejafu. 2016-08-26 11:16:59 +01:00
Michael Walker
75fbad38a1 Rename Deterministic to Conc.
Closes #45
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
d4cb712b50 Make everything build with GHC 8 2016-05-26 13:54:13 +01:00
Michael Walker
f4bcf51709 Add IsTest and IsOption instances to tasty-dejafu 2016-04-28 23:18:17 +01:00
Michael Walker
3334928acf Make tasty-dejafu work with 0.2 and 0.3 2016-04-28 17:09:46 +01:00
Michael Walker
539be21df5 Make tasty-dejafu work with new Trace type 2016-04-03 05:48:53 +01:00
Michael Walker
5acab89d6d Add support for named threads in testing.
This is such a huge change because I had made a LOT of assumptions
about thread IDs being numbers. I also took the opportunity to do
a bit of refactoring with CRef and CVar identifiers.
2016-02-09 18:37:50 +00:00
Michael Walker
5371e74ff0 Make PFL bounding the default 2015-11-30 22:06:43 +00:00
Michael Walker
49a903c6e3 Add newtype for preemption bounds and fair bounds 2015-11-17 19:29:35 +00:00
Michael Walker
24faa57f29 Only show representative failures in autocheck 2015-11-12 14:56:32 +00:00
Michael Walker
06a63dcc33 Merge Conc and ConcIO implementations 2015-11-07 18:07:10 +00:00
Michael Walker
5f78dc5b99 Remove the 't' type parameter from STMIO and ConcIO 2015-11-07 17:19:40 +00:00