Skip to content

Commit 36fa7e9

Browse files
nbacqueyneilmayhew
authored andcommitted
Introduce peersOnlyAdversary and classify abnormal test peers as adversarial
1 parent bcff78b commit 36fa7e9

File tree

3 files changed

+17
-5
lines changed
  • ouroboros-consensus-diffusion/test/consensus-test/Test/Consensus

3 files changed

+17
-5
lines changed

ouroboros-consensus-diffusion/test/consensus-test/Test/Consensus/Genesis/Tests/LoP.hs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ import Test.Consensus.PeerSimulator.Run (SchedulerConfig (..),
2222
defaultSchedulerConfig)
2323
import Test.Consensus.PeerSimulator.StateView
2424
import Test.Consensus.PointSchedule
25-
import Test.Consensus.PointSchedule.Peers (peers', peersOnlyHonest)
25+
import Test.Consensus.PointSchedule.Peers (peers', peersOnlyAdversary,
26+
peersOnlyHonest)
2627
import Test.Consensus.PointSchedule.Shrinking (shrinkPeerSchedules)
2728
import Test.Consensus.PointSchedule.SinglePeer (scheduleBlockPoint,
2829
scheduleHeaderPoint, scheduleTipPoint)
@@ -82,7 +83,9 @@ prop_wait mustTimeout =
8283
dullSchedule timeout (_ AF.:> tipBlock) =
8384
let offset :: DiffTime = if mustTimeout then 1 else -1
8485
in PointSchedule
85-
{ psSchedule = peersOnlyHonest [(Time 0, scheduleTipPoint tipBlock)]
86+
{ psSchedule =
87+
(if mustTimeout then peersOnlyAdversary else peersOnlyHonest)
88+
[(Time 0, scheduleTipPoint tipBlock)]
8689
, psStartOrder = []
8790
, psMinEndTime = Time $ timeout + offset
8891
}
@@ -174,7 +177,7 @@ prop_serve mustTimeout =
174177
makeSchedule fragment@(_ AF.:> tipBlock) =
175178
PointSchedule {
176179
psSchedule =
177-
peersOnlyHonest $
180+
(if mustTimeout then peersOnlyAdversary else peersOnlyHonest) $
178181
(Time 0, scheduleTipPoint tipBlock)
179182
: ( flip concatMap (zip [1 ..] (AF.toOldestFirst fragment)) $ \(i, block) ->
180183
[ (Time (secondsRationalToDiffTime (i * timeBetweenBlocks)), scheduleHeaderPoint block),

ouroboros-consensus-diffusion/test/consensus-test/Test/Consensus/PeerSimulator/Tests/Timeouts.hs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ import Test.Consensus.Genesis.Setup
1818
import Test.Consensus.PeerSimulator.Run (defaultSchedulerConfig)
1919
import Test.Consensus.PeerSimulator.StateView
2020
import Test.Consensus.PointSchedule
21-
import Test.Consensus.PointSchedule.Peers (peersOnlyHonest)
21+
import Test.Consensus.PointSchedule.Peers (peersOnlyAdversary,
22+
peersOnlyHonest)
2223
import Test.Consensus.PointSchedule.SinglePeer (scheduleBlockPoint,
2324
scheduleHeaderPoint, scheduleTipPoint)
2425
import Test.QuickCheck
@@ -63,7 +64,7 @@ prop_timeouts mustTimeout = do
6364
dullSchedule _ (AF.Empty _) = error "requires a non-empty block tree"
6465
dullSchedule timeout (_ AF.:> tipBlock) =
6566
let offset :: DiffTime = if mustTimeout then 1 else -1
66-
psSchedule = peersOnlyHonest $ [
67+
psSchedule = (if mustTimeout then peersOnlyAdversary else peersOnlyHonest) $ [
6768
(Time 0, scheduleTipPoint tipBlock),
6869
(Time 0, scheduleHeaderPoint tipBlock),
6970
(Time 0, scheduleBlockPoint tipBlock)

ouroboros-consensus-diffusion/test/consensus-test/Test/Consensus/PointSchedule/Peers.hs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ module Test.Consensus.PointSchedule.Peers (
3232
, peersFromPeerIdList'
3333
, peersFromPeerList
3434
, peersList
35+
, peersOnlyAdversary
3536
, peersOnlyHonest
3637
, toMap
3738
, toMap'
@@ -147,6 +148,13 @@ peersOnlyHonest value =
147148
adversarialPeers = Map.empty
148149
}
149150

151+
peersOnlyAdversary :: a -> Peers a
152+
peersOnlyAdversary value =
153+
Peers
154+
{ adversarialPeers = Map.singleton 1 value,
155+
honestPeers = Map.empty
156+
}
157+
150158
-- | Extract all 'PeerId's.
151159
getPeerIds :: Peers a -> [PeerId]
152160
getPeerIds Peers {honestPeers, adversarialPeers} =

0 commit comments

Comments
 (0)