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;