From 72650d4cc41c64136d064967d7fec3726d850fee Mon Sep 17 00:00:00 2001
From: Ludovic Poitou <ludovic.poitou@forgerock.com>
Date: Thu, 14 Oct 2010 11:52:28 +0000
Subject: [PATCH] Multiple enhancements and bug fixes to the SDK (update from OpenDS by matthew_swift):
---
sdk/tests/unit-tests-testng/src/org/opends/sdk/TestCaseUtils.java | 42 ++++++++++++++++++++++++++++++++++++++----
1 files changed, 38 insertions(+), 4 deletions(-)
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/TestCaseUtils.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/TestCaseUtils.java
index f419fc3..4d8fc28 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/TestCaseUtils.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/TestCaseUtils.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Copyright 2009 Sun Microsystems, Inc.
+ * Copyright 2009-2010 Sun Microsystems, Inc.
*/
package org.opends.sdk;
@@ -31,6 +31,9 @@
import java.io.File;
import java.io.FileWriter;
+import java.io.IOException;
+import java.net.InetSocketAddress;
+import java.net.ServerSocket;
@@ -47,10 +50,10 @@
public static final String PROPERTY_LDAP_PORT = "org.opends.server.LdapPort";
/**
- * Port number that's used by the server. Need to be used by the testcases to
+ * Port number that's used by the server. Need to be used by the test cases to
* create connections.
*/
- public static int port = 11389;
+ public static int port;
static
{
@@ -59,6 +62,10 @@
{
port = Integer.valueOf(ldapPort);
}
+ else
+ {
+ port = findFreePort();
+ }
}
@@ -67,6 +74,8 @@
* Creates a temporary text file with the specified contents. It will be
* marked for automatic deletion when the JVM exits.
*
+ * @param lines
+ * The file contents.
* @return The absolute path to the file that was created.
* @throws Exception
* If an unexpected problem occurs.
@@ -90,6 +99,31 @@
/**
+ * Finds a free server socket port on the local host.
+ *
+ * @return The free port.
+ */
+ public static int findFreePort()
+ {
+ int port;
+ try
+ {
+ ServerSocket serverLdapSocket = new ServerSocket();
+ serverLdapSocket.setReuseAddress(true);
+ serverLdapSocket.bind(new InetSocketAddress("127.0.0.1", 0));
+ port = serverLdapSocket.getLocalPort();
+ serverLdapSocket.close();
+ }
+ catch (IOException e)
+ {
+ throw new RuntimeException(e);
+ }
+ return port;
+ }
+
+
+
+ /**
* Returns an internal client connection to the running ldap server.
*
* @return The internal client connection.
@@ -122,10 +156,10 @@
* Starts the test ldap server.
*
* @throws Exception
+ * If an error occurs when starting the server.
*/
public static void startServer() throws Exception
{
- // TODO:Try a couple of random ports before throwing exception.
LDAPServer.getInstance().start(port);
}
--
Gitblit v1.10.0