From 5ceb2e9601d2501d021d0c61188ec913076555a0 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Wed, 26 Sep 2007 12:21:02 +0000
Subject: [PATCH] Merge branches/temp-admin@3208 onto trunk@3208.
---
opends/tests/unit-tests-testng/src/server/org/opends/server/TestCaseUtils.java | 348 +++++++++++++++++++++++++++++++---------------------------
1 files changed, 186 insertions(+), 162 deletions(-)
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/TestCaseUtils.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/TestCaseUtils.java
index 91b9f58..d5d5fc1 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/TestCaseUtils.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/TestCaseUtils.java
@@ -209,187 +209,200 @@
throws IOException, InitializationException, ConfigException,
DirectoryException
{
- if (SERVER_STARTED)
- {
- return;
- }
-
- InvocationCounterPlugin.resetStartupCalled();
-
- // Get the build root and use it to create a test package directory.
- String buildRoot = System.getProperty(PROPERTY_BUILD_ROOT);
- File buildDir = new File(buildRoot, "build");
- File unitRoot = new File(buildDir, "unit-tests");
- File testRoot = new File(unitRoot, "package");
- File testSrcRoot = new File(buildRoot + File.separator + "tests" +
- File.separator + "unit-tests-testng");
-
- if (testRoot.exists())
- {
- deleteDirectory(testRoot);
- }
- testRoot.mkdirs();
- //db_verify is second jeb backend used by the jeb verify test cases
- //db_rebuild is the third jeb backend used by the jeb rebuild test cases
- //db_unindexed is the forth backend used by the unindexed search privilege
- //test cases
- String[] subDirectories = { "adminDb", "bak", "bin", "changelogDb", "classes",
- "config", "db", "db_verify", "ldif", "lib",
- "locks", "logs", "db_rebuild", "db_unindexed",
- "db_index_test", "db_import_test"};
- for (String s : subDirectories)
- {
- new File(testRoot, s).mkdir();
- }
-
-
- // Copy the configuration, schema, and MakeLDIF resources into the
- // appropriate place under the test package.
- File serverClassesDir = new File(buildDir, "classes");
- File unitClassesDir = new File(unitRoot, "classes");
- File libDir = new File(buildRoot, "lib");
- File resourceDir = new File(buildRoot, "resource");
- File testResourceDir = new File(testSrcRoot, "resource");
- File testConfigDir = new File(testRoot, "config");
- File testClassesDir = new File(testRoot, "classes");
- File testLibDir = new File(testRoot, "lib");
- File testBinDir = new File(testRoot, "bin");
-
- if (Boolean.getBoolean(PROPERTY_COPY_CLASSES_TO_TEST_PKG)) {
- copyDirectory(serverClassesDir, testClassesDir);
- copyDirectory(unitClassesDir, testClassesDir);
- }
-
- copyDirectory(libDir, testLibDir);
- copyDirectory(new File(resourceDir, "bin"), testBinDir);
- copyDirectory(new File(resourceDir, "config"), testConfigDir);
- copyDirectory(new File(resourceDir, "schema"),
- new File(testConfigDir, "schema"));
- copyDirectory(new File(resourceDir, "MakeLDIF"),
- new File(testConfigDir, "MakeLDIF"));
- copyFile(new File(testResourceDir, "server.keystore"),
- new File(testConfigDir, "server.keystore"));
- copyFile(new File(testResourceDir, "server.truststore"),
- new File(testConfigDir, "server.truststore"));
- copyFile(new File(testResourceDir, "client.keystore"),
- new File(testConfigDir, "client.keystore"));
- copyFile(new File(testResourceDir, "client.truststore"),
- new File(testConfigDir, "client.truststore"));
- copyFile(new File(testResourceDir, "server-cert.p12"),
- new File(testConfigDir, "server-cert.p12"));
- copyFile(new File(testResourceDir, "client-cert.p12"),
- new File(testConfigDir, "client-cert.p12"));
-
- for (File f : testBinDir.listFiles())
- {
- try
+ try {
+ if (SERVER_STARTED)
{
- FilePermission.setPermissions(f, FilePermission.decodeUNIXMode("755"));
- } catch (Exception e) {}
- }
+ return;
+ }
+ InvocationCounterPlugin.resetStartupCalled();
- // Make the shell scripts in the bin directory executable, if possible.
- OperatingSystem os = DirectoryServer.getOperatingSystem();
- if ((os != null) && OperatingSystem.isUNIXBased(os) &&
- FilePermission.canSetPermissions())
- {
- try
+ // Get the build root and use it to create a test package directory.
+ String buildRoot = System.getProperty(PROPERTY_BUILD_ROOT);
+ File buildDir = new File(buildRoot, "build");
+ File unitRoot = new File(buildDir, "unit-tests");
+ File testRoot = new File(unitRoot, "package");
+ File testSrcRoot = new File(buildRoot + File.separator + "tests" +
+ File.separator + "unit-tests-testng");
+
+ if (testRoot.exists())
{
- FilePermission perm = FilePermission.decodeUNIXMode("755");
- for (File f : testBinDir.listFiles())
+ deleteDirectory(testRoot);
+ }
+ testRoot.mkdirs();
+ //db_verify is second jeb backend used by the jeb verify test cases
+ //db_rebuild is the third jeb backend used by the jeb rebuild test cases
+ //db_unindexed is the forth backend used by the unindexed search privilege
+ //test cases
+ String[] subDirectories = { "adminDb", "bak", "bin", "changelogDb", "classes",
+ "config", "db", "db_verify", "ldif", "lib",
+ "locks", "logs", "db_rebuild", "db_unindexed",
+ "db_index_test", "db_import_test"};
+ for (String s : subDirectories)
+ {
+ new File(testRoot, s).mkdir();
+ }
+
+ // Copy the configuration, schema, and MakeLDIF resources into the
+ // appropriate place under the test package.
+ File serverClassesDir = new File(buildDir, "classes");
+ File unitClassesDir = new File(unitRoot, "classes");
+ File libDir = new File(buildRoot, "lib");
+ File resourceDir = new File(buildRoot, "resource");
+ File testResourceDir = new File(testSrcRoot, "resource");
+ File testConfigDir = new File(testRoot, "config");
+ File testClassesDir = new File(testRoot, "classes");
+ File testLibDir = new File(testRoot, "lib");
+ File testBinDir = new File(testRoot, "bin");
+
+ if (Boolean.getBoolean(PROPERTY_COPY_CLASSES_TO_TEST_PKG)) {
+ copyDirectory(serverClassesDir, testClassesDir);
+ copyDirectory(unitClassesDir, testClassesDir);
+ }
+
+ copyDirectory(libDir, testLibDir);
+ copyDirectory(new File(resourceDir, "bin"), testBinDir);
+ copyDirectory(new File(resourceDir, "config"), testConfigDir);
+ copyDirectory(new File(resourceDir, "schema"),
+ new File(testConfigDir, "schema"));
+ copyDirectory(new File(resourceDir, "MakeLDIF"),
+ new File(testConfigDir, "MakeLDIF"));
+ copyFile(new File(testResourceDir, "server.keystore"),
+ new File(testConfigDir, "server.keystore"));
+ copyFile(new File(testResourceDir, "server.truststore"),
+ new File(testConfigDir, "server.truststore"));
+ copyFile(new File(testResourceDir, "client.keystore"),
+ new File(testConfigDir, "client.keystore"));
+ copyFile(new File(testResourceDir, "client.truststore"),
+ new File(testConfigDir, "client.truststore"));
+ copyFile(new File(testResourceDir, "server-cert.p12"),
+ new File(testConfigDir, "server-cert.p12"));
+ copyFile(new File(testResourceDir, "client-cert.p12"),
+ new File(testConfigDir, "client-cert.p12"));
+
+ for (File f : testBinDir.listFiles())
+ {
+ try
{
- if (f.getName().endsWith(".sh"))
+ FilePermission.setPermissions(f, FilePermission.decodeUNIXMode("755"));
+ } catch (Exception e) {}
+ }
+
+ // Make the shell scripts in the bin directory executable, if possible.
+ OperatingSystem os = DirectoryServer.getOperatingSystem();
+ if ((os != null) && OperatingSystem.isUNIXBased(os) &&
+ FilePermission.canSetPermissions())
+ {
+ try
+ {
+ FilePermission perm = FilePermission.decodeUNIXMode("755");
+ for (File f : testBinDir.listFiles())
{
- FilePermission.setPermissions(f, perm);
+ if (f.getName().endsWith(".sh"))
+ {
+ FilePermission.setPermissions(f, perm);
+ }
}
- }
- } catch (Exception e) {}
- }
+ } catch (Exception e) {}
+ }
+ // Find some free ports for the listeners and write them to the
+ // config-chamges.ldif file.
+ ServerSocket serverLdapSocket = null;
+ ServerSocket serverJmxSocket = null;
+ ServerSocket serverLdapsSocket = null;
- // Find some free ports for the listeners and write them to the
- // config-chamges.ldif file.
- ServerSocket serverLdapSocket = null;
- ServerSocket serverJmxSocket = null;
- ServerSocket serverLdapsSocket = null;
+ String ldapPort = System.getProperty(PROPERTY_LDAP_PORT);
+ if (ldapPort == null)
+ {
+ serverLdapSocket = bindFreePort();
+ serverLdapPort = serverLdapSocket.getLocalPort();
+ }
+ else
+ {
+ serverLdapPort = Integer.valueOf(ldapPort);
+ serverLdapSocket = bindPort(serverLdapPort);
+ }
- String ldapPort = System.getProperty(PROPERTY_LDAP_PORT);
- if (ldapPort == null)
- {
- serverLdapSocket = bindFreePort();
- serverLdapPort = serverLdapSocket.getLocalPort();
- }
- else
- {
- serverLdapPort = Integer.valueOf(ldapPort);
- serverLdapSocket = bindPort(serverLdapPort);
- }
+ serverJmxSocket = bindFreePort();
+ serverJmxPort = serverJmxSocket.getLocalPort();
- serverJmxSocket = bindFreePort();
- serverJmxPort = serverJmxSocket.getLocalPort();
+ serverLdapsSocket = bindFreePort();
+ serverLdapsPort = serverLdapsSocket.getLocalPort();
- serverLdapsSocket = bindFreePort();
- serverLdapsPort = serverLdapsSocket.getLocalPort();
+ BufferedReader reader = new BufferedReader(new FileReader(
+ new File(testResourceDir,
+ "config-changes.ldif")
+ ));
+ FileOutputStream outFile = new FileOutputStream(
+ new File(testConfigDir, "config-changes.ldif"));
+ PrintStream writer = new PrintStream(outFile);
- BufferedReader reader = new BufferedReader(new FileReader(
- new File(testResourceDir,
- "config-changes.ldif")
- ));
- FileOutputStream outFile = new FileOutputStream(
- new File(testConfigDir, "config-changes.ldif"));
- PrintStream writer = new PrintStream(outFile);
+ String line = reader.readLine();
- String line = reader.readLine();
+ while(line != null)
+ {
+ line = line.replaceAll("#ldapport#", String.valueOf(serverLdapPort));
+ line = line.replaceAll("#jmxport#", String.valueOf(serverJmxPort));
+ line = line.replaceAll("#ldapsport#", String.valueOf(serverLdapsPort));
- while(line != null)
- {
- line = line.replaceAll("#ldapport#", String.valueOf(serverLdapPort));
- line = line.replaceAll("#jmxport#", String.valueOf(serverJmxPort));
- line = line.replaceAll("#ldapsport#", String.valueOf(serverLdapsPort));
+ writer.println(line);
+ line = reader.readLine();
+ }
- writer.println(line);
- line = reader.readLine();
- }
+ writer.close();
+ outFile.close();
+ reader.close();
- writer.close();
- outFile.close();
- reader.close();
+ serverLdapSocket.close();
+ serverJmxSocket.close();
+ serverLdapsSocket.close();
- serverLdapSocket.close();
- serverJmxSocket.close();
- serverLdapsSocket.close();
+ // Create a configuration for the server.
+ DirectoryEnvironmentConfig config = new DirectoryEnvironmentConfig();
+ config.setServerRoot(testRoot);
+ config.setForceDaemonThreads(true);
+ config.setConfigClass(ConfigFileHandler.class);
+ config.setConfigFile(new File(testConfigDir, "config.ldif"));
-
- // Create a configuration for the server.
- DirectoryEnvironmentConfig config = new DirectoryEnvironmentConfig();
- config.setServerRoot(testRoot);
- config.setForceDaemonThreads(true);
- config.setConfigClass(ConfigFileHandler.class);
- config.setConfigFile(new File(testConfigDir, "config.ldif"));
-
- config.addAccessLogger(
+ config.addAccessLogger(
TextAccessLogPublisher.getStartupTextAccessPublisher(
ACCESS_TEXT_WRITER, false));
- config.addErrorLogger(
+ config.addErrorLogger(
TextErrorLogPublisher.getStartupTextErrorPublisher(
ERROR_TEXT_WRITER));
- config.addDebugLogger(
+ config.addDebugLogger(
TextDebugLogPublisher.getStartupTextDebugPublisher(
DEBUG_TEXT_WRITER));
- EmbeddedUtils.startServer(config);
+ EmbeddedUtils.startServer(config);
- assertTrue(InvocationCounterPlugin.startupCalled());
+ assertTrue(InvocationCounterPlugin.startupCalled());
- // Save config.ldif for when we restart the server
- backupServerConfigLdif();
+ // Save config.ldif for when we restart the server
+ backupServerConfigLdif();
- SERVER_STARTED = true;
+ SERVER_STARTED = true;
- initializeTestBackend(true);
+ initializeTestBackend(true);
+ } catch (IOException e) {
+ e.printStackTrace(originalSystemErr);
+ throw e;
+ } catch (NumberFormatException e) {
+ e.printStackTrace(originalSystemErr);
+ throw e;
+ } catch (InitializationException e) {
+ e.printStackTrace(originalSystemErr);
+ throw e;
+ } catch (ConfigException e) {
+ e.printStackTrace(originalSystemErr);
+ throw e;
+ } catch (DirectoryException e) {
+ e.printStackTrace(originalSystemErr);
+ throw e;
+ }
}
/**
@@ -417,25 +430,30 @@
return;
}
- long startMs = System.currentTimeMillis();
+ try {
+ long startMs = System.currentTimeMillis();
- clearLoggersContents();
+ clearLoggersContents();
- clearJEBackends();
- restoreServerConfigLdif();
- memoryBackend = null; // We need it to be recreated and reregistered
+ clearJEBackends();
+ restoreServerConfigLdif();
+ memoryBackend = null; // We need it to be recreated and reregistered
- EmbeddedUtils.restartServer(null, null, DirectoryServer.getEnvironmentConfig());
- initializeTestBackend(true);
+ EmbeddedUtils.restartServer(null, null, DirectoryServer.getEnvironmentConfig());
+ initializeTestBackend(true);
- // This generates too much noise, so it's disabled by default.
- // outputLogContentsIfError("Potential problem during in-core restart. You be the judge.");
+ // This generates too much noise, so it's disabled by default.
+ // outputLogContentsIfError("Potential problem during in-core restart. You be the judge.");
- // Keep track of these so we can report how long they took in the test summary
- long durationMs = System.currentTimeMillis() - startMs;
- restartTimesMs.add(durationMs);
+ // Keep track of these so we can report how long they took in the test summary
+ long durationMs = System.currentTimeMillis() - startMs;
+ restartTimesMs.add(durationMs);
- serverRestarts++;
+ serverRestarts++;
+ } catch (Exception e) {
+ e.printStackTrace(originalSystemErr);
+ throw e;
+ }
}
public static List<Long> restartTimesMs = new ArrayList<Long>();
@@ -476,6 +494,12 @@
return new File(testRoot, "config");
}
+ public static File getBuildRoot()
+ {
+ String buildRoot = System.getProperty(PROPERTY_BUILD_ROOT);
+ return new File(buildRoot);
+ }
+
private static void backupServerConfigLdif() throws IOException
{
File testConfigDir = getTestConfigDir();
--
Gitblit v1.10.0