Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Commit 8bcf1ce

Browse files
sepidehkhstephentoub
authored andcommitted
Fix some of System.Net.HttpListener test failures on ILC
1 parent d3486ec commit 8bcf1ce

File tree

8 files changed

+46
-34
lines changed

8 files changed

+46
-34
lines changed

src/Common/tests/System/AssertExtensions.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
using System.Diagnostics;
66
using System.Runtime.InteropServices;
7+
using System.Threading.Tasks;
78
using Xunit;
89
using Xunit.Sdk;
910

@@ -60,6 +61,17 @@ public static T Throws<T>(string paramName, Func<object> testCode)
6061
return exception;
6162
}
6263

64+
public static async Task<T> ThrowsAsync<T>(string paramName, Func<Task> testCode)
65+
where T : ArgumentException
66+
{
67+
T exception = await Assert.ThrowsAsync<T>(testCode);
68+
69+
if (!RuntimeInformation.FrameworkDescription.StartsWith(".NET Native"))
70+
Assert.Equal(paramName, exception.ParamName);
71+
72+
return exception;
73+
}
74+
6375
public static void Throws<TNetCoreExceptionType, TNetFxExceptionType>(string paramName, Action action)
6476
where TNetCoreExceptionType : ArgumentException
6577
where TNetFxExceptionType : ArgumentException

src/System.Net.HttpListener/tests/AuthenticationTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,7 @@ public void ExtendedProtectionPolicy_SetNull_ThrowsArgumentNullException()
289289
{
290290
using (var listener = new HttpListener())
291291
{
292-
Assert.Throws<ArgumentNullException>("value", () => listener.ExtendedProtectionPolicy = null);
292+
AssertExtensions.Throws<ArgumentNullException>("value", () => listener.ExtendedProtectionPolicy = null);
293293
}
294294
}
295295

src/System.Net.HttpListener/tests/HttpListenerContextTests.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ await GetSocketContext(new string[] { headers }, async context =>
114114
public async Task AcceptWebSocketAsync_InvalidSubProtocol_ThrowsArgumentException(string subProtocol)
115115
{
116116
HttpListenerContext context = await GetWebSocketContext();
117-
await Assert.ThrowsAsync<ArgumentException>("subProtocol", () => context.AcceptWebSocketAsync(subProtocol));
117+
await AssertExtensions.ThrowsAsync<ArgumentException>("subProtocol", () => context.AcceptWebSocketAsync(subProtocol));
118118
}
119119

120120
[ActiveIssue(20246)] // CI hanging frequently
@@ -156,7 +156,7 @@ public async Task AcceptWebSocketAsync_NullArrayInArraySegment_ThrowsArgumentNul
156156
HttpListenerContext context = await GetWebSocketContext();
157157

158158
ArraySegment<byte> internalBuffer = new FakeArraySegment() { Array = null }.ToActual();
159-
await Assert.ThrowsAsync<ArgumentNullException>("internalBuffer.Array", () => context.AcceptWebSocketAsync(null, 1024, TimeSpan.MaxValue, internalBuffer));
159+
await AssertExtensions.ThrowsAsync<ArgumentNullException>("internalBuffer.Array", () => context.AcceptWebSocketAsync(null, 1024, TimeSpan.MaxValue, internalBuffer));
160160
}
161161

162162
[ActiveIssue(20246)] // CI hanging frequently
@@ -168,7 +168,7 @@ public async Task AcceptWebSocketAsync_InvalidOffsetInArraySegment_ThrowsArgumen
168168
HttpListenerContext context = await GetWebSocketContext();
169169

170170
ArraySegment<byte> internalBuffer = new FakeArraySegment() { Array = new byte[10], Offset = offset }.ToActual();
171-
await Assert.ThrowsAsync<ArgumentOutOfRangeException>("internalBuffer.Offset", () => context.AcceptWebSocketAsync(null, 1024, TimeSpan.MaxValue, internalBuffer));
171+
await AssertExtensions.ThrowsAsync<ArgumentOutOfRangeException>("internalBuffer.Offset", () => context.AcceptWebSocketAsync(null, 1024, TimeSpan.MaxValue, internalBuffer));
172172
}
173173

174174
[ActiveIssue(20246)] // CI hanging frequently
@@ -182,7 +182,7 @@ public async Task AcceptWebSocketAsync_InvalidCountInArraySegment_ThrowsArgument
182182
HttpListenerContext context = await GetWebSocketContext();
183183

