Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Test.Ouroboros.Network.MockNode
Synopsis
- tests :: TestTree
- partitionProbe :: [(NodeId, a)] -> Map NodeId [a]
- test_blockGenerator :: forall m. (MonadDelay m, MonadFork m, MonadSTM m, MonadTime m, MonadTimer m) => Chain Block -> DiffTime -> m Property
- prop_blockGenerator_ST :: TestBlockChain -> Positive Micro -> Property
- prop_blockGenerator_IO :: TestBlockChain -> Positive Int -> Property
- coreToRelaySim :: (MonadDelay m, MonadFork m, MonadSTM m, MonadSay m, MonadThrow m, MonadTime m, MonadTimer m) => Bool -> Chain Block -> DiffTime -> DiffTime -> DiffTime -> Probe m (NodeId, Chain Block) -> m ()
- data TestNodeSim = TestNodeSim {
- testChain :: Chain Block
- testSlotDuration :: DiffTime
- testCoreTransportDelay :: DiffTime
- testRelayTransportDelay :: DiffTime
- prop_coreToRelay :: TestNodeSim -> Property
- coreToRelaySim2 :: (MonadDelay m, MonadSTM m, MonadFork m, MonadThrow m, MonadSay m, MonadTime m, MonadTimer m) => Chain Block -> DiffTime -> DiffTime -> DiffTime -> Probe m (NodeId, Chain Block) -> m ()
- prop_coreToRelay2 :: TestNodeSim -> Property
- data TestNetworkGraph = TestNetworkGraph Graph [(Int, Chain Block)]
- connectGraphG :: Graph -> Gen Graph
- networkGraphSim :: forall m. (MonadDelay m, MonadSTM m, MonadFork m, MonadThrow m, MonadSay m, MonadTime m, MonadTimer m) => TestNetworkGraph -> DiffTime -> DiffTime -> DiffTime -> Probe m (NodeId, Chain Block) -> m ()
- data NetworkTest = NetworkTest {
- networkTestGraph :: TestNetworkGraph
- networkTestSlotDuration :: DiffTime
- networkTestCoreTrDelay :: DiffTime
- networkTestRelayTrDelay :: DiffTime
- prop_networkGraph :: NetworkTest -> Property
- isDisconnected :: Graph -> Bool
- arbitraryAcyclicGraph :: Gen Int -> Gen Int -> Float -> Gen Graph
- arbitraryAcyclicGraphSmall :: Gen Graph
- genConnectedBidirectionalGraph :: Gen Graph
- type Probe m x = StrictTVar m [x]
- withProbe :: MonadSTM m => (Probe m x -> m ()) -> m [x]
- probeOutput :: MonadSTM m => Probe m x -> x -> m ()
Documentation
partitionProbe :: [(NodeId, a)] -> Map NodeId [a] Source #
test_blockGenerator :: forall m. (MonadDelay m, MonadFork m, MonadSTM m, MonadTime m, MonadTimer m) => Chain Block -> DiffTime -> m Property Source #
Block generator should generate blocks in the correct slot time.
prop_blockGenerator_ST :: TestBlockChain -> Positive Micro -> Property Source #
prop_blockGenerator_IO :: TestBlockChain -> Positive Int -> Property Source #
data TestNodeSim Source #
Constructors
TestNodeSim | |
Fields
|
Instances
Arbitrary TestNodeSim Source # | |
Defined in Test.Ouroboros.Network.MockNode | |
Show TestNodeSim Source # | |
Defined in Test.Ouroboros.Network.MockNode | |
Eq TestNodeSim Source # | |
Defined in Test.Ouroboros.Network.MockNode Methods (==) :: TestNodeSim -> TestNodeSim -> Bool Source # (/=) :: TestNodeSim -> TestNodeSim -> Bool Source # |
prop_coreToRelay :: TestNodeSim -> Property Source #
prop_coreToRelay2 :: TestNodeSim -> Property Source #
data TestNetworkGraph Source #
Constructors
TestNetworkGraph Graph [(Int, Chain Block)] |
Instances
Arbitrary TestNetworkGraph Source # | |
Defined in Test.Ouroboros.Network.MockNode | |
Show TestNetworkGraph Source # | |
Defined in Test.Ouroboros.Network.MockNode |
connectGraphG :: Graph -> Gen Graph Source #
Arguments
:: forall m. (MonadDelay m, MonadSTM m, MonadFork m, MonadThrow m, MonadSay m, MonadTime m, MonadTimer m) | |
=> TestNetworkGraph | |
-> DiffTime | slot duration |
-> DiffTime | core transport delay |
-> DiffTime | relay transport delay |
-> Probe m (NodeId, Chain Block) | |
-> m () |
data NetworkTest Source #
Constructors
NetworkTest | |
Fields
|
Instances
Arbitrary NetworkTest Source # | |
Defined in Test.Ouroboros.Network.MockNode | |
Show NetworkTest Source # | |
Defined in Test.Ouroboros.Network.MockNode |
prop_networkGraph :: NetworkTest -> Property Source #
isDisconnected :: Graph -> Bool Source #
arbitraryAcyclicGraphSmall :: Gen Graph Source #
genConnectedBidirectionalGraph :: Gen Graph Source #
type Probe m x = StrictTVar m [x] Source #
Where returning results directly is not convenient, we can build up a trace of events we want to observe, and can do probe output from multiple threads.
probeOutput :: MonadSTM m => Probe m x -> x -> m () Source #