From d42b15e420478dc45785fff6e00b863cc1f8a0f9 Mon Sep 17 00:00:00 2001
From: lutoff <lutoff@localhost>
Date: Thu, 18 Sep 2008 10:14:53 +0000
Subject: [PATCH] These changes are separating the current delivery into an "Install Layout" (the binaries) and an "Instance Layout" (the user data).
---
opends/tests/unit-tests-testng/src/server/org/opends/server/TestCaseUtils.java | 192 ++++++++++++++++++++++++++++++-----------------
1 files changed, 123 insertions(+), 69 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 5be714b..9240a02 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
@@ -113,6 +113,20 @@
public static final String PROPERTY_BUILD_ROOT =
"org.opends.server.BuildRoot";
+ /**
+ * The name of the system property that specifies an existing OpenDS
+ * installation root (inside or outside of the source tree).
+ */
+ public static final String PROPERTY_INSTALLED_ROOT =
+ "org.opends.server.InstalledRoot";
+
+ /**
+ * The name of the system property that specifies an LDIF file
+ * with changes compare to the default config.ldif.
+ */
+ public static final String PROPERTY_CONFIG_CHANGE_FILE =
+ "org.opends.server.ConfigChangeFile";
+
/**
* The name of the system property that specifies the ldap port.
* Set this prtoperty when running the server if you want to use a given
@@ -225,27 +239,44 @@
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 testInstallRoot = new File(unitRoot, "package-install");
+ File testInstanceRoot = new File(unitRoot, "package-instance");
File testSrcRoot = new File(buildRoot + File.separator + "tests" +
File.separator + "unit-tests-testng");
- if (testRoot.exists())
+ if (testInstallRoot.exists())
{
- deleteDirectory(testRoot);
+ deleteDirectory(testInstallRoot);
}
- testRoot.mkdirs();
+ if (testInstanceRoot.exists())
+ {
+ deleteDirectory(testInstanceRoot);
+ }
+ testInstallRoot.mkdirs();
+ testInstanceRoot.mkdirs();
+
+ // Retrieves the location of a typical installation directory to use as a
+ // source to build our test instance.
+ String installedRoot = System.getProperty(PROPERTY_INSTALLED_ROOT);
+
+
//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 = { "bak", "bin", "changelogDb", "classes",
- "config", "db", "import-tmp", "db_verify",
- "ldif", "lib", "locks", "logs", "db_rebuild",
- "db_unindexed", "db_index_test",
- "db_import_test"};
- for (String s : subDirectories)
+ String[] installSubDirectories = { "bin", "lib", "bat"};
+ String[] instanceSubDirectories = { "bak", "changelogDb", "classes",
+ "config", "db", "import-tmp", "db_verify",
+ "ldif", "locks", "logs", "db_rebuild",
+ "db_unindexed", "db_index_test",
+ "db_import_test"};
+ for (String s : installSubDirectories)
{
- new File(testRoot, s).mkdir();
+ new File(testInstallRoot, s).mkdir();
+ }
+ for (String s : instanceSubDirectories)
+ {
+ new File(testInstanceRoot, s).mkdir();
}
// Copy the configuration, schema, and MakeLDIF resources into the
@@ -255,10 +286,10 @@
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");
+ File testConfigDir = new File(testInstanceRoot, "config");
+ File testClassesDir = new File(testInstanceRoot, "classes");
+ File testLibDir = new File(testInstallRoot, "lib");
+ File testBinDir = new File(testInstallRoot, "bin");
// Snmp resource
String opendmkJarFileLocation =
@@ -275,64 +306,83 @@
File testSnmpResourceDir = new File (testConfigDir + File.separator +
"snmp");
- if (Boolean.getBoolean(PROPERTY_COPY_CLASSES_TO_TEST_PKG)) {
+ 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"));
- copyDirectory(new File(snmpResourceDir, "security"),
- new File(testSnmpResourceDir, "security"));
- 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"));
- if (opendmkJar.exists()) {
+ if (installedRoot != null)
+ {
+ copyDirectory(new File(installedRoot), testInstallRoot);
+
+ // Get the instance location
+
+ }
+ else
+ {
+ 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"));
+ copyDirectory(new File(snmpResourceDir, "security"),
+ new File(testSnmpResourceDir, "security"));
+ 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"));
+
+ // Update the install.loc file
+ File installLoc = new File(testInstallRoot + File.separator
+ + "instance.loc");
+ installLoc.deleteOnExit();
+ FileWriter w = new FileWriter(installLoc);
+ w.write(testInstanceRoot.getAbsolutePath());
+ w.close();
+
+ if (opendmkJar.exists())
+ {
appendFile(new File(snmpConfigDir, "config.snmp.ldif"),
- new File(testConfigDir,"config.ldif"));
- }
+ new File(testConfigDir, "config.ldif"));
+ }
- for (File f : testBinDir.listFiles())
- {
- try
+ for (File f : testBinDir.listFiles())
{
- 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())
+ try
{
- if (f.getName().endsWith(".sh"))
- {
- FilePermission.setPermissions(f, perm);
- }
- }
- } catch (Exception e) {}
- }
+ 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())
+ {
+ if (f.getName().endsWith(".sh"))
+ {
+ FilePermission.setPermissions(f, perm);
+ }
+ }
+ } catch (Exception e) {}
+ }
+ }
// Find some free ports for the listeners and write them to the
// config-chamges.ldif file.
ServerSocket serverLdapSocket = null;
@@ -357,10 +407,12 @@
serverLdapsSocket = bindFreePort();
serverLdapsPort = serverLdapsSocket.getLocalPort();
+ String defaultConfigChangeFile = testResourceDir + File.separator
+ + "config-changes.ldif";
+ String configChangeFile = System.getProperty(
+ PROPERTY_CONFIG_CHANGE_FILE, defaultConfigChangeFile);
BufferedReader reader = new BufferedReader(new FileReader(
- new File(testResourceDir,
- "config-changes.ldif")
- ));
+ new File(configChangeFile)));
FileOutputStream outFile = new FileOutputStream(
new File(testConfigDir, "config-changes.ldif"));
PrintStream writer = new PrintStream(outFile);
@@ -387,7 +439,9 @@
// Create a configuration for the server.
DirectoryEnvironmentConfig config = new DirectoryEnvironmentConfig();
- config.setServerRoot(testRoot);
+ config.setServerRoot(testInstallRoot);
+ config.setInstanceRoot(testInstanceRoot);
+
config.setForceDaemonThreads(true);
config.setConfigClass(ConfigFileHandler.class);
config.setConfigFile(new File(testConfigDir, "config.ldif"));
@@ -517,7 +571,7 @@
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 testRoot = new File(unitRoot, "package-instance");
return new File(testRoot, "config");
}
--
Gitblit v1.10.0