advancedtelematic / quickcheck-state-machine

Test monadic programs using state machine based models
Other
203 stars 25 forks source link

simplify: impossible, because of the structure of linearise #318

Closed kderme closed 5 years ago

kderme commented 5 years ago

It appeared when a project threw an exception

kderme commented 5 years ago

The failing example is pretty simple

ParallelCommands {prefix = Commands {unCommands = 
[Command Cmd1 Resp1 []]}, suffixes = []}

The history is

History {unHistory = [(Pid {unPid = 0},Invocation Cmd1),
(Pid {unPid = 0},Exception "failed")]}

and the counterexample is ExistsC [] []

The issue is that interleavings fails to find a Response for the first Invocation and returns an empty list, so simplify fails. A solution could be interleaving to search for exceptions?

stevana commented 5 years ago

Possibly also related to #311.