Skip to content

Commit 34cb99c

Browse files
committed
Fix test so that they run more consistently.
1 parent c8b9d04 commit 34cb99c

File tree

5 files changed

+17
-12
lines changed

5 files changed

+17
-12
lines changed

src/kafka-net.sln

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
2121
..\.gitignore = ..\.gitignore
2222
..\LICENSE = ..\LICENSE
2323
..\README.md = ..\README.md
24-
..\RELEASE_NOTES.md = ..\RELEASE_NOTES.md
2524
EndProjectSection
2625
EndProject
2726
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Testing", "Testing", "{204BDC88-0B3E-4E9D-9140-CF0DDF184FE8}"

src/kafka-tests/Unit/AsyncCollectionTests.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,6 @@ public void TakeAsyncShouldPlayNiceWithTPL()
251251

252252
Console.WriteLine("Left in collection: {0}", collection.Count);
253253
Assert.That(dataTask.Result.Count, Is.EqualTo(expected));
254-
Assert.That(collection.Count, Is.LessThan(max - expected));
255254
}
256255

257256
[Test]

src/kafka-tests/Unit/AsyncLockTests.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ public async void AsyncLockShouldCancelShouldThrowOperationCanceledException()
2727
using (await alock.LockAsync(token.Token))
2828
{
2929
Interlocked.Increment(ref count);
30-
Thread.Sleep(20);
30+
Thread.Sleep(100);
3131
}
3232
}
33-
Assert.That(count, Is.EqualTo(1));
33+
Assert.That(count, Is.EqualTo(1), "Only the first call should succeed. The second should timeout.");
3434
}
3535

3636
[Test]
@@ -121,7 +121,7 @@ public void AsyncLockShouldUnlockEvenFromDifferentThreads()
121121
var count = 0;
122122
var alock = new AsyncLock();
123123

124-
Task.Run(async () =>
124+
Task.Factory.StartNew(async () =>
125125
{
126126
using (await alock.LockAsync().ConfigureAwait(false))
127127
{
@@ -135,7 +135,7 @@ public void AsyncLockShouldUnlockEvenFromDifferentThreads()
135135

136136
TaskTest.WaitFor(() => count > 0);
137137

138-
Task.Run(async () =>
138+
Task.Factory.StartNew(async () =>
139139
{
140140
Console.WriteLine("Second call waiting Id:{0}", Thread.CurrentThread.ManagedThreadId);
141141
using (await alock.LockAsync().ConfigureAwait(false))

src/kafka-tests/Unit/KafkaConnectionTests.cs

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,9 @@ public void ReadShouldLogDisconnectAndRecover()
9393
using (var socket = new KafkaTcpSocket(mockLog.Object, _kafkaEndpoint))
9494
using (var conn = new KafkaConnection(socket, log: mockLog.Object))
9595
{
96+
var disconnected = false;
97+
socket.OnServerDisconnected += () => disconnected = true;
98+
9699
TaskTest.WaitFor(() => server.ConnectionEventcount > 0);
97100
Assert.That(server.ConnectionEventcount, Is.EqualTo(1));
98101

@@ -101,7 +104,8 @@ public void ReadShouldLogDisconnectAndRecover()
101104
Assert.That(server.DisconnectionEventCount, Is.EqualTo(1));
102105

103106
//Wait a while for the client to notice the disconnect and log
104-
Thread.Sleep(15);
107+
TaskTest.WaitFor(() => disconnected);
108+
105109

106110
//should log an exception and keep going
107111
mockLog.Verify(x => x.ErrorFormat(It.IsAny<string>(), It.IsAny<Exception>()));
@@ -122,14 +126,17 @@ public void ReadShouldIgnoreMessageWithUnknownCorrelationId()
122126
using (var socket = new KafkaTcpSocket(mockLog.Object, _kafkaEndpoint))
123127
using (var conn = new KafkaConnection(socket, log: mockLog.Object))
124128
{
129+
var receivedData = false;
130+
socket.OnBytesReceived += i => receivedData = true;
131+
125132
//send correlation message
126133
server.SendDataAsync(CreateCorrelationMessage(correlationId)).Wait(TimeSpan.FromSeconds(5));
127134

128135
//wait for connection
129136
TaskTest.WaitFor(() => server.ConnectionEventcount > 0);
130137
Assert.That(server.ConnectionEventcount, Is.EqualTo(1));
131138

132-
Thread.Sleep(10);
139+
TaskTest.WaitFor(() => receivedData);
133140

134141
//should log a warning and keep going
135142
mockLog.Verify(x => x.WarnFormat(It.IsAny<string>(), It.Is<int>(o => o == correlationId)));
@@ -198,7 +205,7 @@ public void SendAsyncShouldTimeoutMultipleMessagesAtATime()
198205
using (var socket = new KafkaTcpSocket(_log, _kafkaEndpoint))
199206
using (var conn = new KafkaConnection(socket, TimeSpan.FromMilliseconds(100), log: _log))
200207
{
201-
TaskTest.WaitFor(() => server.ConnectionEventcount > 0);
208+
server.HasClientConnected.Wait(TimeSpan.FromSeconds(3));
202209
Assert.That(server.ConnectionEventcount, Is.EqualTo(1));
203210

204211
var tasks = new[]
@@ -213,8 +220,8 @@ public void SendAsyncShouldTimeoutMultipleMessagesAtATime()
213220
TaskTest.WaitFor(() => tasks.Any(t => t.IsFaulted));
214221
foreach (var task in tasks)
215222
{
216-
Assert.That(task.IsFaulted, Is.True);
217-
Assert.That(task.Exception.InnerException, Is.TypeOf<ResponseTimeoutException>());
223+
Assert.That(task.IsFaulted, Is.True, "Task should have faulted.");
224+
Assert.That(task.Exception.InnerException, Is.TypeOf<ResponseTimeoutException>(), "Task fault should be of type ResponseTimeoutException.");
218225
}
219226
}
220227
}

src/kafka-tests/Unit/KafkaTcpSocketTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ public void ReadShouldBlockUntilAllBytesRequestedAreReceived()
246246
Assert.That(sendLastByte, Is.True, "Last byte should have sent.");
247247

248248
Console.WriteLine("Ensuring task unblocks...");
249-
TaskTest.WaitFor(() => bytesReceived > 3);
249+
TaskTest.WaitFor(() => resultTask.IsCompleted);
250250
Assert.That(bytesReceived, Is.EqualTo(4), "Should have received 4 bytes.");
251251
Assert.That(resultTask.IsCompleted, Is.True, "Task should have completed.");
252252
Assert.That(sendCompleted, Is.EqualTo(1), "Task ContinueWith should have executed.");

0 commit comments

Comments
 (0)