diff options
author | Robert Gemmell <robbie@apache.org> | 2011-03-15 17:04:45 +0000 |
---|---|---|
committer | Robert Gemmell <robbie@apache.org> | 2011-03-15 17:04:45 +0000 |
commit | 2376cb9ffc404fe10ac68d357fb7219175302012 (patch) | |
tree | 5ff3e0fbec6c16a8c8bceec0e169bb2bacefdcff | |
parent | 1c101adf2af39df3fc5a7c0ba917fd527ca6d79e (diff) | |
download | qpid-python-2376cb9ffc404fe10ac68d357fb7219175302012.tar.gz |
QPID-3142: enable tests to run against a copy of an existing work directory
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/0.5.x-dev@1081857 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | qpid/java/common/src/main/java/org/apache/qpid/util/FileUtils.java | 2 | ||||
-rw-r--r-- | qpid/java/module.xml | 3 | ||||
-rw-r--r-- | qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java | 31 |
3 files changed, 34 insertions, 2 deletions
diff --git a/qpid/java/common/src/main/java/org/apache/qpid/util/FileUtils.java b/qpid/java/common/src/main/java/org/apache/qpid/util/FileUtils.java index 47e4399128..153a23b914 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/util/FileUtils.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/util/FileUtils.java @@ -340,7 +340,7 @@ public class FileUtils } //else we have a source directory - if (!dst.isDirectory() && !dst.mkdir()) + if (!dst.isDirectory() && !dst.mkdirs()) { throw new UnableToCopyException("Unable to create destination directory"); } diff --git a/qpid/java/module.xml b/qpid/java/module.xml index 0535da5c1f..6345a07844 100644 --- a/qpid/java/module.xml +++ b/qpid/java/module.xml @@ -275,6 +275,8 @@ <contains substring="${module.name}" string="${exclude.modules}" /> </condition> + <property name="broker.existing.qpid.work" value=""/> + <target name="test" depends="build,compile-tests" if="module.test.src.exists" unless="${dontruntest}" description="execute unit tests"> @@ -298,6 +300,7 @@ <sysproperty key="broker" value="${broker}"/> <sysproperty key="broker.clean" value="${broker.clean}"/> <sysproperty key="broker.clean.between.tests" value="${broker.clean.between.tests}"/> + <sysproperty key="broker.existing.qpid.work" value="${broker.existing.qpid.work}"/> <sysproperty key="broker.persistent" value="${broker.persistent}"/> <sysproperty key="broker.version" value="${broker.version}"/> <sysproperty key="broker.ready" value="${broker.ready}" /> diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java index 5b2fcb1f72..390d718c9d 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java @@ -64,6 +64,7 @@ import org.apache.qpid.server.registry.ApplicationRegistry; import org.apache.qpid.server.registry.ConfigurationFileApplicationRegistry; import org.apache.qpid.server.store.DerbyMessageStore; import org.apache.qpid.url.URLSyntaxException; +import org.apache.qpid.util.FileUtils; import org.apache.qpid.util.LogMonitor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -162,6 +163,7 @@ public class QpidTestCase extends TestCase private static final String BROKER = "broker"; private static final String BROKER_CLEAN = "broker.clean"; private static final String BROKER_CLEAN_BETWEEN_TESTS = "broker.clean.between.tests"; + private static final String BROKER_EXISTING_QPID_WORK = "broker.existing.qpid.work"; private static final String BROKER_VERSION = "broker.version"; protected static final String BROKER_READY = "broker.ready"; private static final String BROKER_STOPPED = "broker.stopped"; @@ -288,6 +290,19 @@ public class QpidTestCase extends TestCase fail("Unable to test without config file:" + _configFile); } + if(_brokerCleanBetweenTests) + { + cleanBroker(); + + String existingQpidWorkPath = System.getProperty(BROKER_EXISTING_QPID_WORK); + if(existingQpidWorkPath != null && !existingQpidWorkPath.equals("")) + { + File existing = new File(existingQpidWorkPath); + File qpidWork = new File(getQpidWork(_broker, getPort())); + FileUtils.copyRecursive(existing, qpidWork); + } + } + startBroker(); } @@ -485,7 +500,7 @@ public class QpidTestCase extends TestCase // DON'T change PNAME, qpid.stop needs this value. env.put("QPID_PNAME", "-DPNAME=QPBRKR -DTNAME=\"" + _testName + "\""); // Add the port to QPID_WORK to ensure unique working dirs for multi broker tests - env.put("QPID_WORK", System.getProperty("QPID_WORK")+ "/" + port); + env.put("QPID_WORK", getQpidWork(_broker, port)); // Use the environment variable to set amqj.logging.level for the broker @@ -572,6 +587,20 @@ public class QpidTestCase extends TestCase _brokers.put(port, process); } + private String getQpidWork(String broker, int port) + { + if (broker.equals(VM)) + { + return System.getProperty("QPID_WORK"); + } + else if (!broker.equals(EXTERNAL)) + { + return System.getProperty("QPID_WORK")+ "/" + port; + } + + return System.getProperty("QPID_WORK"); + } + public String getTestConfigFile() { String path = _output == null ? System.getProperty("java.io.tmpdir") : _output; |