input-output-hk / input-output-hk/quickcheck-dynamic
No shrinking happening when checking a DL formula
- Dominant language
- Haskell
- Stars
- 35
- Forks
- 10
- PR merge metrics
- No merged PRs in 30d
Description
I am surprised by the fact I don't see any trace of shrinking happening with some property I am checking, although I implemented `shrinkAction`. `precondition = const True`
Here is the DL property I am checking:
```
accept_all_non_conflicting_txs :: DL MempoolModel ()
accept_all_non_conflicting_txs = do
anyActions_
getModelStateDL >>= \case
MempoolModel{transactions} ->
eventually (HasValidatedTxs transactions)
_ -> pure ()
where
eventually a = action (Wait 10) >> action a
```
and the resulting failure:
```
ouroboros-consensus
Mempool
Mempool Model
eventually accepts all non-conflicting txs: FAIL
*** Failed! Assertion failed (after 8 tests):
DLScript
[Do $ Var 0 := InitMempool (MempoolAndModelParams {immpInitialState = TestLedger {lastAppliedPoint = At (Block {blockPointSlot = SlotNo 14, blockPointHash = (testHashFromList [15,14,26,6,21,4])}), payloadDependentState = TestL
edgerState {availableTokens = fromList [Token {unToken = 4},Token {unToken = 5},Token {unToken = 7}]}}, immpLedgerConfig = EraParams {eraEpochSize = EpochSize 100, eraSlotLength = SlotLength 2s, eraSafeZone = StandardSafeZone 20}}),
Do $ Var 1 := AddTxs [Tx {consumed = fromList [Token {unToken = 4},Token {unToken = 7}], produced = fromList [Token {unToken = 1},Token {unToken = 2},Token {unToken = 4},Token {unToken = 5},Token {unToken = 8}]}],
Do $ Var 2 := AddTxs [Tx {consumed = fromList [Token {unToken = 4},Token {unToken = 5}], produced = fromList [Token {unToken = 5},Token {unToken = 6}]}],
Do $ Var 3 := AddTxs [Tx {consumed = fromList [Token {unToken = 1},Token {unToken = 2},Token {unToken = 8}], produced = fromList [Token {unToken = 8}]}],
Do $ Var 4 := AddTxs [Tx {consumed = fromList [Token {unToken = 5}], produced = fromList [Token {unToken = 0},Token {unToken = 1},Token {unToken = 3},Token {unToken = 4}]}],
Do $ Var 5 := AddTxs [Tx {consumed = fromList [Token {unToken = 0},Token {unToken = 8}], produced = fromList [Token {unToken = 2}]}],
Do $ Var 6 := AddTxs [Tx {consumed = fromList [Token {unToken = 1},Token {unToken = 4},Token {unToken = 6}], produced = fromList [Token {unToken = 2},Token {unToken = 3},Token {unToken = 4},Token {unToken = 8}]}],
Do $ Var 7 := AddTxs [Tx {consumed = fromList [Token {unToken = 2}], produced = fromList [Token {unToken = 1},Token {unToken = 3},Token {unToken = 4},Token {unToken = 5}]}],
Do $ Var 8 := Wait 10,
Do $ Var 9 := HasValidatedTxs [Tx {consumed = fromList [Token {unToken = 4},Token {unToken = 7}], produced = fromList [Token {unToken = 1},Token {unToken = 2},Token {unToken = 4},Token {unToken = 5},Token {unToken = 8}]},Tx {
consumed = fromList [Token {unToken = 4},Token {unToken = 5}], produced = fromList [Token {unToken = 5},Token {unToken = 6}]},Tx {consumed = fromList [Token {unToken = 1},Token {unToken = 2},Token {unToken = 8}], produced = fromList [To
ken {unToken = 8}]},Tx {consumed = fromList [Token {unToken = 5}], produced = fromList [Token {unToken = 0},Token {unToken = 1},Token {unToken = 3},Token {unToken = 4}]},Tx {consumed = fromList [Token {unToken = 0},Token {unToken = 8}],
produced = fromList [Token {unToken = 2}]},Tx {consumed = fromList [Token {unToken = 1},Token {unToken = 4},Token {unToken = 6}], produced = fromList [Token {unToken = 2},Token {unToken = 3},Token {unToken = 4},Token {unToken = 8}]},Tx
{consumed = fromList [Token {unToken = 2}], produced = fromList [Token {unToken = 1},Token {unToken = 3},Token {unToken = 4},Token {unToken = 5}]}]]
```
I would expect this part `*** Failed! Assertion failed (after 8 tests):` to tell me it tried some shrinking.
I am using q-d v 2.0.0.
Contributor guide
Assessment
This issue has not been assessed yet.