@@ -88,16 +88,6 @@ import Test.Util.ToExpr ()
8888 Datatypes
8989-------------------------------------------------------------------------------}
9090
91- -- | Whether the LedgerDB should be wiped out
92- data ModifyDB = KeepDB | ClearDB deriving (Generic , ToExpr , NoThunks )
93-
94- instance Arbitrary ModifyDB where
95- arbitrary = elements [KeepDB , ClearDB ]
96-
97- keepsDB :: ModifyDB -> Bool
98- keepsDB KeepDB = True
99- keepsDB ClearDB = False
100-
10191-- | The model
10292data Model blk r = Model
10393 { modelMempoolIntermediateState :: ! (TickedLedgerState blk ValuesMK )
@@ -117,11 +107,7 @@ data Model blk r = Model
117107 modelLedgerDBTip :: ! (LedgerState blk ValuesMK )
118108 -- ^ The current tip on the ledgerdb
119109 , modelReachableStates :: ! (Set (LedgerState blk ValuesMK ))
120- -- ^ The old states which are still on the LedgerDB. These should
121- -- technically be ancestors of the tip, but for the mempool we don't care.
122- , modelOtherStates :: ! (Set (LedgerState blk ValuesMK ))
123- -- ^ States which were previously on the LedgerDB. We keep these so that
124- -- 'ChangeLedger' does not generate a different state with the same hash.
110+ -- ^ The old states which are still on the LedgerDB.
125111 }
126112
127113-- | The commands used by QSM
@@ -152,7 +138,6 @@ data Action blk r
152138data Event blk r
153139 = ChangeLedger
154140 ! (LedgerState blk ValuesMK )
155- ! ModifyDB
156141 deriving Generic1
157142 deriving (Rank2.Functor , Rank2.Foldable , Rank2.Traversable , CommandNames )
158143
@@ -240,18 +225,15 @@ generator ma gTxs model =
240225 ( getTip modelLedgerDBTip
241226 `Set.insert` Set. map
242227 getTip
243- ( modelOtherStates
244- `Set.union` modelReachableStates
245- )
228+ modelReachableStates
246229 )
247230 . getTip
248231 )
249232 ]
250233 ++ (if Set. null modelReachableStates then [] else [elements (Set. toList modelReachableStates)])
251- ++ (if Set. null modelOtherStates then [] else [elements (Set. toList modelOtherStates)])
252234 )
253235 `suchThat` (not . (== (getTip modelLedgerDBTip)) . getTip)
254- Event . ChangeLedger ls <$> arbitrary
236+ pure $ Event $ ChangeLedger ls
255237 )
256238 , (10 , pure $ Action GetSnapshot )
257239 ]
@@ -260,7 +242,6 @@ generator ma gTxs model =
260242 { modelMempoolIntermediateState
261243 , modelLedgerDBTip
262244 , modelReachableStates
263- , modelOtherStates
264245 } = model
265246
266247data Response blk r
@@ -293,7 +274,6 @@ initModel cfg capacity initialState =
293274 , modelLastSeenTicketNo = zeroTicketNo
294275 , modelCapacity = capacity
295276 , modelConfig = cfg
296- , modelOtherStates = Set. empty
297277 }
298278 where
299279 ticked = tick cfg initialState
@@ -306,7 +286,7 @@ mock model = \case
306286 Action (TryAddTxs _) -> pure Void
307287 Action SyncLedger -> pure Void
308288 Action GetSnapshot -> pure $ GotSnapshot $ modelTxs model
309- Event (ChangeLedger _ _ ) -> pure Void
289+ Event (ChangeLedger _) -> pure Void
310290
311291{- ------------------------------------------------------------------------------
312292 Transitions
@@ -347,25 +327,17 @@ doChangeLedger ::
347327 (StandardHash blk , GetTip (LedgerState blk )) =>
348328 Model blk r ->
349329 LedgerState blk ValuesMK ->
350- ModifyDB ->
351330 Model blk r
352- doChangeLedger model l' b' =
331+ doChangeLedger model l' =
353332 model
354333 { modelLedgerDBTip = l'
355334 , modelReachableStates =
356- if keepsDB b'
357- then l' `Set.delete` Set. insert modelLedgerDBTip modelReachableStates
358- else Set. empty
359- , modelOtherStates =
360- if keepsDB b'
361- then modelOtherStates
362- else modelLedgerDBTip `Set.insert` (modelOtherStates `Set.union` modelReachableStates)
335+ l' `Set.delete` Set. insert modelLedgerDBTip modelReachableStates
363336 }
364337 where
365338 Model
366339 { modelLedgerDBTip
367340 , modelReachableStates
368- , modelOtherStates
369341 } = model
370342
371343doTryAddTxs ::
@@ -419,7 +391,7 @@ transition ::
419391 Model blk r
420392transition model cmd resp = case (cmd, resp) of
421393 (Action (TryAddTxs txs), Void ) -> doTryAddTxs model txs
422- (Event (ChangeLedger l b ), Void ) -> doChangeLedger model l b
394+ (Event (ChangeLedger l), Void ) -> doChangeLedger model l
423395 (Action GetSnapshot , GotSnapshot {}) -> model
424396 (Action SyncLedger , Void ) -> doSync model
425397 _ ->
@@ -619,36 +591,22 @@ semantics trcr cmd r = do
619591 mapM_ (addTx m AddTxForRemotePeer ) txs
620592 pure Void
621593 Action SyncLedger -> do
622- void $ syncWithLedger m
594+ void $ testSyncWithLedger m
623595 pure Void
624596 Action GetSnapshot -> do
625597 txs <- snapshotTxs <$> atomically (getSnapshot m)
626598 pure $ GotSnapshot [(txForgetValidated vtx, tk) | (vtx, tk, _) <- txs]
627- Event (ChangeLedger l' newReachable ) -> do
599+ Event (ChangeLedger l') -> do
628600 CT. traceWith trcr $ " ChangingLedger to " <> show (getTip l')
629601 atomically $ do
630602 MockedLedgerDB ledgerTip oldReachableTips oldUnreachableTips <- readTVar t
631603 if getTip l' == getTip ledgerTip
632604 then
633- if keepsDB newReachable
634- then pure ()
635- else
636- let (newReachableTips, newUnreachableTips) =
637- ( Set. empty
638- , Set. insert ledgerTip $
639- Set. union oldUnreachableTips oldReachableTips
640- )
641- in writeTVar t (MockedLedgerDB l' newReachableTips newUnreachableTips)
605+ pure ()
642606 else
643607 let
644608 (newReachableTips, newUnreachableTips) =
645- if keepsDB newReachable
646- then (Set. insert ledgerTip oldReachableTips, oldUnreachableTips)
647- else
648- ( Set. empty
649- , Set. insert ledgerTip $
650- Set. union oldUnreachableTips oldReachableTips
651- )
609+ (Set. insert ledgerTip oldReachableTips, oldUnreachableTips)
652610 in
653611 writeTVar t (MockedLedgerDB l' newReachableTips newUnreachableTips)
654612 pure Void
@@ -827,14 +785,11 @@ tests =
827785 \ i -> fmap (fmap fst . fst ) . genTxs i
828786 , testGroup
829787 " parallel"
830- [ -- See ouroboros-consensus#1549 for why this test is disabled.
831-
832- -- testProperty "atomic" $
833- -- withMaxSuccess 1000 $
834- -- prop_mempoolParallel testLedgerConfigNoSizeLimits txMaxBytes' testInitLedger Atomic $
835- -- \i -> fmap (fmap fst . fst) . genTxs i
836- -- ,
837- testProperty " non atomic" $
788+ [ testProperty " atomic" $
789+ withMaxSuccess 1000 $
790+ prop_mempoolParallel testLedgerConfigNoSizeLimits txMaxBytes' testInitLedger Atomic $
791+ \ i -> fmap (fmap fst . fst ) . genTxs i
792+ , testProperty " non atomic" $
838793 withMaxSuccess 10 $
839794 prop_mempoolParallel testLedgerConfigNoSizeLimits txMaxBytes' testInitLedger NonAtomic $
840795 \ i -> fmap (fmap fst . fst ) . genTxs i
@@ -927,11 +882,10 @@ instance ToExpr (Action TestBlock r) where
927882 toExpr GetSnapshot = App " GetSnapshot" []
928883
929884instance ToExpr (LedgerState blk ValuesMK ) => ToExpr (Event blk r ) where
930- toExpr (ChangeLedger ls b ) =
885+ toExpr (ChangeLedger ls) =
931886 Rec " ChangeLedger" $
932887 TD. fromList
933888 [ (" tip" , toExpr ls)
934- , (" newFork" , toExpr b)
935889 ]
936890
937891instance ToExpr (Command TestBlock r ) where
0 commit comments