Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/mcs/class
diff options
context:
space:
mode:
authormonojenkins <jo.shields+jenkins@xamarin.com>2016-01-29 17:50:15 +0300
committermonojenkins <jo.shields+jenkins@xamarin.com>2016-01-29 17:50:15 +0300
commit02d4680c096b6fc343fbe6efd164e265ea319ffe (patch)
treeb1a4105d47ce9cdb3559f89887bef591d7bbaba5 /mcs/class
parent5bb760e65fa5e793f33d6586d0241fa9ac6f53fc (diff)
parent08aa9adece3e549b85d9cd9551f6bbfda1f33564 (diff)
Merge pull request #2522 from ludovic-henry/test-socketresponder-task
[SocketResponder] Use Task instead of Thread + Use explicit delegate so it appears in stacktraces
Diffstat (limited to 'mcs/class')
-rwxr-xr-xmcs/class/System.Web.Services/Test/System.Web.Services.Protocols/SoapHttpClientProtocolTest.cs18
-rw-r--r--mcs/class/System/Test/System.Net.Sockets/TcpClientTest.cs8
-rw-r--r--mcs/class/System/Test/System.Net/HttpWebRequestTest.cs264
-rw-r--r--mcs/class/System/Test/System.Net/HttpWebResponseTest.cs128
-rw-r--r--mcs/class/System/Test/System.Net/WebClientTest.cs8
-rw-r--r--mcs/class/test-helpers/SocketResponder.cs91
6 files changed, 138 insertions, 379 deletions
diff --git a/mcs/class/System.Web.Services/Test/System.Web.Services.Protocols/SoapHttpClientProtocolTest.cs b/mcs/class/System.Web.Services/Test/System.Web.Services.Protocols/SoapHttpClientProtocolTest.cs
index 00873070036..0019e05c278 100755
--- a/mcs/class/System.Web.Services/Test/System.Web.Services.Protocols/SoapHttpClientProtocolTest.cs
+++ b/mcs/class/System.Web.Services/Test/System.Web.Services.Protocols/SoapHttpClientProtocolTest.cs
@@ -51,9 +51,7 @@ namespace MonoTests.System.Web.Services.Protocols
public void OutParametersTest ()
{
IPEndPoint localEP = new IPEndPoint (IPAddress.Loopback, 5000);
- using (SocketResponder sr = new SocketResponder (localEP, new SocketRequestHandler (OutParametersResponse))) {
- sr.Start ();
-
+ using (SocketResponder sr = new SocketResponder (localEP, s => OutParametersResponse (s))) {
FooService service = new FooService ();
service.Url = "http://" + IPAddress.Loopback.ToString () + ":5000/";
@@ -64,8 +62,6 @@ namespace MonoTests.System.Web.Services.Protocols
Assert.AreEqual (0, a, "#A2");
Assert.IsFalse (b, "#A3");
service.Dispose ();
-
- sr.Stop ();
}
}
@@ -74,9 +70,7 @@ namespace MonoTests.System.Web.Services.Protocols
public void FaultTest ()
{
IPEndPoint localEP = new IPEndPoint (IPAddress.Loopback, 5000);
- using (SocketResponder sr = new SocketResponder (localEP, new SocketRequestHandler (FaultResponse_Qualified))) {
- sr.Start ();
-
+ using (SocketResponder sr = new SocketResponder (localEP, s => FaultResponse_Qualified (s))) {
FooService service = new FooService ();
service.Url = "http://" + IPAddress.Loopback.ToString () + ":5000/";
try {
@@ -99,13 +93,9 @@ namespace MonoTests.System.Web.Services.Protocols
Assert.AreEqual ("Failure processing request.", ex.Message, "#A9");
}
service.Dispose ();
-
- sr.Stop ();
}
- using (SocketResponder sr = new SocketResponder (localEP, new SocketRequestHandler (FaultResponse_Unqualified))) {
- sr.Start ();
-
+ using (SocketResponder sr = new SocketResponder (localEP, s => FaultResponse_Unqualified (s))) {
FooService service = new FooService ();
service.Url = "http://" + IPAddress.Loopback.ToString () + ":5000/";
try {
@@ -128,8 +118,6 @@ namespace MonoTests.System.Web.Services.Protocols
Assert.AreEqual ("Failure processing request.", ex.Message, "#B9");
}
service.Dispose ();
-
- sr.Stop ();
}
}
diff --git a/mcs/class/System/Test/System.Net.Sockets/TcpClientTest.cs b/mcs/class/System/Test/System.Net.Sockets/TcpClientTest.cs
index d4769eb811b..fb9025b2310 100644
--- a/mcs/class/System/Test/System.Net.Sockets/TcpClientTest.cs
+++ b/mcs/class/System/Test/System.Net.Sockets/TcpClientTest.cs
@@ -78,9 +78,7 @@ namespace MonoTests.System.Net.Sockets
public void CloseTest ()
{
IPEndPoint localEP = new IPEndPoint (IPAddress.Loopback, 8765);
- using (SocketResponder sr = new SocketResponder (localEP, new SocketRequestHandler (CloseRequestHandler))) {
- sr.Start ();
-
+ using (SocketResponder sr = new SocketResponder (localEP, s => CloseRequestHandler (s))) {
TcpClient tcpClient = new TcpClient (IPAddress.Loopback.ToString (), 8765);
NetworkStream ns = tcpClient.GetStream ();
Assert.IsNotNull (ns, "#A1");
@@ -105,9 +103,7 @@ namespace MonoTests.System.Net.Sockets
*/
}
- using (SocketResponder sr = new SocketResponder (localEP, new SocketRequestHandler (CloseRequestHandler))) {
- sr.Start ();
-
+ using (SocketResponder sr = new SocketResponder (localEP, s => CloseRequestHandler (s))) {
TcpClient tcpClient = new TcpClient (IPAddress.Loopback.ToString (), 8765);
Assert.AreEqual (0, tcpClient.Available, "#B1");
Assert.IsTrue (tcpClient.Connected, "#B2");
diff --git a/mcs/class/System/Test/System.Net/HttpWebRequestTest.cs b/mcs/class/System/Test/System.Net/HttpWebRequestTest.cs
index 20ee8020a98..ea928e50b30 100644
--- a/mcs/class/System/Test/System.Net/HttpWebRequestTest.cs
+++ b/mcs/class/System/Test/System.Net/HttpWebRequestTest.cs
@@ -100,9 +100,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
req.Timeout = 2000;
@@ -119,8 +117,6 @@ namespace MonoTests.System.Net
response.Close ();
rs.Close ();
-
- responder.Stop ();
}
}
@@ -250,26 +246,24 @@ namespace MonoTests.System.Net
string url = "http://" + ep.ToString () + "/test/";
foreach (DictionaryEntry de in methods) {
- SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler));
- responder.Start ();
-
- HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
- req.Method = (string) de.Key;
- req.Timeout = 2000;
- req.ReadWriteTimeout = 2000;
- req.KeepAlive = false;
- Stream rs = req.GetRequestStream ();
- rs.Close ();
- using (HttpWebResponse resp = (HttpWebResponse) req.GetResponse ()) {
- StreamReader sr = new StreamReader (resp.GetResponseStream (),
- Encoding.UTF8);
- string line = sr.ReadLine ();
- sr.Close ();
- Assert.AreEqual (((string) de.Value) + " /test/ HTTP/1.1",
- line, req.Method);
- resp.Close ();
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
+ HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
+ req.Method = (string) de.Key;
+ req.Timeout = 2000;
+ req.ReadWriteTimeout = 2000;
+ req.KeepAlive = false;
+ Stream rs = req.GetRequestStream ();
+ rs.Close ();
+ using (HttpWebResponse resp = (HttpWebResponse) req.GetResponse ()) {
+ StreamReader sr = new StreamReader (resp.GetResponseStream (),
+ Encoding.UTF8);
+ string line = sr.ReadLine ();
+ sr.Close ();
+ Assert.AreEqual (((string) de.Value) + " /test/ HTTP/1.1",
+ line, req.Method);
+ resp.Close ();
+ }
}
- responder.Stop ();
}
}
@@ -279,9 +273,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest request;
request = (HttpWebRequest) WebRequest.Create (url);
@@ -318,9 +310,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest req;
Stream rs;
IAsyncResult ar;
@@ -374,9 +364,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest req;
req = (HttpWebRequest) WebRequest.Create (url);
@@ -471,9 +459,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
req.Abort ();
@@ -498,9 +484,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
req.Abort ();
@@ -525,9 +509,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
req.BeginGetRequestStream (null, null);
@@ -553,9 +535,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
IAsyncResult ar = req.BeginGetRequestStream (null, null);
@@ -583,9 +563,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
req.Timeout = 2000;
@@ -609,9 +587,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Timeout = 2000;
req.ReadWriteTimeout = 2000;
@@ -642,9 +618,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
req.Timeout = 2000;
@@ -666,9 +640,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
req.Abort ();
@@ -694,9 +666,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest req;
Stream rs;
@@ -763,9 +733,7 @@ namespace MonoTests.System.Net
string url = "http://" + ep.ToString () + "/test/";
// buffered, non-chunked
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest req;
Stream rs;
byte [] buffer;
@@ -815,9 +783,7 @@ namespace MonoTests.System.Net
}
// buffered, chunked
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest req;
Stream rs;
byte [] buffer;
@@ -853,9 +819,7 @@ namespace MonoTests.System.Net
}
// non-buffered, non-chunked
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest req;
Stream rs;
byte [] buffer;
@@ -907,9 +871,7 @@ namespace MonoTests.System.Net
}
// non-buffered, chunked
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest req;
Stream rs;
byte [] buffer;
@@ -973,9 +935,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
req.Abort ();
@@ -1001,9 +961,7 @@ namespace MonoTests.System.Net
IPEndPoint localEP = new IPEndPoint (IPAddress.Loopback, 8764);
string url = "http://" + localEP.ToString () + "/original/";
- using (SocketResponder responder = new SocketResponder (localEP, new SocketRequestHandler (RedirectRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (localEP, s => RedirectRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
req.AllowAutoRedirect = false;
@@ -1024,7 +982,6 @@ namespace MonoTests.System.Net
Assert.AreEqual (WebExceptionStatus.Timeout, ex.Status, "#5");
}
}
- responder.Stop ();
}
}
@@ -1035,9 +992,7 @@ namespace MonoTests.System.Net
string url = "http://" + localEP.ToString () + "/original/";
// allow autoredirect
- using (SocketResponder responder = new SocketResponder (localEP, new SocketRequestHandler (RedirectRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (localEP, s => RedirectRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
req.Timeout = 2000;
@@ -1056,13 +1011,10 @@ namespace MonoTests.System.Net
Assert.AreEqual ("GET", resp.Method, "#A3");
Assert.AreEqual ("LOOKS OK", body, "#A4");
}
- responder.Stop ();
}
// do not allow autoredirect
- using (SocketResponder responder = new SocketResponder (localEP, new SocketRequestHandler (RedirectRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (localEP, s => RedirectRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
req.AllowAutoRedirect = false;
@@ -1076,7 +1028,6 @@ namespace MonoTests.System.Net
Assert.AreEqual (url, resp.ResponseUri.ToString (), "#B2");
Assert.AreEqual ("POST", resp.Method, "#B3");
}
- responder.Stop ();
}
}
@@ -1086,9 +1037,7 @@ namespace MonoTests.System.Net
IPEndPoint localEP = new IPEndPoint (IPAddress.Loopback, 8769);
string url = "http://" + localEP.ToString () + "/original/";
- using (SocketResponder responder = new SocketResponder (localEP, new SocketRequestHandler (RedirectRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (localEP, s => RedirectRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
req.Timeout = 2000;
@@ -1107,7 +1056,6 @@ namespace MonoTests.System.Net
Assert.AreEqual ("GET", resp.Method, "#A3");
Assert.AreEqual ("LOOKS OK", body, "#A4");
}
- responder.Stop ();
}
}
@@ -1117,9 +1065,7 @@ namespace MonoTests.System.Net
IPEndPoint localEP = new IPEndPoint (IPAddress.Loopback, 8770);
string url = "http://" + localEP.ToString () + "/original/";
- using (SocketResponder responder = new SocketResponder (localEP, new SocketRequestHandler (RedirectRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (localEP, s => RedirectRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
req.Timeout = 2000;
@@ -1138,7 +1084,6 @@ namespace MonoTests.System.Net
Assert.AreEqual ("GET", resp.Method, "#A3");
Assert.AreEqual ("LOOKS OK", body, "#A4");
}
- responder.Stop ();
}
}
@@ -1148,9 +1093,7 @@ namespace MonoTests.System.Net
IPEndPoint localEP = new IPEndPoint (IPAddress.Loopback, 8771);
string url = "http://" + localEP.ToString () + "/original/";
- using (SocketResponder responder = new SocketResponder (localEP, new SocketRequestHandler (RedirectRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (localEP, s => RedirectRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
req.Timeout = 2000;
@@ -1169,7 +1112,6 @@ namespace MonoTests.System.Net
Assert.AreEqual ("GET", resp.Method, "#A3");
Assert.AreEqual ("LOOKS OK", body, "#A4");
}
- responder.Stop ();
}
}
@@ -1181,9 +1123,7 @@ namespace MonoTests.System.Net
string url = "http://" + localEP.ToString () + "/original/";
// POST
- using (SocketResponder responder = new SocketResponder (localEP, new SocketRequestHandler (InternalErrorHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (localEP, s => InternalErrorHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
req.Timeout = 2000;
@@ -1206,14 +1146,10 @@ namespace MonoTests.System.Net
Assert.AreEqual ("POST", webResponse.Method, "#A7");
webResponse.Close ();
}
-
- responder.Stop ();
}
// GET
- using (SocketResponder responder = new SocketResponder (localEP, new SocketRequestHandler (InternalErrorHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (localEP, s => InternalErrorHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
@@ -1233,8 +1169,6 @@ namespace MonoTests.System.Net
Assert.AreEqual ("GET", webResponse.Method, "#B6");
webResponse.Close ();
}
-
- responder.Stop ();
}
}
@@ -1246,9 +1180,7 @@ namespace MonoTests.System.Net
string url = "http://" + localEP.ToString () + "/original/";
// POST
- using (SocketResponder responder = new SocketResponder (localEP, new SocketRequestHandler (NoContentLengthHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (localEP, s => NoContentLengthHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
req.Timeout = 2000;
@@ -1288,14 +1220,10 @@ namespace MonoTests.System.Net
HttpWebResponse webResponse = ex.Response as HttpWebResponse;
Assert.IsNull (webResponse, "#A11");
}
-
- responder.Stop ();
}
// GET
- using (SocketResponder responder = new SocketResponder (localEP, new SocketRequestHandler (NoContentLengthHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (localEP, s => NoContentLengthHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
@@ -1317,8 +1245,6 @@ namespace MonoTests.System.Net
Assert.AreEqual ("GET", webResponse.Method, "#B6");
webResponse.Close ();
}
-
- responder.Stop ();
}
}
@@ -1328,9 +1254,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/moved/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (VerbEchoHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => VerbEchoHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "WhatEver";
req.KeepAlive = false;
@@ -1351,8 +1275,6 @@ namespace MonoTests.System.Net
Assert.AreEqual ("WhatEver", resp.Method, "#3");
Assert.AreEqual ("WhatEver", body, "#4");
}
-
- responder.Stop ();
}
}
@@ -1363,9 +1285,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (NotModifiedSinceHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => NotModifiedSinceHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.KeepAlive = false;
@@ -1393,8 +1313,6 @@ namespace MonoTests.System.Net
TimeSpan elapsed = DateTime.Now - start;
Assert.IsTrue (elapsed.TotalMilliseconds < 2000, "#4");
-
- responder.Stop ();
}
}
@@ -1504,11 +1422,7 @@ namespace MonoTests.System.Net
using (var responder = new SocketResponder (ep, TimeOutHandler))
{
- responder.Start ();
-
TestTimeOut (url, WebExceptionStatus.Timeout);
-
- responder.Stop ();
}
}
@@ -2771,9 +2685,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString ();
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (CookieRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => CookieRequestHandler (s))) {
CookieContainer container = new CookieContainer ();
container.Add(new Uri (url), new Cookie ("foo", "bar"));
HttpWebRequest request = (HttpWebRequest) WebRequest.Create (url);
@@ -2790,9 +2702,7 @@ namespace MonoTests.System.Net
Assert.AreEqual ("foo=bar", response.Headers.Get("Set-Cookie"), "#02");
}
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (CookieRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => CookieRequestHandler (s))) {
CookieContainer container = new CookieContainer ();
HttpWebRequest request = (HttpWebRequest) WebRequest.Create (url);
request.CookieContainer = container;
@@ -2859,9 +2769,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
@@ -2889,9 +2797,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
@@ -2918,9 +2824,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
@@ -2942,9 +2846,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
@@ -2966,9 +2868,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
@@ -2990,9 +2890,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
@@ -3014,9 +2912,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
@@ -3043,9 +2939,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
@@ -3071,9 +2965,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
@@ -3095,9 +2987,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
@@ -3123,9 +3013,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
@@ -3151,9 +3039,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
@@ -3181,9 +3067,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
@@ -3211,9 +3095,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
@@ -3241,9 +3123,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
@@ -3271,9 +3151,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
@@ -3301,9 +3179,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
@@ -3330,9 +3206,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
@@ -3359,9 +3233,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebRequestTest.EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebRequestTest.EchoRequestHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "POST";
diff --git a/mcs/class/System/Test/System.Net/HttpWebResponseTest.cs b/mcs/class/System/Test/System.Net/HttpWebResponseTest.cs
index b76bd8b9a54..580c5488907 100644
--- a/mcs/class/System/Test/System.Net/HttpWebResponseTest.cs
+++ b/mcs/class/System/Test/System.Net/HttpWebResponseTest.cs
@@ -29,9 +29,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => FullResponseHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
@@ -59,9 +57,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => FullResponseHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
@@ -80,9 +76,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => FullResponseHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
@@ -110,9 +104,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => FullResponseHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
@@ -132,9 +124,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => FullResponseHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
@@ -162,9 +152,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => FullResponseHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
@@ -202,9 +190,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => FullResponseHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
@@ -232,9 +218,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => FullResponseHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
@@ -262,9 +246,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => FullResponseHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
@@ -291,9 +273,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => FullResponseHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
@@ -321,9 +301,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => FullResponseHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
@@ -351,9 +329,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => FullResponseHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
@@ -381,9 +357,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => FullResponseHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
@@ -411,9 +385,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => FullResponseHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
@@ -441,9 +413,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => FullResponseHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
@@ -463,9 +433,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (FullResponseHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => FullResponseHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
@@ -516,9 +484,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebResponseTest.FullResponseHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
@@ -567,9 +533,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebResponseTest.FullResponseHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
@@ -602,9 +566,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebResponseTest.FullResponseHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
@@ -631,9 +593,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebResponseTest.FullResponseHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
@@ -660,9 +620,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebResponseTest.FullResponseHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
@@ -689,9 +647,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebResponseTest.FullResponseHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
@@ -718,9 +674,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebResponseTest.FullResponseHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
@@ -757,9 +711,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebResponseTest.FullResponseHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
@@ -808,9 +760,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebResponseTest.FullResponseHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
@@ -860,9 +810,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebResponseTest.FullResponseHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
@@ -912,9 +860,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebResponseTest.FullResponseHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
@@ -964,9 +910,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebResponseTest.FullResponseHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
@@ -1017,9 +961,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebResponseTest.FullResponseHandler (s))) {
HttpWebRequest req;
req = (HttpWebRequest) WebRequest.Create (url);
@@ -1082,9 +1024,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebResponseTest.FullResponseHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
@@ -1111,9 +1051,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebResponseTest.FullResponseHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
@@ -1145,9 +1083,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (HttpWebResponseTest.FullResponseHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => HttpWebResponseTest.FullResponseHandler (s))) {
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url);
req.Method = "GET";
req.Timeout = 2000;
diff --git a/mcs/class/System/Test/System.Net/WebClientTest.cs b/mcs/class/System/Test/System.Net/WebClientTest.cs
index 4b42be97f22..af3dcff673a 100644
--- a/mcs/class/System/Test/System.Net/WebClientTest.cs
+++ b/mcs/class/System/Test/System.Net/WebClientTest.cs
@@ -1423,9 +1423,7 @@ namespace MonoTests.System.Net
IPEndPoint ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString () + "/test/";
- using (SocketResponder responder = new SocketResponder (ep, new SocketRequestHandler (EchoRequestHandler))) {
- responder.Start ();
-
+ using (SocketResponder responder = new SocketResponder (ep, s => EchoRequestHandler (s))) {
WebClient wc = new WebClient ();
wc.Encoding = Encoding.ASCII;
@@ -1880,10 +1878,8 @@ namespace MonoTests.System.Net
var ep = NetworkHelpers.LocalEphemeralEndPoint ();
string url = "http://" + ep.ToString() + "/test/";
- using (var responder = new SocketResponder (ep, EchoRequestHandler))
+ using (var responder = new SocketResponder (ep, s => EchoRequestHandler (s)))
{
- responder.Start ();
-
var webClient = new WebClient ();
var cancellationTokenSource = new CancellationTokenSource ();
diff --git a/mcs/class/test-helpers/SocketResponder.cs b/mcs/class/test-helpers/SocketResponder.cs
index 40c9a372473..ba3d0b8ef71 100644
--- a/mcs/class/test-helpers/SocketResponder.cs
+++ b/mcs/class/test-helpers/SocketResponder.cs
@@ -32,91 +32,64 @@ using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Text;
-using System.Threading;
+using System.Threading.Tasks;
namespace MonoTests.Helpers
{
public delegate byte [] SocketRequestHandler (Socket socket);
+ public class SocketResponderException : Exception
+ {
+ public SocketResponderException (string message)
+ : base (message)
+ {
+ }
+ }
+
public class SocketResponder : IDisposable
{
private TcpListener tcpListener;
- private readonly IPEndPoint _localEndPoint;
- private Thread listenThread;
+ private Task listenTask;
private Socket listenSocket;
- private SocketRequestHandler _requestHandler;
- private int _state = 0;
- private readonly object _syncRoot = new object ();
+ private SocketRequestHandler requestHandler;
+ private bool disposed;
private const int SOCKET_CLOSED = 10004;
private const int SOCKET_INVALID_ARGS = 10022;
- private const int STATE_UNINITIALIZED = 0;
- private const int STATE_RUNNING = 1;
- private const int STATE_STOPPED = 2;
-
- public SocketResponder (IPEndPoint localEP, SocketRequestHandler requestHandler)
+ public SocketResponder (IPEndPoint ep, SocketRequestHandler rh)
{
- _localEndPoint = localEP;
- _requestHandler = requestHandler;
- }
+ requestHandler = rh;
- public IPEndPoint LocalEndPoint
- {
- get { return _localEndPoint; }
+ tcpListener = new TcpListener (ep);
+ tcpListener.Start ();
+
+ listenTask = Task.Run (Listen);
}
public void Dispose ()
{
- Stop ();
- }
+ if (disposed)
+ return;
- public bool IsStopped
- {
- get
- {
- lock (_syncRoot) {
- return _state != STATE_RUNNING;
- }
- }
- }
+ disposed = true;
- public void Start ()
- {
- lock (_syncRoot) {
- if (_state != STATE_UNINITIALIZED)
- throw new InvalidOperationException ("cannot restart SocketResponder");
- _state = STATE_RUNNING;
- tcpListener = new TcpListener (LocalEndPoint);
- tcpListener.Start ();
- listenThread = new Thread (new ThreadStart (Listen));
- listenThread.Start ();
- }
- }
+ tcpListener.Stop ();
- public void Stop ()
- {
- lock (_syncRoot) {
- if (_state != STATE_RUNNING)
- return;
- _state = STATE_STOPPED;
- if (tcpListener != null) {
- tcpListener.Stop ();
- tcpListener = null;
- if (listenSocket != null)
- listenSocket.Close ();
- Thread.Sleep (50);
- }
- }
+ if (listenSocket != null)
+ listenSocket.Close ();
+
+ if (!listenTask.Wait (5000))
+ throw new SocketResponderException ("Failed to stop in less than 5 seconds");
}
private void Listen ()
{
- while (_state == STATE_RUNNING) {
+ while (!disposed) {
listenSocket = null;
try {
listenSocket = tcpListener.AcceptSocket ();
- listenSocket.Send (_requestHandler (listenSocket));
+ listenSocket.Send (requestHandler (listenSocket));
try {
listenSocket.Shutdown (SocketShutdown.Receive);
listenSocket.Shutdown (SocketShutdown.Send);
@@ -124,11 +97,10 @@ namespace MonoTests.Helpers
}
} catch (SocketException ex) {
// ignore interruption of blocking call
- if (ex.ErrorCode != SOCKET_CLOSED && ex.ErrorCode != SOCKET_INVALID_ARGS && _state != STATE_STOPPED)
+ if (ex.ErrorCode != SOCKET_CLOSED && ex.ErrorCode != SOCKET_INVALID_ARGS && !disposed)
throw;
} catch (ObjectDisposedException ex) {
- Console.WriteLine (ex);
- if (_state != STATE_STOPPED)
+ if (!disposed)
throw;
#if MOBILE
} catch (InvalidOperationException ex) {
@@ -139,7 +111,6 @@ namespace MonoTests.Helpers
Console.WriteLine (ex);
#endif
} finally {
- Thread.Sleep (500);
if (listenSocket != null)
listenSocket.Close ();
}