Skip to content

Commit 43428d0

Browse files
authored
Merge pull request #896 from drewnoakes/more-annotations
Further nullability annotations
2 parents 72f6af5 + 76278aa commit 43428d0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+273
-257
lines changed

src/NetMQ.Tests/EventDelegatorTests.cs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
#nullable disable
2-
3-
using System;
1+
using System;
42
using Xunit;
53

64
namespace NetMQ.Tests
@@ -13,12 +11,12 @@ private class Args<T> : EventArgs
1311
public T Value { get; }
1412
}
1513

16-
private event EventHandler<Args<int>> Source;
14+
private event EventHandler<Args<int>>? Source;
1715

1816
[Fact]
1917
public void Basics()
2018
{
21-
EventHandler<Args<int>> sourceHandler = null;
19+
EventHandler<Args<int>>? sourceHandler = null;
2220

2321
var delegator = new EventDelegator<Args<double>>(
2422
() => Source += sourceHandler,
@@ -31,7 +29,7 @@ public void Basics()
3129
var value = 0.0;
3230
var callCount = 0;
3331

34-
void DelegatorHandler(object sender, Args<double> args)
32+
void DelegatorHandler(object? sender, Args<double> args)
3533
{
3634
value = args.Value;
3735
callCount++;
@@ -40,6 +38,7 @@ void DelegatorHandler(object sender, Args<double> args)
4038
delegator.Event += DelegatorHandler;
4139

4240
Assert.NotNull(Source);
41+
Assumes.NotNull(Source);
4342

4443
Assert.Equal(0, callCount);
4544

src/NetMQ.Tests/ExceptionTests.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
#nullable disable
2-
31
using System.IO;
42
using System.Runtime.Serialization.Formatters.Binary;
53
using Xunit;
@@ -105,7 +103,7 @@ private static void RoundTrip(NetMQException before)
105103
Assert.Equal(before.Message, after.Message);
106104
}
107105

108-
private static T Clone<T>(T source)
106+
private static T Clone<T>(T source) where T : class
109107
{
110108
return Deserialise<T>(Serialise(source));
111109
}

src/NetMQ.Tests/MsgTests.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
#nullable disable
2-
3-
using System;
1+
using System;
42
using Xunit;
53

64
namespace NetMQ.Tests
@@ -210,7 +208,7 @@ public void InitPool()
210208
Assert.Equal(MsgType.Pool, msg.MsgType);
211209
Assert.Equal(MsgFlags.None, msg.Flags);
212210
Assert.NotNull(msg.UnsafeData);
213-
Assert.Equal(100, msg.UnsafeData.Length);
211+
Assert.Equal(100, msg.UnsafeData!.Length);
214212
Assert.False(msg.HasMore);
215213
Assert.False(msg.IsDelimiter);
216214
Assert.False(msg.IsIdentity);

src/NetMQ.Tests/OutgoingSocketExtensionsTests.cs

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
#nullable disable
2-
3-
using System;
1+
using System;
42
using Xunit;
53

64
namespace NetMQ.Tests
@@ -34,16 +32,18 @@ public void SendMultipartBytesTest()
3432
if (count == 0)
3533
{
3634
Assert.Equal(SendReceiveConstants.InfiniteTimeout, timeout);
35+
Assert.NotNull(msg.UnsafeData);
3736
Assert.Single(msg.UnsafeData);
38-
Assert.Equal(1, msg.UnsafeData[0]);
37+
Assert.Equal(1, msg.UnsafeData![0]);
3938
Assert.True(more);
4039
count++;
4140
}
4241
else
4342
{
4443
Assert.Equal(SendReceiveConstants.InfiniteTimeout, timeout);
44+
Assert.NotNull(msg.UnsafeData);
4545
Assert.Single(msg.UnsafeData);
46-
Assert.Equal(2, msg.UnsafeData[0]);
46+
Assert.Equal(2, msg.UnsafeData![0]);
4747
Assert.False(more);
4848
count++;
4949
}
@@ -65,16 +65,18 @@ public void TrySendMultipartBytesWithTimeoutTest()
6565
if (count == 0)
6666
{
6767
Assert.Equal(TimeSpan.FromSeconds(1), timeout);
68+
Assert.NotNull(msg.UnsafeData);
6869
Assert.Single(msg.UnsafeData);
69-
Assert.Equal(1, msg.UnsafeData[0]);
70+
Assert.Equal(1, msg.UnsafeData![0]);
7071
Assert.True(more);
7172
count++;
7273
}
7374
else
7475
{
7576
Assert.Equal(SendReceiveConstants.InfiniteTimeout, timeout);
77+
Assert.NotNull(msg.UnsafeData);
7678
Assert.Single(msg.UnsafeData);
77-
Assert.Equal(2, msg.UnsafeData[0]);
79+
Assert.Equal(2, msg.UnsafeData![0]);
7880
Assert.False(more);
7981
count++;
8082
}
@@ -95,8 +97,9 @@ public void TrySendMultipartBytesWithTimeoutTestFailed()
9597
{
9698

9799
Assert.Equal(TimeSpan.FromSeconds(1), timeout);
100+
Assert.NotNull(msg.UnsafeData);
98101
Assert.Single(msg.UnsafeData);
99-
Assert.Equal(1, msg.UnsafeData[0]);
102+
Assert.Equal(1, msg.UnsafeData![0]);
100103
Assert.True(more);
101104
count++;
102105

@@ -117,16 +120,18 @@ public void TrySendMultipartBytesTest()
117120
if (count == 0)
118121
{
119122
Assert.Equal(TimeSpan.FromSeconds(0), timeout);
123+
Assert.NotNull(msg.UnsafeData);
120124
Assert.Single(msg.UnsafeData);
121-
Assert.Equal(1, msg.UnsafeData[0]);
125+
Assert.Equal(1, msg.UnsafeData![0]);
122126
Assert.True(more);
123127
count++;
124128
}
125129
else
126130
{
127131
Assert.Equal(SendReceiveConstants.InfiniteTimeout, timeout);
132+
Assert.NotNull(msg.UnsafeData);
128133
Assert.Single(msg.UnsafeData);
129-
Assert.Equal(2, msg.UnsafeData[0]);
134+
Assert.Equal(2, msg.UnsafeData![0]);
130135
Assert.False(more);
131136
count++;
132137
}
@@ -148,16 +153,18 @@ public void TrySendMultipartMessageTest()
148153
if (count == 0)
149154
{
150155
Assert.Equal(TimeSpan.FromSeconds(0), timeout);
156+
Assert.NotNull(msg.UnsafeData);
151157
Assert.Single(msg.UnsafeData);
152-
Assert.Equal(1, msg.UnsafeData[0]);
158+
Assert.Equal(1, msg.UnsafeData![0]);
153159
Assert.True(more);
154160
count++;
155161
}
156162
else
157163
{
158164
Assert.Equal(SendReceiveConstants.InfiniteTimeout, timeout);
165+
Assert.NotNull(msg.UnsafeData);
159166
Assert.Single(msg.UnsafeData);
160-
Assert.Equal(2, msg.UnsafeData[0]);
167+
Assert.Equal(2, msg.UnsafeData![0]);
161168
Assert.False(more);
162169
count++;
163170
}
@@ -181,8 +188,9 @@ public void TrySendMultipartMessageFailed()
181188
var socket = new MockOutgoingSocket((ref Msg msg, TimeSpan timeout, bool more) =>
182189
{
183190
Assert.Equal(TimeSpan.FromSeconds(0), timeout);
191+
Assert.NotNull(msg.UnsafeData);
184192
Assert.Single(msg.UnsafeData);
185-
Assert.Equal(1, msg.UnsafeData[0]);
193+
Assert.Equal(1, msg.UnsafeData![0]);
186194
Assert.True(more);
187195
count++;
188196

@@ -261,7 +269,8 @@ public void SignalTest()
261269
var socket = new MockOutgoingSocket((ref Msg msg, TimeSpan timeout, bool more) =>
262270
{
263271
Assert.Equal(SendReceiveConstants.InfiniteTimeout, timeout);
264-
Assert.Equal(8, msg.UnsafeData.Length);
272+
Assert.NotNull(msg.UnsafeData);
273+
Assert.Equal(8, msg.UnsafeData!.Length);
265274

266275
var value = NetworkOrderBitsConverter.ToInt64(msg.UnsafeData);
267276

@@ -280,7 +289,8 @@ public void TrySignalTest()
280289
var socket = new MockOutgoingSocket((ref Msg msg, TimeSpan timeout, bool more) =>
281290
{
282291
Assert.Equal(TimeSpan.Zero, timeout);
283-
Assert.Equal(8, msg.UnsafeData.Length);
292+
Assert.NotNull(msg.UnsafeData);
293+
Assert.Equal(8, msg.UnsafeData!.Length);
284294

285295
var value = NetworkOrderBitsConverter.ToInt64(msg.UnsafeData);
286296

@@ -299,7 +309,8 @@ public void TrySignalFailedTest()
299309
var socket = new MockOutgoingSocket((ref Msg msg, TimeSpan timeout, bool more) =>
300310
{
301311
Assert.Equal(TimeSpan.Zero, timeout);
302-
Assert.Equal(8, msg.UnsafeData.Length);
312+
Assert.NotNull(msg.UnsafeData);
313+
Assert.Equal(8, msg.UnsafeData!.Length);
303314

304315
var value = NetworkOrderBitsConverter.ToInt64(msg.UnsafeData);
305316

src/NetMQ.Tests/ReceivingSocketExtensionsTests.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
#nullable disable
2-
3-
using System;
1+
using System;
42
using System.Collections.Generic;
53
using System.Linq;
64
using System.Text;
@@ -89,7 +87,7 @@ public void TryReceiveFrameBytes()
8987
{
9088
var expected = m_socket.PushFrame("Hello");
9189

92-
Assert.True(m_socket.TryReceiveFrameBytes(out byte[] actual));
90+
Assert.True(m_socket.TryReceiveFrameBytes(out byte[]? actual));
9391

9492
Assert.Equal(TimeSpan.Zero, m_socket.LastTimeout);
9593
Assert.True(actual.SequenceEqual(expected));
@@ -107,7 +105,7 @@ public void TryReceiveFrameBytesWithMore()
107105
var expected1 = m_socket.PushFrame("Hello");
108106
var expected2 = m_socket.PushFrame("World");
109107

110-
Assert.True(m_socket.TryReceiveFrameBytes(out byte[] actual, out bool more));
108+
Assert.True(m_socket.TryReceiveFrameBytes(out byte[]? actual, out bool more));
111109

112110
Assert.Equal(TimeSpan.Zero, m_socket.LastTimeout);
113111
Assert.True(actual.SequenceEqual(expected1));

src/NetMQ.Tests/RequestWithRetryTests.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
#nullable disable
2-
3-
#if !NET35
1+
#if !NET35
42
using System;
53
using System.Diagnostics;
64
using NetMQ.Sockets;
@@ -44,7 +42,7 @@ public void RequestResponseMultipartMessageWithRetrySucceedsFirstTry()
4442
var responseMessage = RequestSocket.RequestResponseMultipartMessageWithRetry(address,
4543
requestMessage, numTries, requestTimeout, progressPublisher);
4644
Assert.NotNull(responseMessage);
47-
Assert.Equal(1, responseMessage.FrameCount);
45+
Assert.Equal(1, responseMessage!.FrameCount);
4846
var responseString = responseMessage.First.ConvertToString();
4947
Assert.Equal("Hi", responseString);
5048
}
@@ -125,7 +123,7 @@ public void RequestResponseMultipartMessageWithRetrySucceedsNotOnFirstTry()
125123
var responseMessage = RequestSocket.RequestResponseMultipartMessageWithRetry(address,
126124
requestMessage, numTries, requestTimeout, progressPublisher);
127125
Assert.NotNull(responseMessage);
128-
Assert.Equal(1, responseMessage.FrameCount);
126+
Assert.Equal(1, responseMessage!.FrameCount);
129127
var responseString = responseMessage.First.ConvertToString();
130128
Assert.Equal("Hi", responseString);
131129
}

src/NetMQ.Tests/SocketTests.cs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
#nullable disable
2-
3-
using System;
1+
using System;
42
using System.Collections.Generic;
53
using System.Diagnostics;
64
using System.Net;
@@ -122,12 +120,12 @@ public void ReceiveMessageWithTimeout()
122120
Thread.Sleep(100);
123121
pubSync.Set();
124122

125-
NetMQMessage msg = null;
123+
NetMQMessage? msg = null;
126124
Assert.False(subSocket.TryReceiveMultipartMessage(TimeSpan.FromMilliseconds(100), ref msg));
127125

128126
Assert.True(subSocket.TryReceiveMultipartMessage(TimeSpan.FromMilliseconds(waitTime), ref msg));
129127
Assert.NotNull(msg);
130-
Assert.Equal(1, msg.FrameCount);
128+
Assert.Equal(1, msg!.FrameCount);
131129
Assert.Equal(300, msg.First.MessageSize);
132130
pubSync.Set();
133131
}
@@ -752,9 +750,9 @@ public void InprocRouterDealerTest()
752750
{
753751
for (int i = 0; i < 2; i++)
754752
{
755-
void ThreadMethod(object state)
753+
void ThreadMethod(object? state)
756754
{
757-
byte[] routerId = (byte[]) state;
755+
byte[]? routerId = (byte[]?) state;
758756
byte[] workerId = Guid.NewGuid().ToByteArray();
759757
using (var workerSocket = new DealerSocket())
760758
{
@@ -891,7 +889,7 @@ public static void Unbind(this NetMQSocket sub)
891889

892890
Assert.NotNull(sub.Options.LastEndpoint);
893891

894-
sub.Unbind(sub.Options.LastEndpoint);
892+
sub.Unbind(sub.Options.LastEndpoint!);
895893
closed.Wait(1000);
896894

897895
monitor.Stop();

src/NetMQ.Tests/StreamTests.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
#nullable disable
2-
3-
using Xunit;
1+
using Xunit;
42

53
using NetMQ.Sockets;
64

@@ -19,7 +17,9 @@ public void StreamToStream()
1917
var port = server.BindRandomPort("tcp://*");
2018
client.Connect("tcp://127.0.0.1:" + port);
2119

22-
byte[] clientId = client.Options.Identity;
20+
byte[]? clientId = client.Options.Identity;
21+
22+
Assert.NotNull(clientId);
2323

2424
const string request = "GET /\r\n";
2525

@@ -28,7 +28,7 @@ public void StreamToStream()
2828
"\r\n" +
2929
"Hello, World!";
3030

31-
client.SendMoreFrame(clientId).SendFrame(request);
31+
client.SendMoreFrame(clientId!).SendFrame(request);
3232

3333
byte[] serverId = server.ReceiveFrameBytes();
3434
Assert.Equal(request, server.ReceiveFrameString());

src/NetMQ.Tests/XPubSubTests.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
#nullable disable
2-
3-
using System.Linq;
1+
using System.Linq;
42
using System.Threading;
53
using Xunit;
64
using NetMQ.Sockets;
@@ -315,7 +313,8 @@ public void Unsubscribe()
315313
pub.SendMoreFrame("A");
316314
pub.SendFrame("Hello");
317315

318-
Assert.False(sub.TryReceiveFrameString(out string str));
316+
Assert.False(sub.TryReceiveFrameString(out string? str));
317+
Assert.Null(str);
319318
}
320319
}
321320

src/NetMQ/Core/Mechanisms/CurveClientMechanism.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
#nullable disable
2-
31
using System;
42
using System.Diagnostics;
53
using System.Security.Cryptography;
@@ -26,8 +24,8 @@ enum State
2624

2725
private byte[] m_cnSecretKey;
2826
private byte[] m_cnPublicKey;
29-
private byte[] m_cnServerKey;
30-
private byte[] m_cnCookie;
27+
private byte[]? m_cnServerKey;
28+
private byte[]? m_cnCookie;
3129

3230
private State m_state;
3331

@@ -246,6 +244,8 @@ PushMsgResult ProcessReady(ref Msg msg)
246244
msg.Slice(6, 8).CopyTo(readyNonce.Slice(16));
247245
m_peerNonce = NetworkOrderBitsConverter.ToUInt64(msg, 6);
248246

247+
Assumes.NotNull(m_box);
248+
249249
bool isDecrypted = m_box.TryDecrypt(readyPlaintext, readyBox, readyNonce);
250250
if (!isDecrypted)
251251
return PushMsgResult.Error;

0 commit comments

Comments
 (0)