From f262397d7121414836d86aad15ab31e43ad74b07 Mon Sep 17 00:00:00 2001 From: Alvaro Revuelta Date: Thu, 31 Aug 2023 12:24:41 +0200 Subject: [PATCH] fix(tests): fix flaky test (#1972) --- .../test_wakunode_rln_relay.nim | 29 +++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/tests/waku_rln_relay/test_wakunode_rln_relay.nim b/tests/waku_rln_relay/test_wakunode_rln_relay.nim index 5f671db1c..48478a785 100644 --- a/tests/waku_rln_relay/test_wakunode_rln_relay.nim +++ b/tests/waku_rln_relay/test_wakunode_rln_relay.nim @@ -150,17 +150,28 @@ procSuite "WakuNode - RLN relay": nodes[2].subscribe(pubsubTopics[1], relayHandler) await sleepAsync(1000.millis) - # publish 3 messages from node[0] (last 2 are spam, window is 10 secs) - for i in 0..<3: - var message1 = WakuMessage(payload: ("Payload_" & $i).toBytes(), contentTopic: contentTopics[0]) - doAssert(nodes[0].wakuRlnRelay.appendRLNProof(message1, epochTime())) - await nodes[0].publish(pubsubTopics[0], message1) + # generate some messages with rln proofs first. generating + # the proof takes some time, so this is done before publishing + # to avoid blocking the test + var messages1: seq[WakuMessage] = @[] + var messages2: seq[WakuMessage] = @[] + + let epochTime = epochTime() - # publish 3 messages from node[1] (last 2 are spam, window is 10 secs) for i in 0..<3: - var message2 = WakuMessage(payload: ("Payload_" & $i).toBytes(), contentTopic: contentTopics[1]) - doAssert(nodes[1].wakuRlnRelay.appendRLNProof(message2, epochTime())) - await nodes[1].publish(pubsubTopics[1], message2) + var message = WakuMessage(payload: ("Payload_" & $i).toBytes(), contentTopic: contentTopics[0]) + doAssert(nodes[0].wakuRlnRelay.appendRLNProof(message, epochTime)) + messages1.add(message) + + for i in 0..<3: + var message = WakuMessage(payload: ("Payload_" & $i).toBytes(), contentTopic: contentTopics[1]) + doAssert(nodes[1].wakuRlnRelay.appendRLNProof(message, epochTime)) + messages2.add(message) + + # publish 3 messages from node[0] (last 2 are spam, window is 10 secs) + # publish 3 messages from node[1] (last 2 are spam, window is 10 secs) + for msg in messages1: await nodes[0].publish(pubsubTopics[0], msg) + for msg in messages2: await nodes[1].publish(pubsubTopics[1], msg) # wait for gossip to propagate await sleepAsync(5000.millis)