Author: robbie
Date: Tue Mar 15 17:04:57 2011
New Revision: 1081858
URL: http://svn.apache.org/viewvc?rev=1081858&view=rev
Log:
QPID-3142: enable tests to run against a copy of an existing work directory
Modified:
qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/util/FileUtils.java
qpid/trunk/qpid/java/module.xml
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
Modified:
qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/util/FileUtils.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/util/FileUtils.java?rev=1081858&r1=1081857&r2=1081858&view=diff
==============================================================================
---
qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/util/FileUtils.java
(original)
+++
qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/util/FileUtils.java
Tue Mar 15 17:04:57 2011
@@ -339,7 +339,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");
}
Modified: qpid/trunk/qpid/java/module.xml
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/module.xml?rev=1081858&r1=1081857&r2=1081858&view=diff
==============================================================================
--- qpid/trunk/qpid/java/module.xml (original)
+++ qpid/trunk/qpid/java/module.xml Tue Mar 15 17:04:57 2011
@@ -323,6 +323,8 @@
</condition>
<property name="jvm.args" value=""/>
+ <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">
@@ -346,6 +348,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}" />
Modified:
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java?rev=1081858&r1=1081857&r2=1081858&view=diff
==============================================================================
---
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
(original)
+++
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
Tue Mar 15 17:04:57 2011
@@ -67,6 +67,7 @@ import org.apache.qpid.server.registry.A
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;
/**
@@ -109,6 +110,7 @@ public class QpidBrokerTestCase extends
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";
@@ -283,6 +285,19 @@ public class QpidBrokerTestCase extends
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();
}
@@ -490,7 +505,7 @@ public class QpidBrokerTestCase extends
// 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
@@ -578,6 +593,20 @@ public class QpidBrokerTestCase extends
_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;
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]