|
|
@@ -38,6 +38,8 @@ using System.Threading;
|
|
|
|
|
|
using NUnit.Framework;
|
|
|
|
|
|
+using MonoTests.Helpers;
|
|
|
+
|
|
|
// ***************************************************************************************
|
|
|
// NOTE: when adding prefixes, make then unique per test, as MS might take 'some time' to
|
|
|
// unregister it even after explicitly closing the listener.
|
|
|
@@ -136,8 +138,9 @@ namespace MonoTests.System.Net {
|
|
|
[Test]
|
|
|
public void Test1 ()
|
|
|
{
|
|
|
- _listener = CreateAndStartListener ("http://127.0.0.1:9000/test1/");
|
|
|
- NetworkStream ns = CreateNS (9000);
|
|
|
+ var port = NetworkHelpers.FindFreePort ();
|
|
|
+ _listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/test1/");
|
|
|
+ NetworkStream ns = CreateNS (port);
|
|
|
Send (ns, "GET / HTTP/1.1\r\n\r\n"); // No host
|
|
|
string response = Receive (ns, 512);
|
|
|
ns.Close ();
|
|
|
@@ -147,8 +150,9 @@ namespace MonoTests.System.Net {
|
|
|
[Test]
|
|
|
public void Test2 ()
|
|
|
{
|
|
|
- _listener = CreateAndStartListener ("http://127.0.0.1:9000/test2/");
|
|
|
- NetworkStream ns = CreateNS (9000);
|
|
|
+ var port = NetworkHelpers.FindFreePort ();
|
|
|
+ _listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/test2/");
|
|
|
+ NetworkStream ns = CreateNS (port);
|
|
|
Send (ns, "GET / HTTP/1.1\r\nHost: 127.0.0.1\r\n\r\n"); // no prefix
|
|
|
string response = Receive (ns, 512);
|
|
|
ns.Close ();
|
|
|
@@ -182,8 +186,9 @@ namespace MonoTests.System.Net {
|
|
|
bad.Append ('}');
|
|
|
|
|
|
foreach (char b in bad.ToString ()){
|
|
|
- HttpListener listener = CreateAndStartListener ("http://127.0.0.1:9000/test3/");
|
|
|
- NetworkStream ns = CreateNS (9000);
|
|
|
+ var port = NetworkHelpers.FindFreePort ();
|
|
|
+ HttpListener listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/test3/");
|
|
|
+ NetworkStream ns = CreateNS (port);
|
|
|
Send (ns, String.Format ("MA{0} / HTTP/1.1\r\nHost: 127.0.0.1\r\n\r\n", b)); // bad method
|
|
|
|
|
|
string response = Receive (ns, 512);
|
|
|
@@ -196,8 +201,9 @@ namespace MonoTests.System.Net {
|
|
|
[Test]
|
|
|
public void Test4 ()
|
|
|
{
|
|
|
- _listener = CreateAndStartListener ("http://127.0.0.1:9000/test4/");
|
|
|
- NetworkStream ns = CreateNS (9000);
|
|
|
+ var port = NetworkHelpers.FindFreePort ();
|
|
|
+ _listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/test4/");
|
|
|
+ NetworkStream ns = CreateNS (port);
|
|
|
Send (ns, "POST /test4/ HTTP/1.1\r\nHost: 127.0.0.1\r\n\r\n"); // length required
|
|
|
string response = Receive (ns, 512);
|
|
|
ns.Close ();
|
|
|
@@ -207,8 +213,9 @@ namespace MonoTests.System.Net {
|
|
|
[Test]
|
|
|
public void Test5 ()
|
|
|
{
|
|
|
- _listener = CreateAndStartListener ("http://127.0.0.1:9000/test5/");
|
|
|
- NetworkStream ns = CreateNS (9000);
|
|
|
+ var port = NetworkHelpers.FindFreePort ();
|
|
|
+ _listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/test5/");
|
|
|
+ NetworkStream ns = CreateNS (port);
|
|
|
Send (ns, "POST / HTTP/1.1\r\nHost: 127.0.0.1\r\nTransfer-Encoding: pepe\r\n\r\n"); // not implemented
|
|
|
string response = Receive (ns, 512);
|
|
|
ns.Close ();
|
|
|
@@ -218,8 +225,9 @@ namespace MonoTests.System.Net {
|
|
|
[Test]
|
|
|
public void Test6 ()
|
|
|
{
|
|
|
- _listener = CreateAndStartListener ("http://127.0.0.1:9000/test6/");
|
|
|
- NetworkStream ns = CreateNS (9000);
|
|
|
+ var port = NetworkHelpers.FindFreePort ();
|
|
|
+ _listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/test6/");
|
|
|
+ NetworkStream ns = CreateNS (port);
|
|
|
// not implemented! This is against the RFC. Should be a bad request/length required
|
|
|
Send (ns, "POST /test6/ HTTP/1.1\r\nHost: 127.0.0.1\r\nTransfer-Encoding: identity\r\n\r\n");
|
|
|
string response = Receive (ns, 512);
|
|
|
@@ -230,8 +238,9 @@ namespace MonoTests.System.Net {
|
|
|
[Test]
|
|
|
public void Test7 ()
|
|
|
{
|
|
|
- _listener = CreateAndStartListener ("http://127.0.0.1:9000/test7/");
|
|
|
- NetworkStream ns = CreateNS (9000);
|
|
|
+ var port = NetworkHelpers.FindFreePort ();
|
|
|
+ _listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/test7/");
|
|
|
+ NetworkStream ns = CreateNS (port);
|
|
|
Send (ns, "POST /test7/ HTTP/1.1\r\nHost: 127.0.0.1\r\nContent-Length: 3\r\n\r\n123");
|
|
|
HttpListenerContext ctx = _listener.GetContext ();
|
|
|
Send (ctx.Response.OutputStream, "%%%OK%%%");
|
|
|
@@ -245,8 +254,9 @@ namespace MonoTests.System.Net {
|
|
|
[Test]
|
|
|
public void Test8 ()
|
|
|
{
|
|
|
- _listener = CreateAndStartListener ("http://127.0.0.1:9000/test8/");
|
|
|
- NetworkStream ns = CreateNS (9000);
|
|
|
+ var port = NetworkHelpers.FindFreePort ();
|
|
|
+ _listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/test8/");
|
|
|
+ NetworkStream ns = CreateNS (port);
|
|
|
// Just like Test7, but 1.0
|
|
|
Send (ns, "POST /test8/ HTTP/1.0\r\nHost: 127.0.0.1\r\nContent-Length: 3\r\n\r\n123");
|
|
|
HttpListenerContext ctx = _listener.GetContext ();
|
|
|
@@ -261,9 +271,10 @@ namespace MonoTests.System.Net {
|
|
|
[Test]
|
|
|
public void Test9 ()
|
|
|
{
|
|
|
+ var port = NetworkHelpers.FindFreePort ();
|
|
|
// 1.0 + "Transfer-Encoding: chunked"
|
|
|
- _listener = CreateAndStartListener ("http://127.0.0.1:9000/test9/");
|
|
|
- NetworkStream ns = CreateNS (9000);
|
|
|
+ _listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/test9/");
|
|
|
+ NetworkStream ns = CreateNS (port);
|
|
|
Send (ns, "POST /test9/ HTTP/1.0\r\nHost: 127.0.0.1\r\nTransfer-Encoding: chunked\r\n\r\n3\r\n123\r\n0\r\n\r\n");
|
|
|
bool timeout;
|
|
|
string response = ReceiveWithTimeout (ns, 512, 1000, out timeout);
|
|
|
@@ -275,9 +286,10 @@ namespace MonoTests.System.Net {
|
|
|
[Test]
|
|
|
public void Test10 ()
|
|
|
{
|
|
|
+ var port = NetworkHelpers.FindFreePort ();
|
|
|
// Same as Test9, but now we shutdown the socket for sending.
|
|
|
- _listener = CreateAndStartListener ("http://127.0.0.1:9000/test10/");
|
|
|
- MyNetworkStream ns = CreateNS (9000);
|
|
|
+ _listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/test10/");
|
|
|
+ MyNetworkStream ns = CreateNS (port);
|
|
|
Send (ns, "POST /test10/ HTTP/1.0\r\nHost: 127.0.0.1\r\nTransfer-Encoding: chunked\r\n\r\n3\r\n123\r\n0\r\n\r\n");
|
|
|
ns.GetSocket ().Shutdown (SocketShutdown.Send);
|
|
|
bool timeout;
|
|
|
@@ -290,9 +302,10 @@ namespace MonoTests.System.Net {
|
|
|
[Test]
|
|
|
public void Test11 ()
|
|
|
{
|
|
|
+ var port = NetworkHelpers.FindFreePort ();
|
|
|
// 0.9
|
|
|
- _listener = CreateAndStartListener ("http://127.0.0.1:9000/test11/");
|
|
|
- MyNetworkStream ns = CreateNS (9000);
|
|
|
+ _listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/test11/");
|
|
|
+ MyNetworkStream ns = CreateNS (port);
|
|
|
Send (ns, "POST /test11/ HTTP/0.9\r\nHost: 127.0.0.1\r\n\r\n123");
|
|
|
ns.GetSocket ().Shutdown (SocketShutdown.Send);
|
|
|
string input = Receive (ns, 512);
|
|
|
@@ -303,9 +316,10 @@ namespace MonoTests.System.Net {
|
|
|
[Test]
|
|
|
public void Test12 ()
|
|
|
{
|
|
|
+ var port = NetworkHelpers.FindFreePort ();
|
|
|
// 0.9
|
|
|
- _listener = CreateAndStartListener ("http://127.0.0.1:9000/test12/");
|
|
|
- MyNetworkStream ns = CreateNS (9000);
|
|
|
+ _listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/test12/");
|
|
|
+ MyNetworkStream ns = CreateNS (port);
|
|
|
Send (ns, "POST /test12/ HTTP/0.9\r\nHost: 127.0.0.1\r\nContent-Length: 3\r\n\r\n123");
|
|
|
ns.GetSocket ().Shutdown (SocketShutdown.Send);
|
|
|
string input = Receive (ns, 512);
|
|
|
@@ -316,9 +330,10 @@ namespace MonoTests.System.Net {
|
|
|
[Test]
|
|
|
public void Test13 ()
|
|
|
{
|
|
|
+ var port = NetworkHelpers.FindFreePort ();
|
|
|
// 0.9
|
|
|
- _listener = CreateAndStartListener ("http://127.0.0.1:9000/test13/");
|
|
|
- MyNetworkStream ns = CreateNS (9000);
|
|
|
+ _listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/test13/");
|
|
|
+ MyNetworkStream ns = CreateNS (port);
|
|
|
Send (ns, "GEt /test13/ HTTP/0.9\r\nHost: 127.0.0.1\r\n\r\n");
|
|
|
ns.GetSocket ().Shutdown (SocketShutdown.Send);
|
|
|
string input = Receive (ns, 512);
|
|
|
@@ -332,8 +347,9 @@ namespace MonoTests.System.Net {
|
|
|
[Test]
|
|
|
public void Test14 ()
|
|
|
{
|
|
|
- _listener = CreateAndStartListener ("http://127.0.0.1:9000/test14/");
|
|
|
- MyNetworkStream ns = CreateNS (9000);
|
|
|
+ var port = NetworkHelpers.FindFreePort ();
|
|
|
+ _listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/test14/");
|
|
|
+ MyNetworkStream ns = CreateNS (port);
|
|
|
Send (ns, "POST /test14/ HTTP/1.0\r\nHost: 127.0.0.1\r\nContent-Length: 3\r\n\r\n123");
|
|
|
HttpListenerContext c = _listener.GetContext ();
|
|
|
test14_request = c.Request;
|
|
|
@@ -367,9 +383,10 @@ namespace MonoTests.System.Net {
|
|
|
[Test]
|
|
|
public void Test15 ()
|
|
|
{
|
|
|
+ var port = NetworkHelpers.FindFreePort ();
|
|
|
// 2 separate writes -> 2 packets. Body size > 8kB
|
|
|
- _listener = CreateAndStartListener ("http://127.0.0.1:9000/test15/");
|
|
|
- MyNetworkStream ns = CreateNS (9000);
|
|
|
+ _listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/test15/");
|
|
|
+ MyNetworkStream ns = CreateNS (port);
|
|
|
Send (ns, "POST /test15/ HTTP/1.0\r\nHost: 127.0.0.1\r\nContent-Length: 8888\r\n\r\n");
|
|
|
Thread.Sleep (800);
|
|
|
string data = new string ('a', 8888);
|
|
|
@@ -388,9 +405,10 @@ namespace MonoTests.System.Net {
|
|
|
[Test]
|
|
|
public void Test16 ()
|
|
|
{
|
|
|
+ var port = NetworkHelpers.FindFreePort ();
|
|
|
// 1 single write with headers + body (size > 8kB)
|
|
|
- _listener = CreateAndStartListener ("http://127.0.0.1:9000/test16/");
|
|
|
- MyNetworkStream ns = CreateNS (9000);
|
|
|
+ _listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/test16/");
|
|
|
+ MyNetworkStream ns = CreateNS (port);
|
|
|
StringBuilder sb = new StringBuilder ();
|
|
|
sb.Append ("POST /test16/ HTTP/1.0\r\nHost: 127.0.0.1\r\nContent-Length: 8888\r\n\r\n");
|
|
|
string eights = new string ('b', 8888);
|
|
|
@@ -411,8 +429,9 @@ namespace MonoTests.System.Net {
|
|
|
[Test]
|
|
|
public void Test17 ()
|
|
|
{
|
|
|
- _listener = CreateAndStartListener ("http://127.0.0.1:9000/test17/");
|
|
|
- NetworkStream ns = CreateNS (9000);
|
|
|
+ var port = NetworkHelpers.FindFreePort ();
|
|
|
+ _listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/test17/");
|
|
|
+ NetworkStream ns = CreateNS (port);
|
|
|
Send (ns, "RANDOM /test17/ HTTP/1.1\r\nHost: 127.0.0.1\r\nContent-Length: 3\r\n\r\n123");
|
|
|
HttpListenerContext ctx = _listener.GetContext ();
|
|
|
Send (ctx.Response.OutputStream, "%%%OK%%%");
|
|
|
@@ -426,8 +445,9 @@ namespace MonoTests.System.Net {
|
|
|
[Test]
|
|
|
public void Test_MultipleClosesOnOuputStreamAllowed ()
|
|
|
{
|
|
|
- _listener = CreateAndStartListener ("http://127.0.0.1:9000/MultipleCloses/");
|
|
|
- NetworkStream ns = CreateNS (9000);
|
|
|
+ var port = NetworkHelpers.FindFreePort ();
|
|
|
+ _listener = CreateAndStartListener ("http://127.0.0.1:" + port + "/MultipleCloses/");
|
|
|
+ NetworkStream ns = CreateNS (port);
|
|
|
Send (ns, "GET /MultipleCloses/ HTTP/1.1\r\nHost: 127.0.0.1\r\n\r\n");
|
|
|
|
|
|
HttpListenerContext ctx = _listener.GetContext ();
|
|
|
@@ -438,8 +458,8 @@ namespace MonoTests.System.Net {
|
|
|
}
|
|
|
|
|
|
void SendCookie ()
|
|
|
- {
|
|
|
- NetworkStream ns = CreateNS (9000);
|
|
|
+ {
|
|
|
+ NetworkStream ns = CreateNS (sendCookiePort);
|
|
|
Send (ns, "GET /SendCookie/ HTTP/1.1\r\nHost: 127.0.0.1\r\n"+
|
|
|
"Cookie:$Version=\"1\"; "+
|
|
|
"Cookie1=Value1; $Path=\"/\"; "+
|
|
|
@@ -455,7 +475,8 @@ namespace MonoTests.System.Net {
|
|
|
[Test]
|
|
|
public void ReceiveCookiesFromClient ()
|
|
|
{
|
|
|
- _listener = CreateAndStartListener ("http://127.0.0.1:9000/SendCookie/");
|
|
|
+ sendCookiePort = NetworkHelpers.FindFreePort ();
|
|
|
+ _listener = CreateAndStartListener ("http://127.0.0.1:" + sendCookiePort + "/SendCookie/");
|
|
|
Thread clientThread = new Thread (new ThreadStart (SendCookie));
|
|
|
clientThread.Start ();
|
|
|
|
|
|
@@ -486,10 +507,12 @@ namespace MonoTests.System.Net {
|
|
|
|
|
|
private object _lock = new Object();
|
|
|
private string cookieResponse;
|
|
|
+ private int receiveCookiePort;
|
|
|
+ private int sendCookiePort;
|
|
|
|
|
|
void ReceiveCookie () {
|
|
|
lock (_lock) {
|
|
|
- NetworkStream ns = CreateNS (9000);
|
|
|
+ NetworkStream ns = CreateNS (receiveCookiePort);
|
|
|
Send (ns, "GET /ReceiveCookie/ HTTP/1.1\r\nHost: 127.0.0.1\r\n\r\n");
|
|
|
cookieResponse = Receive (ns, 512);
|
|
|
}
|
|
|
@@ -498,7 +521,8 @@ namespace MonoTests.System.Net {
|
|
|
[Test]
|
|
|
public void SendCookiestoClient ()
|
|
|
{
|
|
|
- _listener = CreateAndStartListener ("http://127.0.0.1:9000/ReceiveCookie/");
|
|
|
+ receiveCookiePort = NetworkHelpers.FindFreePort ();
|
|
|
+ _listener = CreateAndStartListener ("http://127.0.0.1:" + receiveCookiePort + "/ReceiveCookie/");
|
|
|
Thread clientThread = new Thread (new ThreadStart (ReceiveCookie));
|
|
|
clientThread.Start ();
|
|
|
|
|
|
@@ -548,6 +572,7 @@ namespace MonoTests.System.Net {
|
|
|
[Test]
|
|
|
public void MultiResponses ()
|
|
|
{
|
|
|
+ echoServerPort = NetworkHelpers.FindFreePort ();
|
|
|
Thread srv = new Thread (new ThreadStart (EchoServer));
|
|
|
srv.Start ();
|
|
|
Thread.Sleep (200);
|
|
|
@@ -557,7 +582,7 @@ namespace MonoTests.System.Net {
|
|
|
"Client{0}", i);
|
|
|
|
|
|
HttpWebRequest req = (HttpWebRequest) WebRequest.Create (
|
|
|
- "http://localhost:8888/foobar/");
|
|
|
+ "http://localhost:" + echoServerPort + "/foobar/");
|
|
|
req.ServicePoint.Expect100Continue = false;
|
|
|
req.ServicePoint.UseNagleAlgorithm = false;
|
|
|
req.Method = "POST";
|
|
|
@@ -575,10 +600,11 @@ namespace MonoTests.System.Net {
|
|
|
srv.Join ();
|
|
|
}
|
|
|
|
|
|
+ int echoServerPort;
|
|
|
void EchoServer ()
|
|
|
{
|
|
|
_listener = new HttpListener ();
|
|
|
- _listener.Prefixes.Add ("http://*:8888/foobar/");
|
|
|
+ _listener.Prefixes.Add ("http://*:" + echoServerPort + "/foobar/");
|
|
|
_listener.Start ();
|
|
|
|
|
|
manualReset = new ManualResetEvent (false);
|
|
|
@@ -613,11 +639,12 @@ namespace MonoTests.System.Net {
|
|
|
[Test]
|
|
|
public void TestNonChunkedAsync ()
|
|
|
{
|
|
|
- HttpListener listener = HttpListener2Test.CreateAndStartListener ("http://127.0.0.1:9123/");
|
|
|
+ var port = NetworkHelpers.FindFreePort ();
|
|
|
+ HttpListener listener = HttpListener2Test.CreateAndStartListener ("http://127.0.0.1:" + port + "/");
|
|
|
|
|
|
listener.BeginGetContext (callback, listener);
|
|
|
|
|
|
- HttpListener2Test.MyNetworkStream ns = HttpListener2Test.CreateNS (9123);
|
|
|
+ HttpListener2Test.MyNetworkStream ns = HttpListener2Test.CreateNS (port);
|
|
|
string message = "<script>\n"+
|
|
|
" <!-- register the blueprint for our show-headers service -->\n"+
|
|
|
" <action verb=\"POST\" path=\"/host/register\">\n" +
|
|
|
@@ -666,10 +693,11 @@ namespace MonoTests.System.Net {
|
|
|
[Test]
|
|
|
public void Test_MultipleConnections ()
|
|
|
{
|
|
|
- HttpListener listener = HttpListener2Test.CreateAndStartListener ("http://127.0.0.1:9000/multiple/");
|
|
|
+ var port = NetworkHelpers.FindFreePort ();
|
|
|
+ HttpListener listener = HttpListener2Test.CreateAndStartListener ("http://127.0.0.1:" + port + "/multiple/");
|
|
|
|
|
|
// First one
|
|
|
- NetworkStream ns = HttpListener2Test.CreateNS (9000);
|
|
|
+ NetworkStream ns = HttpListener2Test.CreateNS (port);
|
|
|
HttpListener2Test.Send (ns, "POST /multiple/ HTTP/1.0\r\nHost: 127.0.0.1\r\nContent-Length: 3\r\n\r\n123");
|
|
|
HttpListenerContext ctx = listener.GetContext ();
|
|
|
HttpListener2Test.Send (ctx.Response.OutputStream, "%%%OK%%%");
|
|
|
@@ -678,7 +706,7 @@ namespace MonoTests.System.Net {
|
|
|
ns.Close ();
|
|
|
|
|
|
// Second one
|
|
|
- ns = HttpListener2Test.CreateNS (9000);
|
|
|
+ ns = HttpListener2Test.CreateNS (port);
|
|
|
HttpListener2Test.Send (ns, "POST /multiple/ HTTP/1.0\r\nHost: 127.0.0.1\r\nContent-Length: 3\r\n\r\n123");
|
|
|
ctx = listener.GetContext ();
|
|
|
HttpListener2Test.Send (ctx.Response.OutputStream, "%%%OK%%%");
|
|
|
@@ -697,11 +725,12 @@ namespace MonoTests.System.Net {
|
|
|
{
|
|
|
var wait = new ManualResetEvent (false);
|
|
|
var wait2 = new ManualResetEvent (false);
|
|
|
+ var port = NetworkHelpers.FindFreePort ();
|
|
|
|
|
|
Thread t = new Thread (delegate (object a) {
|
|
|
wait.WaitOne ();
|
|
|
|
|
|
- NetworkStream ns = HttpListener2Test.CreateNS (9145);
|
|
|
+ NetworkStream ns = HttpListener2Test.CreateNS (port);
|
|
|
HttpListener2Test.Send (ns, "GET http://www.google.com/ HTTP/1.1\r\nHost: www.google.com\r\nContent-Length: 3\r\n\r\n123456");
|
|
|
|
|
|
wait2.WaitOne ();
|
|
|
@@ -709,11 +738,11 @@ namespace MonoTests.System.Net {
|
|
|
});
|
|
|
t.Start ();
|
|
|
|
|
|
- HttpListener listener = HttpListener2Test.CreateAndStartListener ("http://*:9145/");
|
|
|
+ HttpListener listener = HttpListener2Test.CreateAndStartListener ("http://*:" + port + "/");
|
|
|
wait.Set ();
|
|
|
HttpListenerContext ctx = listener.GetContext ();
|
|
|
|
|
|
- Assert.AreEqual ("http://www.google.com:9145/", ctx.Request.Url.ToString ());
|
|
|
+ Assert.AreEqual ("http://www.google.com:" + port + "/", ctx.Request.Url.ToString ());
|
|
|
Assert.AreEqual ("http://www.google.com/", ctx.Request.RawUrl);
|
|
|
wait2.Set ();
|
|
|
|
|
|
@@ -723,12 +752,13 @@ namespace MonoTests.System.Net {
|
|
|
[Test] // bug #513849
|
|
|
public void ClosePort ()
|
|
|
{
|
|
|
+ var port = NetworkHelpers.FindFreePort ();
|
|
|
var h = new HttpListener ();
|
|
|
- h.Prefixes.Add ("http://127.0.0.1:30158/");
|
|
|
+ h.Prefixes.Add ("http://127.0.0.1:" + port + "/");
|
|
|
h.Start ();
|
|
|
h.BeginGetContext (null, null);
|
|
|
h.Stop ();
|
|
|
- TcpListener t = new TcpListener (IPAddress.Parse ("127.0.0.1"), 30158);
|
|
|
+ TcpListener t = new TcpListener (IPAddress.Parse ("127.0.0.1"), port);
|
|
|
t.Start ();
|
|
|
t.Stop ();
|
|
|
}
|
|
|
@@ -754,7 +784,7 @@ namespace MonoTests.System.Net {
|
|
|
Assert.Ignore ("Hostname couldn't be resolved.");
|
|
|
}
|
|
|
|
|
|
- int port = 61234;
|
|
|
+ int port = NetworkHelpers.FindFreePort ();;
|
|
|
var h = new HttpListener ();
|
|
|
h.Prefixes.Add ("http://" + machineAddress [0] + ":" + port + "/");
|
|
|
h.Start ();
|
|
|
@@ -772,7 +802,7 @@ namespace MonoTests.System.Net {
|
|
|
public void BindToAllInterfaces ()
|
|
|
{
|
|
|
var h = new HttpListener ();
|
|
|
- int port = 62234;
|
|
|
+ int port = NetworkHelpers.FindFreePort ();
|
|
|
h.Prefixes.Add ("http://*:" + port + "/");
|
|
|
h.Start ();
|
|
|
var c = new TcpClient ("localhost", port);
|
|
|
@@ -783,8 +813,9 @@ namespace MonoTests.System.Net {
|
|
|
[Test]
|
|
|
public void Test_EmptyLineAtStart ()
|
|
|
{
|
|
|
- var listener = HttpListener2Test.CreateAndStartListener ("http://127.0.0.1:9124/");
|
|
|
- var ns = HttpListener2Test.CreateNS (9124);
|
|
|
+ var port = NetworkHelpers.FindFreePort ();
|
|
|
+ var listener = HttpListener2Test.CreateAndStartListener ("http://127.0.0.1:" + port + "/");
|
|
|
+ var ns = HttpListener2Test.CreateNS (port);
|
|
|
|
|
|
HttpListener2Test.Send (ns, "\r\nGET / HTTP/1.1\r\nHost: 127.0.0.1\r\n\r\n");
|
|
|
|