chore(tests): utilize quic transport in pubsub tests (#1667)

This commit is contained in:
vladopajic
2025-09-08 23:30:21 +02:00
committed by GitHub
parent f41009461b
commit 27051164db
3 changed files with 39 additions and 15 deletions

View File

@@ -408,10 +408,15 @@ proc build*(b: SwitchBuilder): Switch {.raises: [LPError], public.} =
return switch
type TransportType* {.pure.} = enum
QUIC
TCP
Memory
proc newStandardSwitchBuilder*(
privKey = none(PrivateKey),
addrs: MultiAddress | seq[MultiAddress] =
MultiAddress.init("/ip4/127.0.0.1/tcp/0").expect("valid address"),
addrs: MultiAddress | seq[MultiAddress] = newSeq[MultiAddress](),
transport: TransportType = TransportType.TCP,
secureManagers: openArray[SecureProtocol] = [SecureProtocol.Noise],
transportFlags: set[ServerFlags] = {},
rng = newRng(),
@@ -426,14 +431,8 @@ proc newStandardSwitchBuilder*(
peerStoreCapacity = 1000,
): SwitchBuilder {.raises: [LPError], public.} =
## Helper for common switch configurations.
let addrs =
when addrs is MultiAddress:
@[addrs]
else:
addrs
var b = SwitchBuilder
.new()
.withAddresses(addrs)
.withRng(rng)
.withSignedPeerRecord(sendSignedPeerRecord)
.withMaxConnections(maxConnections)
@@ -441,11 +440,34 @@ proc newStandardSwitchBuilder*(
.withMaxOut(maxOut)
.withMaxConnsPerPeer(maxConnsPerPeer)
.withPeerStore(capacity = peerStoreCapacity)
.withMplex(inTimeout, outTimeout)
.withTcpTransport(transportFlags)
.withNameResolver(nameResolver)
.withNoise()
var addrs =
when addrs is MultiAddress:
@[addrs]
else:
addrs
case transport
of TransportType.QUIC:
when defined(libp2p_quic_support):
if addrs.len == 0:
addrs = @[MultiAddress.init("/ip4/0.0.0.0/udp/0/quic-v1").tryGet()]
b = b.withQuicTransport().withAddresses(addrs)
else:
raiseAssert "QUIC not supported in this build"
of TransportType.TCP:
if addrs.len == 0:
addrs = @[MultiAddress.init("/ip4/127.0.0.1/tcp/0").tryGet()]
b = b.withTcpTransport(transportFlags).withAddresses(addrs).withMplex(
inTimeout, outTimeout
)
of TransportType.Memory:
if addrs.len == 0:
addrs = @[MultiAddress.init(MemoryAutoAddress).tryGet()]
b = b.withMemoryTransport().withAddresses(addrs).withMplex(inTimeout, outTimeout)
privKey.withValue(pkey):
b = b.withPrivateKey(pkey)
@@ -453,8 +475,8 @@ proc newStandardSwitchBuilder*(
proc newStandardSwitch*(
privKey = none(PrivateKey),
addrs: MultiAddress | seq[MultiAddress] =
MultiAddress.init("/ip4/127.0.0.1/tcp/0").expect("valid address"),
addrs: MultiAddress | seq[MultiAddress] = newSeq[MultiAddress](),
transport: TransportType = TransportType.TCP,
secureManagers: openArray[SecureProtocol] = [SecureProtocol.Noise],
transportFlags: set[ServerFlags] = {},
rng = newRng(),

View File

@@ -311,7 +311,8 @@ suite "GossipSub":
check gossipSub.mcache.msgs.len == 0
asyncTest "rpcHandler - subscription limits":
let gossipSub = TestGossipSub.init(newStandardSwitch())
let gossipSub =
TestGossipSub.init(newStandardSwitch(transport = TransportType.QUIC))
gossipSub.topicsHigh = 10
var tooManyTopics: seq[string]
@@ -333,7 +334,8 @@ suite "GossipSub":
await conn.close()
asyncTest "rpcHandler - invalid message bytes":
let gossipSub = TestGossipSub.init(newStandardSwitch())
let gossipSub =
TestGossipSub.init(newStandardSwitch(transport = TransportType.QUIC))
let peerId = randomPeerId()
let peer = gossipSub.getPubSubPeer(peerId)

View File

@@ -87,7 +87,7 @@ proc setupGossipSubWithPeers*(
populateMesh: bool = false,
populateFanout: bool = false,
): (TestGossipSub, seq[Connection], seq[PubSubPeer]) =
let gossipSub = TestGossipSub.init(newStandardSwitch())
let gossipSub = TestGossipSub.init(newStandardSwitch(transport = TransportType.QUIC))
for topic in topics:
gossipSub.subscribe(topic, voidTopicHandler)