ouroboros-network:ouroboros-network-tests-lib
Safe HaskellNone
LanguageHaskell2010

Test.Ouroboros.Network.PeerSelection.LocalRootPeers

Synopsis

Documentation

arbitraryLocalRootPeers :: (Ord peeraddr, Arbitrary extraFlags) => Set peeraddr -> Gen (LocalRootPeers extraFlags peeraddr) Source #

data AdvertiseChange extraFlags Source #

A change of local roots, with the known peers before it: the old local roots with their flags, and other peers.

Instances

Instances details
(Arbitrary extraFlags, Eq extraFlags) => Arbitrary (AdvertiseChange extraFlags) Source #

The new local roots are mostly an edit of the old ones: entries dropped, flags flipped, a group of new peers added. Shrinking removes a peer from both, or undoes a flag's change, so a kept peer stays kept.

Instance details

Defined in Test.Ouroboros.Network.PeerSelection.LocalRootPeers

Methods

arbitrary :: Gen (AdvertiseChange extraFlags) #

shrink :: AdvertiseChange extraFlags -> [AdvertiseChange extraFlags] #

Show extraFlags => Show (AdvertiseChange extraFlags) Source # 
Instance details

Defined in Test.Ouroboros.Network.PeerSelection.LocalRootPeers

Methods

showsPrec :: Int -> AdvertiseChange extraFlags -> ShowS #

show :: AdvertiseChange extraFlags -> String #

showList :: [AdvertiseChange extraFlags] -> ShowS #

governorAdvertiseChanges :: forall extraState extraFlags extraPeers. (Eq extraFlags, Show extraFlags) => (forall s. PeerSelectionActions extraState extraFlags extraPeers () PeerAddr () (IOSim s) -> PeerSelectionState extraState extraFlags extraPeers PeerAddr () -> Guarded (STM (IOSim s)) (TimedDecision (IOSim s) extraState () extraFlags extraPeers PeerAddr ())) -> extraState -> extraPeers -> PublicExtraPeersAPI extraPeers PeerAddr -> AdvertiseChange extraFlags -> Property Source #

A governor's local roots monitor, from a state holding the old local roots and known peers with their flags, reads the new ones and leaves the known peers as knownPeersAfter requires; it does not fire when nothing changed. The monitor runs once, on a state with the given extra state and extra peers.

restrictKeys :: Ord peeraddr => LocalRootPeers extraFlags peeraddr -> Set peeraddr -> LocalRootPeers extraFlags peeraddr Source #

data LocalRootPeers extraFlags peeraddr #

Constructors

LocalRootPeers (Map peeraddr (LocalRootConfig extraFlags)) [(HotValency, WarmValency, Set peeraddr)] 

Instances

Instances details
(Arbitrary extraFlags, Arbitrary peeraddr, Ord peeraddr) => Arbitrary (LocalRootPeers extraFlags peeraddr) Source # 
Instance details

Defined in Test.Ouroboros.Network.PeerSelection.LocalRootPeers

Methods

arbitrary :: Gen (LocalRootPeers extraFlags peeraddr) #

shrink :: LocalRootPeers extraFlags peeraddr -> [LocalRootPeers extraFlags peeraddr] #

(Show extraFlags, Show peeraddr, Ord peeraddr) => Show (LocalRootPeers extraFlags peeraddr) 
Instance details

Defined in Ouroboros.Network.PeerSelection.State.LocalRootPeers

Methods

showsPrec :: Int -> LocalRootPeers extraFlags peeraddr -> ShowS #

show :: LocalRootPeers extraFlags peeraddr -> String #

showList :: [LocalRootPeers extraFlags peeraddr] -> ShowS #

(Eq peeraddr, Eq extraFlags) => Eq (LocalRootPeers extraFlags peeraddr) 
Instance details

Defined in Ouroboros.Network.PeerSelection.State.LocalRootPeers

Methods

(==) :: LocalRootPeers extraFlags peeraddr -> LocalRootPeers extraFlags peeraddr -> Bool #

(/=) :: LocalRootPeers extraFlags peeraddr -> LocalRootPeers extraFlags peeraddr -> Bool #

newtype HotValency #

Newtype wrapper representing hot valency value from local root group configuration

Constructors

HotValency 

Fields

newtype WarmValency #

Newtype wrapper representing warm valency value from local root group configuration

Constructors

WarmValency 

Fields

Orphan instances

(Arbitrary extraFlags, Arbitrary peeraddr, Ord peeraddr) => Arbitrary (LocalRootPeers extraFlags peeraddr) Source # 
Instance details

Methods

arbitrary :: Gen (LocalRootPeers extraFlags peeraddr) #

shrink :: LocalRootPeers extraFlags peeraddr -> [LocalRootPeers extraFlags peeraddr] #