mirror of https://github.com/waku-org/nwaku.git
Re-enable lightpush tests and fix Windows CI failure (#572)
* Enable lightpush test again - Stop nodes differently - Bump port numbers to possibly get rid of Windows leaked resources * Lightpush test mount relay w/o relaying messaging
This commit is contained in:
parent
e0d8d8f468
commit
d99e9251b5
|
@ -616,67 +616,67 @@ procSuite "WakuNode":
|
|||
|
||||
await allFutures([node1.stop(), node2.stop()])
|
||||
|
||||
# asyncTest "Lightpush message return success":
|
||||
# let
|
||||
# nodeKey1 = crypto.PrivateKey.random(Secp256k1, rng[])[]
|
||||
# node1 = WakuNode.init(nodeKey1, ValidIpAddress.init("0.0.0.0"),
|
||||
# Port(60000))
|
||||
# nodeKey2 = crypto.PrivateKey.random(Secp256k1, rng[])[]
|
||||
# node2 = WakuNode.init(nodeKey2, ValidIpAddress.init("0.0.0.0"),
|
||||
# Port(60002))
|
||||
# nodeKey3 = crypto.PrivateKey.random(Secp256k1, rng[])[]
|
||||
# node3 = WakuNode.init(nodeKey3, ValidIpAddress.init("0.0.0.0"),
|
||||
# Port(60003))
|
||||
# pubSubTopic = "test"
|
||||
# contentTopic = ContentTopic("/waku/2/default-content/proto")
|
||||
# payload = "hello world".toBytes()
|
||||
# message = WakuMessage(payload: payload, contentTopic: contentTopic)
|
||||
asyncTest "Lightpush message return success":
|
||||
let
|
||||
nodeKey1 = crypto.PrivateKey.random(Secp256k1, rng[])[]
|
||||
node1 = WakuNode.init(nodeKey1, ValidIpAddress.init("0.0.0.0"),
|
||||
Port(60010))
|
||||
nodeKey2 = crypto.PrivateKey.random(Secp256k1, rng[])[]
|
||||
node2 = WakuNode.init(nodeKey2, ValidIpAddress.init("0.0.0.0"),
|
||||
Port(60012))
|
||||
nodeKey3 = crypto.PrivateKey.random(Secp256k1, rng[])[]
|
||||
node3 = WakuNode.init(nodeKey3, ValidIpAddress.init("0.0.0.0"),
|
||||
Port(60013))
|
||||
pubSubTopic = "test"
|
||||
contentTopic = ContentTopic("/waku/2/default-content/proto")
|
||||
payload = "hello world".toBytes()
|
||||
message = WakuMessage(payload: payload, contentTopic: contentTopic)
|
||||
|
||||
# # Light node, only lightpush
|
||||
# await node1.start()
|
||||
# node1.mountLightPush()
|
||||
# Light node, only lightpush
|
||||
await node1.start()
|
||||
node1.mountRelay(relayMessages=false) # Mount WakuRelay, but do not start or subscribe to any topics
|
||||
node1.mountLightPush()
|
||||
|
||||
# # Intermediate node
|
||||
# await node2.start()
|
||||
# node2.mountRelay(@[pubSubTopic])
|
||||
# node2.mountLightPush()
|
||||
# Intermediate node
|
||||
await node2.start()
|
||||
node2.mountRelay(@[pubSubTopic])
|
||||
node2.mountLightPush()
|
||||
|
||||
# # Receiving node
|
||||
# await node3.start()
|
||||
# node3.mountRelay(@[pubSubTopic])
|
||||
# Receiving node
|
||||
await node3.start()
|
||||
node3.mountRelay(@[pubSubTopic])
|
||||
|
||||
# discard await node1.peerManager.dialPeer(node2.peerInfo, WakuLightPushCodec)
|
||||
# await sleepAsync(5.seconds)
|
||||
# await node3.connectToNodes(@[node2.peerInfo])
|
||||
discard await node1.peerManager.dialPeer(node2.peerInfo, WakuLightPushCodec)
|
||||
await sleepAsync(5.seconds)
|
||||
await node3.connectToNodes(@[node2.peerInfo])
|
||||
|
||||
# var completionFutLightPush = newFuture[bool]()
|
||||
# var completionFutRelay = newFuture[bool]()
|
||||
# proc relayHandler(topic: string, data: seq[byte]) {.async, gcsafe.} =
|
||||
# let msg = WakuMessage.init(data)
|
||||
# if msg.isOk():
|
||||
# let val = msg.value()
|
||||
# check:
|
||||
# topic == pubSubTopic
|
||||
# val.contentTopic == contentTopic
|
||||
# val.payload == payload
|
||||
# completionFutRelay.complete(true)
|
||||
var completionFutLightPush = newFuture[bool]()
|
||||
var completionFutRelay = newFuture[bool]()
|
||||
proc relayHandler(topic: string, data: seq[byte]) {.async, gcsafe.} =
|
||||
let msg = WakuMessage.init(data)
|
||||
if msg.isOk():
|
||||
let val = msg.value()
|
||||
check:
|
||||
topic == pubSubTopic
|
||||
val.contentTopic == contentTopic
|
||||
val.payload == payload
|
||||
completionFutRelay.complete(true)
|
||||
|
||||
# node3.subscribe(pubSubTopic, relayHandler)
|
||||
# await sleepAsync(2000.millis)
|
||||
node3.subscribe(pubSubTopic, relayHandler)
|
||||
await sleepAsync(2000.millis)
|
||||
|
||||
# proc handler(response: PushResponse) {.gcsafe, closure.} =
|
||||
# debug "push response handler, expecting true"
|
||||
# check:
|
||||
# response.isSuccess == true
|
||||
# completionFutLightPush.complete(true)
|
||||
proc handler(response: PushResponse) {.gcsafe, closure.} =
|
||||
debug "push response handler, expecting true"
|
||||
check:
|
||||
response.isSuccess == true
|
||||
completionFutLightPush.complete(true)
|
||||
|
||||
# # Publishing with lightpush
|
||||
# await node1.lightpush(pubSubTopic, message, handler)
|
||||
# await sleepAsync(2000.millis)
|
||||
# Publishing with lightpush
|
||||
await node1.lightpush(pubSubTopic, message, handler)
|
||||
await sleepAsync(2000.millis)
|
||||
|
||||
# check:
|
||||
# (await completionFutRelay.withTimeout(5.seconds)) == true
|
||||
# (await completionFutLightPush.withTimeout(5.seconds)) == true
|
||||
# await node1.stop()
|
||||
# await node2.stop()
|
||||
# await node3.stop()
|
||||
check:
|
||||
(await completionFutRelay.withTimeout(5.seconds)) == true
|
||||
(await completionFutLightPush.withTimeout(5.seconds)) == true
|
||||
|
||||
await allFutures([node1.stop(), node2.stop(), node3.stop()])
|
||||
|
|
Loading…
Reference in New Issue