IpHlpApi unit test nullability fixed

nullableenabled
David Hall 2023-09-01 19:27:34 -06:00
parent 8a0edb4775
commit da11368492
2 changed files with 25 additions and 28 deletions

View File

@ -106,7 +106,7 @@ public partial class IpHlpApiTests
Assert.That(GetBestRoute(target, 0, out MIB_IPFORWARDROW fwdRow), Is.Zero);
var mibrow = new MIB_IPNETROW(target, fwdRow.dwForwardIfIndex, SendARP(target), MIB_IPNET_TYPE.MIB_IPNET_TYPE_DYNAMIC);
MIB_IPNETTABLE t1 = null;
MIB_IPNETTABLE? t1 = null;
Assert.That(() => t1 = GetIpNetTable(true), Throws.Nothing);
if (t1 != null && HasVal(t1, mibrow))
Assert.That(DeleteIpNetEntry(mibrow), Is.Zero);
@ -197,8 +197,9 @@ public partial class IpHlpApiTests
[Test]
public void GetBestInterfaceExTest()
{
System.Net.IPAddress gw = primaryAdapter.GatewayAddresses.Select(a => a.Address.Convert()).FirstOrDefault();
var sa = new SOCKADDR(gw.GetAddressBytes(), 0, gw.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork ? 0 : (uint)gw.ScopeId);
System.Net.IPAddress? gw = primaryAdapter.GatewayAddresses.Select(a => a.Address.Convert()).FirstOrDefault();
Assert.NotNull(gw);
var sa = new SOCKADDR(gw!.GetAddressBytes(), 0, gw.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork ? 0 : (uint)gw.ScopeId);
Assert.That(GetBestInterfaceEx(sa, out var idx), Is.Zero);
Assert.That(idx, Is.EqualTo(primaryAdapter.IfIndex));
}
@ -207,7 +208,7 @@ public partial class IpHlpApiTests
public void GetBestInterfaceTest()
{
#pragma warning disable CS0618 // Type or member is obsolete
var gw = (uint)primaryAdapter.GatewayAddresses.Select(a => a.Address.Convert()).FirstOrDefault().Address;
var gw = (uint)(primaryAdapter.GatewayAddresses.Select(a => a.Address.Convert()).FirstOrDefault()?.Address ?? 0L);
#pragma warning restore CS0618 // Type or member is obsolete
Assert.That(gw, Is.Not.Zero);
Assert.That(GetBestInterface(gw, out var idx), Is.Zero);
@ -464,7 +465,7 @@ public partial class IpHlpApiTests
{
if (type == TCP_ESTATS_TYPE.TcpConnectionEstatsSynOpts) continue;
Assert.That(GetPerTcp6ConnectionEStats(row, type, out var srw, out _, out _), ResultIs.Successful);
TestContext.Write(GetStats(srw));
TestContext.Write(GetStats(srw!));
}
ToggleAllEstats(row, false);
}
@ -480,7 +481,7 @@ public partial class IpHlpApiTests
{
if (type == TCP_ESTATS_TYPE.TcpConnectionEstatsSynOpts) continue;
Assert.That(GetPerTcpConnectionEStats(row, type, out var srw, out _, out _), ResultIs.Successful);
TestContext.Write(GetStats(srw));
TestContext.Write(GetStats(srw!));
}
ToggleAllEstats(row, false);
}
@ -565,7 +566,8 @@ public partial class IpHlpApiTests
public void SendARPTest() => Assert.That(() =>
{
var gw = primaryAdapter.GatewayAddresses.Select(a => a.Address.Convert().GetAddressBytes()).FirstOrDefault();
var mac = SendARP(new IN_ADDR(gw));
Assert.NotNull(gw);
var mac = SendARP(new IN_ADDR(gw!));
Assert.That(mac.Length, Is.EqualTo(6));
Assert.That(mac, Has.Some.Not.EqualTo(0));
}, Throws.Nothing);
@ -662,7 +664,7 @@ bail:
case TCP_ESTATS_TYPE.TcpConnectionEstatsFineRtt:
return SafeHGlobalHandle.CreateFromStructure(new TCP_ESTATS_FINE_RTT_RW_v0 { EnableCollection = enable });
default:
return null;
return SafeHGlobalHandle.Null;
}
}
@ -707,11 +709,12 @@ bail:
{
if (type == TCP_ESTATS_TYPE.TcpConnectionEstatsSynOpts) continue;
Assert.That(GetPerTcp6ConnectionEStats(serverConnectRow, type, out var srw, out _, out _), Is.Zero);
Console.Write(GetStats(srw));
Console.Write(GetStats(srw!));
Assert.That(GetPerTcp6ConnectionEStats(clientConnectRow, type, out var crw, out _, out _), Is.Zero);
Console.Write(GetStats(crw));
Console.Write(GetStats(crw!));
}
}
private MIB_TCP6ROW GetTcp6Row(ushort localPort, ushort remotePort, MIB_TCP_STATE state) =>
GetTcp6Table(true).First(r => r.dwLocalPort == localPort && r.dwRemotePort == remotePort && r.dwState == state);

View File