184184
ArraySegment<byte> internalBuffer = new FakeArraySegment() { Array = new byte[10], Offset = offset, Count = count }.ToActual();
185-
await Assert.ThrowsAsync<ArgumentOutOfRangeException>("internalBuffer.Count", () => context.AcceptWebSocketAsync(null, 1024, TimeSpan.MaxValue, internalBuffer));
185+
await AssertExtensions.ThrowsAsync<ArgumentOutOfRangeException>("internalBuffer.Count", () => context.AcceptWebSocketAsync(null, 1024, TimeSpan.MaxValue, internalBuffer));
186186
}
187187

188188
private async Task GetSocketContext(string[] headers, Func<HttpListenerContext, Task> contextAction)

src/System.Net.HttpListener/tests/HttpListenerPrefixCollectionTests.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,8 @@ public void CopyTo_ArrayTooSmall_ThrowsArgumentOutOfRangeException()
138138
{
139139
var listener = new HttpListener();
140140
listener.Prefixes.Add("http://localhost:9200/");
141-
Assert.Throws<ArgumentOutOfRangeException>("array", () => listener.Prefixes.CopyTo((Array)new string[0], 0));
142-
Assert.Throws<ArgumentOutOfRangeException>("array", () => listener.Prefixes.CopyTo(new string[0], 0));
141+
AssertExtensions.Throws<ArgumentOutOfRangeException>("array", () => listener.Prefixes.CopyTo((Array)new string[0], 0));
142+
AssertExtensions.Throws<ArgumentOutOfRangeException>("array", () => listener.Prefixes.CopyTo(new string[0], 0));
143143
}
144144

145145
[Theory]
@@ -149,8 +149,8 @@ public void CopyTo_InvalidOffset_ThrowsArgumentOutOfRangeException(int offset)
149149
{
150150
var listener = new HttpListener();
151151
listener.Prefixes.Add("http://localhost:9200/");
152-
Assert.Throws<ArgumentOutOfRangeException>("offset", () => listener.Prefixes.CopyTo((Array)new string[1], offset));
153-
Assert.Throws<ArgumentOutOfRangeException>("offset", () => listener.Prefixes.CopyTo(new string[1], offset));
152+
AssertExtensions.Throws<ArgumentOutOfRangeException>("offset", () => listener.Prefixes.CopyTo((Array)new string[1], offset));
153+
AssertExtensions.Throws<ArgumentOutOfRangeException>("offset", () => listener.Prefixes.CopyTo(new string[1], offset));
154154
}
155155

156156
[Fact]
@@ -408,7 +408,7 @@ public void Add_InvalidPrefixAlreadyStarted_ThrowsHttpListenerExceptionOnAdd(str
408408
public void Add_InvalidPrefix_ThrowsArgumentException(string uriPrefix)
409409
{
410410
var listener = new HttpListener();
411-
Assert.Throws<ArgumentException>("uriPrefix", () => listener.Prefixes.Add(uriPrefix));
411+
AssertExtensions.Throws<ArgumentException>("uriPrefix", () => listener.Prefixes.Add(uriPrefix));
412412

413413
// If the prefix was invalid, it shouldn't be added to the list.
414414
Assert.Empty(listener.Prefixes);
@@ -419,7 +419,7 @@ public void Add_InvalidPrefix_ThrowsArgumentException(string uriPrefix)
419419
public void Add_NullPrefix_ThrowsArgumentNullException()
420420
{
421421
var listener = new HttpListener();
422-
Assert.Throws<ArgumentNullException>("uriPrefix", () => listener.Prefixes.Add(null));
422+
AssertExtensions.Throws<ArgumentNullException>("uriPrefix", () => listener.Prefixes.Add(null));
423423
}
424424

425425
[Fact]
@@ -465,7 +465,7 @@ public void Contains_NoSuchPrefix_ReturnsFalse(string uriPrefix)
465465
public void Contains_NullPrefix_ThrowsArgumentNullException()
466466
{
467467
var listener = new HttpListener();
468-
Assert.Throws<ArgumentNullException>("key", () => listener.Prefixes.Contains(null));
468+
AssertExtensions.Throws<ArgumentNullException>("key", () => listener.Prefixes.Contains(null));
469469
}
470470

471471
[Fact]
@@ -523,7 +523,7 @@ public void Remove_DisposedListener_ThrowsObjectDisposedException()
523523
public void Remove_NullPrefix_ThrowsArgumentNullException()
524524
{
525525
var listener = new HttpListener();
526-
Assert.Throws<ArgumentNullException>("uriPrefix", () => listener.Prefixes.Remove(null));
526+
AssertExtensions.Throws<ArgumentNullException>("uriPrefix", () => listener.Prefixes.Remove(null));
527527
}
528528

529529
[Fact]

src/System.Net.HttpListener/tests/HttpListenerRequestTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ public async Task EndGetClientCertificate_NullAsyncResult_ThrowsArgumentExceptio
265265
{
266266
await GetRequest("POST", null, null, (_, request) =>
267267
{
268-
Assert.Throws<ArgumentNullException>("asyncResult", () => request.EndGetClientCertificate(null));
268+
AssertExtensions.Throws<ArgumentNullException>("asyncResult", () => request.EndGetClientCertificate(null));
269269
});
270270
}
271271

@@ -278,8 +278,8 @@ await GetRequest("POST", null, null, (socket1, request1) =>
278278
{
279279
IAsyncResult beginGetClientCertificateResult1 = request1.BeginGetClientCertificate(null, null);
280280

281-
Assert.Throws<ArgumentException>("asyncResult", () => request2.EndGetClientCertificate(new CustomAsyncResult()));
282-
Assert.Throws<ArgumentException>("asyncResult", () => request2.EndGetClientCertificate(beginGetClientCertificateResult1));
281+
AssertExtensions.Throws<ArgumentException>("asyncResult", () => request2.EndGetClientCertificate(new CustomAsyncResult()));
282+
AssertExtensions.Throws<ArgumentException>("asyncResult", () => request2.EndGetClientCertificate(beginGetClientCertificateResult1));
283283
}).Wait();
284284
});
285285
}

