fix: [2.6][skip e2e]use eventual assertion for pending message check in replicate stream test (#44972) (#44987)

Cherry-pick from master
pr: #44972
Related to #44620

The test was flaky because pendingMessages.Len() assertion happened
before async message processing completed. Changed to assert.Eventually
to wait up to 1 second for the pending queue to drain, fixing the race
condition where actual was 1 but expected was 0.

Fixes TestReplicateStreamClient_Reconnect flakiness.

Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
This commit is contained in:
congqixia 2025-10-21 10:44:05 +08:00 committed by GitHub
parent 9b9a303a09
commit 5bca28764b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -101,7 +101,9 @@ func TestReplicateStreamClient_Replicate(t *testing.T) {
mockStreamClient.ExpectRecv()
}
assert.Equal(t, msgCount, mockStreamClient.GetRecvCount())
assert.Equal(t, 0, replicateClient.(*replicateStreamClient).pendingMessages.Len())
assert.Eventually(t, func() bool {
return replicateClient.(*replicateStreamClient).pendingMessages.Len() == 0
}, time.Second, 100*time.Millisecond)
replicateClient.Close()
}
@ -218,7 +220,9 @@ func TestReplicateStreamClient_Reconnect(t *testing.T) {
mockStreamClient.ExpectRecv()
}
assert.Equal(t, msgCount, mockStreamClient.GetRecvCount())
assert.Equal(t, 0, replicateClient.(*replicateStreamClient).pendingMessages.Len())
assert.Eventually(t, func() bool {
return replicateClient.(*replicateStreamClient).pendingMessages.Len() == 0
}, time.Second, 100*time.Millisecond)
replicateClient.Close()
}