@ -150,10 +150,7 @@ public partial class IpHlpApiTests
return false;
}
static bool CompareArrays(byte* left, byte[] right)
{
return !right.Where((t, i) => left[i] != t).Any();
}
static bool CompareArrays(byte* left, byte[] right) => !right.Where((t, i) => left[i] != t).Any();
}
[Test]
@ -195,10 +192,7 @@ public partial class IpHlpApiTests
return false;
}
static unsafe bool CompareArrays(byte* left, byte[] right)
{
return !right.Where((t, i) => left[i] != t).Any();
}
static unsafe bool CompareArrays(byte* left, byte[] right) => !right.Where((t, i) => left[i] != t).Any();
}
[Test]
@ -226,9 +220,9 @@ public partial class IpHlpApiTests
{
var dest = primaryAdapter.MulticastAddresses.Select(ma => ma.Address.GetSOCKADDR().Ipv6).ToArray();
TestContext.WriteLine(string.Join("\r\n", dest));
SOCKADDR_IN6_PAIR_NATIVE[] result = null;
SOCKADDR_IN6_PAIR_NATIVE[]? result = null;
Assert.That(() => result = CreateSortedAddressPairs(dest), Throws.Nothing);
TestContext.WriteLine("\r\n" + string.Join("\r\n", result));
TestContext.WriteLine("\r\n" + string.Join("\r\n", result!));
Assert.That(result, Has.Length.GreaterThan(0));
}
@ -284,7 +278,7 @@ public partial class IpHlpApiTests
{
Assert.That(GetIfStackTable(out var table), ResultIs.Successful);
Assert.That(table.NumEntries, Is.GreaterThan(0));
Assert.That(table.Table.Length, Is.EqualTo(table.NumEntries));
Assert.That(table.Table!.Length, Is.EqualTo(table.NumEntries));
}
[Test]
@ -330,7 +324,7 @@ public partial class IpHlpApiTests
Assert.That(table.NumEntries, Is.GreaterThan(0));
Assert.That(() => table.Table, Throws.Nothing);
var goodRow = table.Table[0];
var goodRow = table.Table![0];
var row = new MIB_IPFORWARD_ROW2 { DestinationPrefix = goodRow.DestinationPrefix, NextHop = goodRow.NextHop, InterfaceLuid = goodRow.InterfaceLuid };
Assert.That(GetIpForwardEntry2(ref row), ResultIs.Successful);
Assert.That(row.InterfaceIndex, Is.Not.Zero.And.EqualTo(goodRow.InterfaceIndex));
@ -343,7 +337,7 @@ public partial class IpHlpApiTests
Assert.That(table.NumEntries, Is.GreaterThan(0));
Assert.That(() => table.Table, Throws.Nothing);
var goodRow = table.Table[0];
var goodRow = table.Table![0];
var row = new MIB_IPINTERFACE_ROW { Family = goodRow.Family, InterfaceLuid = goodRow.InterfaceLuid };
Assert.That(GetIpInterfaceEntry(ref row), ResultIs.Successful);
Assert.That(row.InterfaceIndex, Is.Not.Zero.And.EqualTo(goodRow.InterfaceIndex));
@ -364,7 +358,7 @@ public partial class IpHlpApiTests
Assert.That(table.NumEntries, Is.GreaterThan(0));
Assert.That(() => table.Table, Throws.Nothing);
var goodRow = table.Table[0];
var goodRow = table.Table![0];
var row = new MIB_IPPATH_ROW { Destination = goodRow.Destination, InterfaceLuid = goodRow.InterfaceLuid };
Assert.That(GetIpPathEntry(ref row), ResultIs.Successful);
Assert.That((int)row.Source.si_family, Is.Not.Zero);
@ -377,7 +371,7 @@ public partial class IpHlpApiTests
Assert.That(table.NumEntries, Is.GreaterThan(0));
Assert.That(() => table.Table, Throws.Nothing);
var goodRow = table.Table[0];
var goodRow = table.Table![0];
var row = new MIB_MULTICASTIPADDRESS_ROW { Address = goodRow.Address, InterfaceLuid = goodRow.InterfaceLuid };
Assert.That(GetMulticastIpAddressEntry(ref row), ResultIs.Successful);
Assert.That(row.InterfaceIndex, Is.Not.Zero.And.EqualTo(goodRow.InterfaceIndex));
@ -407,7 +401,7 @@ public partial class IpHlpApiTests
Assert.That(table.NumEntries, Is.GreaterThan(0));
Assert.That(() => table.Table, Throws.Nothing);
var goodRow = table.Table[0];
var goodRow = table.Table![0];
var row = new MIB_IPNET_ROW2 { Address = goodRow.Address, InterfaceLuid = goodRow.InterfaceLuid };
Assert.That(GetIpNetEntry2(ref row), ResultIs.Successful);
Assert.That(row.InterfaceIndex, Is.Not.Zero.And.EqualTo(goodRow.InterfaceIndex));
@ -419,7 +413,7 @@ public partial class IpHlpApiTests
[Test]
public void GetTeredoPortTest()
{
Assert.That((uint)GetTeredoPort(out var port), Is.Zero.Or.EqualTo(Win32Error.ERROR_NOT_READY));
Assert.That((uint)GetTeredoPort(out _), Is.Zero.Or.EqualTo(Win32Error.ERROR_NOT_READY));
}
[Test]
@ -429,7 +423,7 @@ public partial class IpHlpApiTests
Assert.That(table.NumEntries, Is.GreaterThan(0));
Assert.That(() => table.Table, Throws.Nothing);
var goodRow = table.Table[0];
var goodRow = table.Table![0];
var row = new MIB_UNICASTIPADDRESS_ROW { Address = goodRow.Address, InterfaceLuid = goodRow.InterfaceLuid };
Assert.That(GetUnicastIpAddressEntry(ref row), ResultIs.Successful);
Assert.That(row.CreationTimeStamp, Is.Not.Zero.And.EqualTo(goodRow.CreationTimeStamp));