Skip to content

Commit f7cdae0

Browse files
committed
modifications to tests to fix CI issue
1 parent 8621e63 commit f7cdae0

File tree

2 files changed

+71
-66
lines changed

2 files changed

+71
-66
lines changed

.github/workflows/CI.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,12 @@ jobs:
3333
- name: Build nwaku dependencies
3434
run: make -C waku
3535

36+
- name: Increase ulimit
37+
run: sudo sh -c "ulimit -n 8192"
38+
3639
- name: Run Endurance Test
3740
run: |
38-
go test -v ./waku -count=1 -timeout=360m -run '^TestStress' | tee testlogs.log
41+
go test -p=1 -v ./waku -count=1 -timeout=360m -run '^TestStress' | tee testlogs.log
3942
4043
- name: Upload Test Logs
4144
uses: actions/upload-artifact@v4

waku/stress_test.go

Lines changed: 67 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -72,73 +72,10 @@ func TestStressMemoryUsageForThreeNodes(t *testing.T) {
7272
Debug("[%s] Test completed successfully", testName)
7373
}
7474

75-
func TestStress2Nodes500IterationTearDown(t *testing.T) {
76-
77-
var memStats runtime.MemStats
78-
runtime.ReadMemStats(&memStats)
79-
initialMem := memStats.HeapAlloc
80-
Debug("[%s] Memory usage at test START: %d KB", t.Name(), initialMem/1024)
81-
82-
initialRSS, err := utils.GetRSSKB()
83-
require.NoError(t, err)
84-
Debug("[%s] OS-level RSS at test START: %d KB", t.Name(), initialRSS)
85-
86-
totalIterations := 500
87-
for i := 1; i <= totalIterations; i++ {
88-
var nodes []*WakuNode
89-
for n := 1; n <= 2; n++ {
90-
cfg := DefaultWakuConfig
91-
cfg.Relay = true
92-
cfg.Discv5Discovery = false
93-
cfg.TcpPort, cfg.Discv5UdpPort, err = GetFreePortIfNeeded(0, 0)
94-
require.NoError(t, err, "Failed to get free ports for node%d", n)
95-
node, err := NewWakuNode(&cfg, fmt.Sprintf("node%d", n))
96-
require.NoError(t, err, "Failed to create node%d", n)
97-
err = node.Start()
98-
require.NoError(t, err, "Failed to start node%d", n)
99-
nodes = append(nodes, node)
100-
}
101-
err = ConnectAllPeers(nodes)
102-
require.NoError(t, err)
103-
message := nodes[0].CreateMessage()
104-
msgHash, err := nodes[0].RelayPublishNoCTX(DefaultPubsubTopic, message)
105-
require.NoError(t, err)
106-
time.Sleep(500 * time.Millisecond)
107-
err = nodes[1].VerifyMessageReceived(message, msgHash, 500*time.Millisecond)
108-
require.NoError(t, err, "Node1 did not receive message from node1")
109-
for _, node := range nodes {
110-
node.StopAndDestroy()
111-
}
112-
runtime.GC()
113-
time.Sleep(250 * time.Millisecond)
114-
runtime.GC()
115-
if i == 250 || i == 500 {
116-
runtime.ReadMemStats(&memStats)
117-
Debug("Iteration %d, usage after teardown: %d KB", i, memStats.HeapAlloc/1024)
118-
require.LessOrEqual(t, memStats.HeapAlloc, initialMem*3, "Memory usage soared above threshold after iteration %d", i)
119-
rssNow, err := utils.GetRSSKB()
120-
require.NoError(t, err)
121-
Debug("Iteration %d, OS-level RSS after teardown: %d KB", i, rssNow)
122-
//require.LessOrEqual(t, rssNow, initialRSS*10, "OS-level RSS soared above threshold after iteration %d", i)
123-
}
124-
Debug("Iteration numberrrrrr %d", i)
125-
}
126-
runtime.GC()
127-
time.Sleep(500 * time.Millisecond)
128-
runtime.GC()
129-
runtime.ReadMemStats(&memStats)
130-
finalMem := memStats.HeapAlloc
131-
Debug("[%s] Memory usage at test END: %d KB", t.Name(), finalMem/1024)
132-
// require.LessOrEqual(t, finalMem, initialMem*3, "Memory usage soared above threshold after %d cycles", totalIterations)
133-
finalRSS, err := utils.GetRSSKB()
134-
require.NoError(t, err)
135-
Debug("[%s] OS-level RSS at test END: %d KB", t.Name(), finalRSS)
136-
//require.LessOrEqual(t, finalRSS, initialRSS*3, "OS-level RSS soared above threshold after %d cycles", totalIterations)
137-
}
138-
13975
func TestStressStoreQuery5kMessagesWithPagination(t *testing.T) {
14076
Debug("Starting test")
141-
77+
runtime.GC()
78+
time.Sleep(5 * time.Second)
14279
nodeConfig := DefaultWakuConfig
14380
nodeConfig.Relay = true
14481
nodeConfig.Store = true
@@ -366,3 +303,68 @@ func TestStressLargePayloadEphemeralMessagesEndurance(t *testing.T) {
366303
require.NoError(t, err)
367304
Debug("After endurance test: HeapAlloc = %d KB, RSS = %d KB", endHeapKB, endRSSKB)
368305
}
306+
307+
func TestStress2Nodes500IterationTearDown(t *testing.T) {
308+
309+
var memStats runtime.MemStats
310+
runtime.ReadMemStats(&memStats)
311+
initialMem := memStats.HeapAlloc
312+
Debug("[%s] Memory usage at test START: %d KB", t.Name(), initialMem/1024)
313+
314+
initialRSS, err := utils.GetRSSKB()
315+
require.NoError(t, err)
316+
Debug("[%s] OS-level RSS at test START: %d KB", t.Name(), initialRSS)
317+
318+
totalIterations := 500
319+
for i := 1; i <= totalIterations; i++ {
320+
var nodes []*WakuNode
321+
for n := 1; n <= 2; n++ {
322+
cfg := DefaultWakuConfig
323+
cfg.Relay = true
324+
cfg.Discv5Discovery = false
325+
cfg.TcpPort, cfg.Discv5UdpPort, err = GetFreePortIfNeeded(0, 0)
326+
require.NoError(t, err, "Failed to get free ports for node%d", n)
327+
node, err := NewWakuNode(&cfg, fmt.Sprintf("node%d", n))
328+
require.NoError(t, err, "Failed to create node%d", n)
329+
err = node.Start()
330+
require.NoError(t, err, "Failed to start node%d", n)
331+
nodes = append(nodes, node)
332+
}
333+
err = ConnectAllPeers(nodes)
334+
require.NoError(t, err)
335+
message := nodes[0].CreateMessage()
336+
msgHash, err := nodes[0].RelayPublishNoCTX(DefaultPubsubTopic, message)
337+
require.NoError(t, err)
338+
time.Sleep(500 * time.Millisecond)
339+
err = nodes[1].VerifyMessageReceived(message, msgHash, 500*time.Millisecond)
340+
require.NoError(t, err, "Node1 did not receive message from node1")
341+
for _, node := range nodes {
342+
node.StopAndDestroy()
343+
time.Sleep(50 * time.Millisecond)
344+
}
345+
runtime.GC()
346+
time.Sleep(250 * time.Millisecond)
347+
runtime.GC()
348+
if i == 250 || i == 500 {
349+
runtime.ReadMemStats(&memStats)
350+
Debug("Iteration %d, usage after teardown: %d KB", i, memStats.HeapAlloc/1024)
351+
require.LessOrEqual(t, memStats.HeapAlloc, initialMem*3, "Memory usage soared above threshold after iteration %d", i)
352+
rssNow, err := utils.GetRSSKB()
353+
require.NoError(t, err)
354+
Debug("Iteration %d, OS-level RSS after teardown: %d KB", i, rssNow)
355+
//require.LessOrEqual(t, rssNow, initialRSS*10, "OS-level RSS soared above threshold after iteration %d", i)
356+
}
357+
Debug("Iteration numberrrrrr %d", i)
358+
}
359+
runtime.GC()
360+
time.Sleep(500 * time.Millisecond)
361+
runtime.GC()
362+
runtime.ReadMemStats(&memStats)
363+
finalMem := memStats.HeapAlloc
364+
Debug("[%s] Memory usage at test END: %d KB", t.Name(), finalMem/1024)
365+
// require.LessOrEqual(t, finalMem, initialMem*3, "Memory usage soared above threshold after %d cycles", totalIterations)
366+
finalRSS, err := utils.GetRSSKB()
367+
require.NoError(t, err)
368+
Debug("[%s] OS-level RSS at test END: %d KB", t.Name(), finalRSS)
369+
//require.LessOrEqual(t, finalRSS, initialRSS*3, "OS-level RSS soared above threshold after %d cycles", totalIterations)
370+
}

0 commit comments

Comments
 (0)