IntersectMBO / ouroboros-consensus

Implementation of a Consensus Layer for the Ouroboros family of protocols
https://ouroboros-consensus.cardano.intersectmbo.org
Apache License 2.0
34 stars 23 forks source link

Generalize q-s-m framework #795

Open edsko opened 5 years ago

edsko commented 5 years ago

As part of the q-s-m tests for the mock file system we developed an approach to writing q-s-m tests that is documented in http://www.well-typed.com/blog/2019/01/qsm-in-depth/ , and which we then applied to the immutable store, volatile store, the block DB, and the ledger storage. They have some stuff in common, but that is currently not abstracted out. We should try to do that, and possibly get that merged upstream.

mrBliss commented 4 years ago

In the postcondition, don't check for equality but for refinement, e.g., https://github.com/input-output-hk/ouroboros-network/blob/dae680f8e6b0af611c323554c375f50b3bfd5308/ouroboros-consensus/test-storage/Test/Ouroboros/Storage/ChainDB/StateMachine.hs#L432, etc.

dnadales commented 11 months ago

Related https://hackage.haskell.org/package/quickcheck-lockstep