src/System.Net.HttpListener/tests/HttpListenerResponseTests.Cookies.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ public async Task AppendCookie_ValidCookie_AddsCookieToCollection()
196196
public async Task AppendCookie_NullCookie_ThrowsArgumentNullException()
197197
{
198198
HttpListenerResponse response = await GetResponse();
199-
Assert.Throws<ArgumentNullException>("cookie", () => response.AppendCookie(null));
199+
AssertExtensions.Throws<ArgumentNullException>("cookie", () => response.AppendCookie(null));
200200
}
201201

202202
[ConditionalFact(nameof(PlatformDetection) + "." + nameof(PlatformDetection.IsNotOneCoreUAP))]
@@ -228,7 +228,7 @@ public async Task SetCookie_ValidCookie_ClonesCookie()
228228
public async Task SetCookie_NullCookie_ThrowsArgumentNullException()
229229
{
230230
HttpListenerResponse response = await GetResponse();
231-
Assert.Throws<ArgumentNullException>("cookie", () => response.SetCookie(null));
231+
AssertExtensions.Throws<ArgumentNullException>("cookie", () => response.SetCookie(null));
232232
}
233233

234234
[ConditionalFact(nameof(PlatformDetection) + "." + nameof(PlatformDetection.IsNotOneCoreUAP))]
@@ -238,10 +238,10 @@ public async Task SetCookie_CookieDoesntExist_ThrowsArgumentException()
238238
var cookie1 = new Cookie("name", "value");
239239

240240
response.SetCookie(cookie1);
241-
Assert.Throws<ArgumentException>("cookie", () => response.SetCookie(cookie1));
241+
AssertExtensions.Throws<ArgumentException>("cookie", () => response.SetCookie(cookie1));
242242

243243
var cookie2 = new Cookie("name", "value2");
244-
Assert.Throws<ArgumentException>("cookie", () => response.SetCookie(cookie2));
244+
AssertExtensions.Throws<ArgumentException>("cookie", () => response.SetCookie(cookie2));
245245
Assert.Equal(new Cookie[] { cookie2 }, response.Cookies.Cast<Cookie>());
246246
}
247247
}

src/System.Net.HttpListener/tests/HttpListenerResponseTests.Headers.cs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -29,17 +29,17 @@ public async Task AddHeader_ValidValue_ReplacesHeaderInCollection()
2929
public async Task AddHeader_NullOrEmptyName_ThrowsArgumentNullException()
3030
{
3131
HttpListenerResponse response = await GetResponse();
32-
Assert.Throws<ArgumentNullException>("name", () => response.AddHeader(null, ""));
33-
Assert.Throws<ArgumentNullException>("name", () => response.AddHeader("", ""));
32+
AssertExtensions.Throws<ArgumentNullException>("name", () => response.AddHeader(null, ""));
33+
AssertExtensions.Throws<ArgumentNullException>("name", () => response.AddHeader("", ""));
3434
}
3535

3636
[ConditionalFact(nameof(PlatformDetection) + "." + nameof(PlatformDetection.IsNotOneCoreUAP))]
3737
public async Task AddHeader_InvalidNameOrValue_ThrowsArgumentException()
3838
{
3939
HttpListenerResponse response = await GetResponse();
40-
Assert.Throws<ArgumentException>("name", () => response.AddHeader("\r \t \n", ""));
41-
Assert.Throws<ArgumentException>("name", () => response.AddHeader("(", ""));
42-
Assert.Throws<ArgumentException>("value", () => response.AddHeader("name", "value1\rvalue2\r"));
40+
AssertExtensions.Throws<ArgumentException>("name", () => response.AddHeader("\r \t \n", ""));
41+
AssertExtensions.Throws<ArgumentException>("name", () => response.AddHeader("(", ""));
42+
AssertExtensions.Throws<ArgumentException>("value", () => response.AddHeader("name", "value1\rvalue2\r"));
4343
}
4444

