diff --git a/.github/workflows/CI_endurance.yml b/.github/workflows/CI_endurance.yml index dbdfe05..dc9de38 100644 --- a/.github/workflows/CI_endurance.yml +++ b/.github/workflows/CI_endurance.yml @@ -35,7 +35,12 @@ jobs: make -C waku clean - name: Build nwaku dependencies - run: make -C waku + run: + cd third_party/nwaku + git pull + make update + make libwaku + make -C waku - name: Increase ulimit run: sudo sh -c "ulimit -n 8192" @@ -43,6 +48,7 @@ jobs: - name: Run Endurance Test (Group 1) shell: bash run: | + set -euo pipefail go test -p=1 -v ./waku -count=1 -timeout=360m -run '^(TestStressMemoryUsageForThreeNodes|TestStressConnectDisconnect500Iteration|TestStressHighThroughput10kPublish)$' | tee testlogs1.log diff --git a/waku/stress_test.go b/waku/stress_test.go index 863fb8e..f9f1000 100644 --- a/waku/stress_test.go +++ b/waku/stress_test.go @@ -119,40 +119,44 @@ func TestStressStoreQuery5kMessagesWithPagination(t *testing.T) { } func TestStressHighThroughput10kPublish(t *testing.T) { - node1Cfg := DefaultWakuConfig node1Cfg.Relay = true + node1, err := StartWakuNode("node1", &node1Cfg) - require.NoError(t, err, "Failed to start node1") + require.NoError(t, err, "failed to start node1") defer node1.StopAndDestroy() node2Cfg := DefaultWakuConfig node2Cfg.Relay = true + node2, err := StartWakuNode("node2", &node2Cfg) - require.NoError(t, err, "Failed to start node2") + require.NoError(t, err, "failed to start node2") defer node2.StopAndDestroy() - err = node1.ConnectPeer(node2) - require.NoError(t, err, "Failed to connect node1 to node2") + require.NoError(t, node1.ConnectPeer(node2), "failed to connect peers") captureMemory(t.Name(), "at start") - totalMessages := 1500 - pubsubTopic := DefaultPubsubTopic + const totalMessages = 1200 + var pubsubTopic = DefaultPubsubTopic for i := 0; i < totalMessages; i++ { - message := node1.CreateMessage() - message.Payload = []byte(fmt.Sprintf("High-throughput message #%d", i)) + msg := node1.CreateMessage() + msg.Payload = []byte(fmt.Sprintf("high-throughput message #%d", i)) + + hash, err := node1.RelayPublishNoCTX(pubsubTopic, msg) + require.NoError(t, err, "publish failed @%d", i) + + err = node2.VerifyMessageReceived(msg, hash ) + require.NoError(t, err, "verification failed @%d", i) + - _, err := node1.RelayPublishNoCTX(pubsubTopic, message) - require.NoError(t, err, "Failed to publish message %d", i) - time.Sleep(1 * time.Second) - Debug("###Iteration number#%d", i) } captureMemory(t.Name(), "at end") } + func TestStressConnectDisconnect1kIteration(t *testing.T) { captureMemory(t.Name(), "at start")