Skip to content

Commit 7a28554

Browse files
committed
Fix flaky tests
1 parent c6ed010 commit 7a28554

File tree

1 file changed

+20
-15
lines changed

1 file changed

+20
-15
lines changed

src/Nethermind/Nethermind.JsonRpc.Test/JsonRpcSocketsClientTests.cs

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
using System;
55
using System.Collections.Generic;
6+
using System.Diagnostics;
67
using System.IO;
78
using System.Linq;
89
using System.Net;
@@ -63,7 +64,6 @@ public async Task Can_handle_very_large_objects()
6364
Assert.That(sent, Is.EqualTo(received));
6465
}
6566

66-
[Test]
6767
[TestCase(1)]
6868
[TestCase(2)]
6969
[TestCase(10)]
@@ -80,7 +80,12 @@ static async Task<int> CountNumberOfMessages(Socket socket, CancellationToken to
8080
byte[] buffer = new byte[10];
8181
while (true)
8282
{
83-
ReceiveResult? result = await stream.ReceiveAsync(buffer).ConfigureAwait(false);
83+
ReceiveResult? result = await stream.ReceiveAsync(buffer);
84+
85+
// Imitate random delays
86+
if (Stopwatch.GetTimestamp() % 1001 == 0)
87+
await Task.Delay(1);
88+
8489
if (result is not null && IsEndOfIpcMessage(result))
8590
{
8691
messages++;
@@ -108,7 +113,7 @@ static async Task<int> CountNumberOfMessages(Socket socket, CancellationToken to
108113
Task<int> sendMessages = Task.Run(async () =>
109114
{
110115
using Socket socket = new(ipEndPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
111-
await socket.ConnectAsync(ipEndPoint).ConfigureAwait(false);
116+
await socket.ConnectAsync(ipEndPoint);
112117

113118
using IpcSocketMessageStream stream = new(socket);
114119
using JsonRpcSocketsClient<IpcSocketMessageStream> client = new(
@@ -123,18 +128,18 @@ static async Task<int> CountNumberOfMessages(Socket socket, CancellationToken to
123128

124129
for (int i = 0; i < messageCount; i++)
125130
{
126-
using JsonRpcResult result = JsonRpcResult.Single(RandomSuccessResponse(1_000, () => disposeCount++), default);
127-
await client.SendJsonRpcResult(result).ConfigureAwait(false);
128-
await Task.Delay(1).ConfigureAwait(false);
131+
using JsonRpcResult result = JsonRpcResult.Single(RandomSuccessResponse(1000, () => disposeCount++), default);
132+
await client.SendJsonRpcResult(result);
133+
await Task.Delay(1);
129134
}
130135

131136
disposeCount.Should().Be(messageCount);
132-
await cts.CancelAsync().ConfigureAwait(false);
137+
await cts.CancelAsync();
133138

134139
return messageCount;
135140
});
136141

137-
await Task.WhenAll(sendMessages, receiveMessages).ConfigureAwait(false);
142+
await Task.WhenAll(sendMessages, receiveMessages);
138143
int sent = sendMessages.Result;
139144
int received = receiveMessages.Result;
140145

@@ -158,7 +163,7 @@ async Task<int> ReadMessages(Socket socket, IList<byte[]> receivedMessages, Canc
158163
byte[] buffer = new byte[bufferSize];
159164
while (true)
160165
{
161-
ReceiveResult? result = await stream.ReceiveAsync(buffer).ConfigureAwait(false);
166+
ReceiveResult? result = await stream.ReceiveAsync(buffer);
162167
if (result is not null)
163168
{
164169
msg.AddRange(buffer.Take(result.Read));
@@ -190,14 +195,14 @@ async Task<int> ReadMessages(Socket socket, IList<byte[]> receivedMessages, Canc
190195

191196
Task<int> receiveMessages = OneShotServer(
192197
ipEndPoint,
193-
async socket => await ReadMessages(socket, receivedMessages, cts.Token).ConfigureAwait(false)
198+
async socket => await ReadMessages(socket, receivedMessages, cts.Token)
194199
);
195200

196201
Task<int> sendMessages = Task.Run(async () =>
197202
{
198203
int messageCount = 0;
199204
using Socket socket = new(ipEndPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
200-
await socket.ConnectAsync(ipEndPoint).ConfigureAwait(false);
205+
await socket.ConnectAsync(ipEndPoint);
201206

202207
using IpcSocketMessageStream stream = new(socket);
203208
using JsonRpcSocketsClient<IpcSocketMessageStream> client = new(
@@ -216,20 +221,20 @@ async Task<int> ReadMessages(Socket socket, IList<byte[]> receivedMessages, Canc
216221
messageCount++;
217222
var msg = Enumerable.Range(11, i).Select(x => (byte)x).ToArray();
218223
sentMessages.Add(msg);
219-
await stream.WriteAsync(msg.Append((byte)'\n').ToArray()).ConfigureAwait(false);
224+
await stream.WriteAsync(msg.Append((byte)'\n').ToArray());
220225

221226
if (i % 10 == 0)
222227
{
223-
await Task.Delay(1).ConfigureAwait(false);
228+
await Task.Delay(1);
224229
}
225230
}
226231
stream.Close();
227-
await cts.CancelAsync().ConfigureAwait(false);
232+
await cts.CancelAsync();
228233

229234
return messageCount;
230235
});
231236

232-
await Task.WhenAll(sendMessages, receiveMessages).ConfigureAwait(false);
237+
await Task.WhenAll(sendMessages, receiveMessages);
233238
int sent = sendMessages.Result;
234239
int received = receiveMessages.Result;
235240

0 commit comments

Comments
 (0)