advancedtelematic / quickcheck-state-machine

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

Generalize parallelism and visualization #324

Closed kderme closed 5 years ago

kderme commented 5 years ago

This replaces https://github.com/advancedtelematic/quickcheck-state-machine/pull/294 which was getting old. I rebased on the last changes and added dot visualization.

stevana commented 5 years ago

Travis CI says stack build --resolver=lts-11 fails when trying to build graphviz:

graphviz                > /tmp/stack5540/graphviz-2999.20.0.3/Data/GraphViz/Printing.hs:348:37: error:
graphviz                >     Ambiguous occurrence ‘<>’
graphviz                >     It could refer to either ‘PP.<>’,
graphviz                >                              imported from ‘Text.PrettyPrint.Leijen.Text.Monadic’ at Data/GraphViz/Printing.hs:(79,1)-(85,68)
graphviz                >                           or ‘Data.Semigroup.<>’,
graphviz                >                              imported from ‘Data.Semigroup’ at Data/GraphViz/Printing.hs:105:24-36
graphviz                >     |
graphviz                > 348 |   unqtDot (BScheme n l) = unqtDot n <> unqtDot l

Can we use an older version or avoid this problem some other way?

stevana commented 5 years ago

Worst case we can also drop lts-11 support, but then we should remove it from .cabal (tested-with and change the base dependency constraint) and .travis.yaml.

kderme commented 5 years ago

I found that graphviz-2999.18.0.1 works on lts-11.0, but not on 13.1. I'm searching if there is any way to conditionally add it.

stevana commented 5 years ago

Another possibility might be to avoid using the graphviz package and emit the dot format directly as a string like we do here.

kderme commented 5 years ago

I added a new stack.yaml for lts-11 and modified the travis command. Hope this will work.