diff --git a/DnsClientX.Tests/DnsClientX.Tests.csproj b/DnsClientX.Tests/DnsClientX.Tests.csproj index 09e4a3b1..0202d6be 100644 --- a/DnsClientX.Tests/DnsClientX.Tests.csproj +++ b/DnsClientX.Tests/DnsClientX.Tests.csproj @@ -34,7 +34,7 @@ runtime; build; native; contentfiles; analyzers; buildtransitive all - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/DnsClientX.Tests/DnsCryptTestServer.cs b/DnsClientX.Tests/DnsCryptTestServer.cs index b2ddf484..88d35e8f 100644 --- a/DnsClientX.Tests/DnsCryptTestServer.cs +++ b/DnsClientX.Tests/DnsCryptTestServer.cs @@ -46,9 +46,8 @@ internal sealed class DnsCryptTestServer : IDisposable { internal DnsCryptTestServer(ushort system = 2) { System = system; Certificate = SignedCertificate(system); - _tcp = new TcpListener(IPAddress.Loopback, 0); _tcp.Start(); + (_udp, _tcp) = TestUtilities.BindUdpAndTcp(); Endpoint = (IPEndPoint)_tcp.LocalEndpoint; - _udp = new UdpClient(Endpoint); _udpLoop = ServeUdp(); _tcpLoop = ServeTcp(); } diff --git a/DnsClientX.Tests/NativeEncryptedDnsFixture.cs b/DnsClientX.Tests/NativeEncryptedDnsFixture.cs index 5c2aab5c..c9057bbc 100644 --- a/DnsClientX.Tests/NativeEncryptedDnsFixture.cs +++ b/DnsClientX.Tests/NativeEncryptedDnsFixture.cs @@ -136,6 +136,8 @@ private async Task ServeStreamAsync(QuicStream stream) { byte[] query = new byte[(prefix[0] << 8) | prefix[1]]; await stream.ReadExactlyAsync(query, _lifetime.Token); Assert.Equal(0, query[0] | query[1]); + // Consume the request FIN before disposal can abort the client's write side. + Assert.Equal(0, await stream.ReadAsync(new byte[1], _lifetime.Token)); byte[] response = await RespondAsync(query, _lifetime.Token); prefix[0] = (byte)(response.Length >> 8); prefix[1] = (byte)response.Length;