4545
[ConditionalFact(nameof(PlatformDetection) + "." + nameof(PlatformDetection.IsNotOneCoreUAP))]
@@ -60,16 +60,16 @@ public async Task AppendHeader_ValidValue_AddsHeaderToCollection()
6060
public async Task AppendHeader_NullOrEmptyName_ThrowsArgumentNullException(string name)
6161
{
6262
HttpListenerResponse response = await GetResponse();
63-
Assert.Throws<ArgumentNullException>("name", () => response.AppendHeader(null, ""));
63+
AssertExtensions.Throws<ArgumentNullException>("name", () => response.AppendHeader(null, ""));
6464
}
6565

6666
[ConditionalFact(nameof(PlatformDetection) + "." + nameof(PlatformDetection.IsNotOneCoreUAP))]
6767
public async Task AppendHeader_InvalidNameOrValue_ThrowsArgumentException()
6868
{
6969
HttpListenerResponse response = await GetResponse();
70-
Assert.Throws<ArgumentException>("name", () => response.AppendHeader("\r \t \n", ""));
71-
Assert.Throws<ArgumentException>("name", () => response.AppendHeader("(", ""));
72-
Assert.Throws<ArgumentException>("value", () => response.AppendHeader("name", "value1\rvalue2\r"));
70+
AssertExtensions.Throws<ArgumentException>("name", () => response.AppendHeader("\r \t \n", ""));
71+
AssertExtensions.Throws<ArgumentException>("name", () => response.AppendHeader("(", ""));
72+
AssertExtensions.Throws<ArgumentException>("value", () => response.AppendHeader("name", "value1\rvalue2\r"));
7373
}
7474

7575
[ConditionalFact(nameof(PlatformDetection) + "." + nameof(PlatformDetection.IsNotOneCoreUAP))]
@@ -401,7 +401,7 @@ public async Task StatusDescription_SetNull_ThrowsArgumentNullException()
401401
{
402402
using (HttpListenerResponse response = await GetResponse())
403403
{
404-
Assert.Throws<ArgumentNullException>("value", () => response.StatusDescription = null);
404+
AssertExtensions.Throws<ArgumentNullException>("value", () => response.StatusDescription = null);
405405
Assert.Equal("OK", response.StatusDescription);
406406
}
407407
}
@@ -415,7 +415,7 @@ public async Task StatusDescription_SetInvalid_ThrowsArgumentException(string st
415415
{
416416
using (HttpListenerResponse response = await GetResponse())
417417
{
418-
Assert.Throws<ArgumentException>("name", () => response.StatusDescription = statusDescription);
418+
AssertExtensions.Throws<ArgumentException>("name", () => response.StatusDescription = statusDescription);
419419
Assert.Equal("OK", response.StatusDescription);
420420
}
421421
}
@@ -764,7 +764,7 @@ public async Task ProtocolVersion_SetNull_ThrowsArgumentNullException()
764764
{
765765
using (HttpListenerResponse response = await GetResponse())
766766
{
767-
Assert.Throws<ArgumentNullException>("value", () => response.ProtocolVersion = null);
767+
AssertExtensions.Throws<ArgumentNullException>("value", () => response.ProtocolVersion = null);
768768
Assert.Equal(new Version(1, 1), response.ProtocolVersion);
769769
}
770770
}
@@ -777,7 +777,7 @@ public async Task ProtocolVersion_SetInvalid_ThrowsArgumentNullException(int maj
777777
{
778778
using (HttpListenerResponse response = await GetResponse())
779779
{
780-
Assert.Throws<ArgumentException>("value", () => response.ProtocolVersion = new Version(major, minor));
780+
AssertExtensions.Throws<ArgumentException>("value", () => response.ProtocolVersion = new Version(major, minor));
781781
Assert.Equal(new Version(1, 1), response.ProtocolVersion);
782782
}
783783
}

src/System.Net.HttpListener/tests/HttpListenerResponseTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -387,7 +387,7 @@ public async Task CloseResponseEntity_NullResponseEntity_ThrowsArgumentNullExcep
387387
{
388388
using (HttpListenerResponse response = await GetResponse())
389389
{
390-
Assert.Throws<ArgumentNullException>("responseEntity", () => response.Close(null, true));
390+
AssertExtensions.Throws<ArgumentNullException>("responseEntity", () => response.Close(null, true));
391391
}
392392
}
393393

0 commit comments

Comments
 (0)