lucenenet-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "TJ Kolev" <tjko...@gmail.com>
Subject TestRemoteSearchable and random port
Date Mon, 12 Jan 2009 21:12:47 GMT
Hello!

I was getting sporadic (more often then not) port conflicts on this
unit test (/Test/Search/TestRemoteSearchable.cs). I rewrote the test a
bit, and I have not had problems since. If this looks good, how do I
submit the patch?

tjk :)

Index: TestRemoteSearchable.cs
===================================================================
--- TestRemoteSearchable.cs	(revision 732813)
+++ TestRemoteSearchable.cs	(working copy)
@@ -16,7 +16,7 @@
  */

 using System;
-
+using System.Net.Sockets;
 using NUnit.Framework;

 using Lucene.Net.Documents;
@@ -38,13 +38,29 @@
 		private static int port;
 		private static bool serverStarted;

+		private const int MAX_PORT_TRIES = 10;
+
 		[SetUp]
 		public override void SetUp()
 		{
 			base.SetUp();
 			Random rnd = new Random((int)(DateTime.Now.Ticks & 0x7fffffff));
-			port = rnd.Next(System.Net.IPEndPoint.MinPort,
System.Net.IPEndPoint.MaxPort);
-			httpChannel = new System.Runtime.Remoting.Channels.Http.HttpChannel(port);
+
+			int portTry = 0;
+			while (true)
+			{
+				try
+				{
+					port = rnd.Next(System.Net.IPEndPoint.MinPort,
System.Net.IPEndPoint.MaxPort);
+					httpChannel = new System.Runtime.Remoting.Channels.Http.HttpChannel(port);
+					break;
+				}
+				catch (SocketException)
+				{
+					if (++portTry > MAX_PORT_TRIES)
+						throw;
+				}
+			}
 			if (!serverStarted)
 				StartServer();
 		}

Mime
View raw message