summaryrefslogtreecommitdiff
path: root/java/systests/src
diff options
context:
space:
mode:
authorRajith Muditha Attapattu <rajith@apache.org>2010-05-06 21:17:21 +0000
committerRajith Muditha Attapattu <rajith@apache.org>2010-05-06 21:17:21 +0000
commit9034558ebd59d334c24dd9e40d0f3d91f18896d4 (patch)
treea3f04a62366da8cf8f1ef9d1e1efc99e92ddfce5 /java/systests/src
parentfc5b5223c76ea5d9774bec77591c7b190270bea7 (diff)
downloadqpid-python-9034558ebd59d334c24dd9e40d0f3d91f18896d4.tar.gz
Modified the testHeartbeat method to use an external script to start & stop the broker.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@941934 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/systests/src')
-rw-r--r--java/systests/src/main/java/org/apache/qpid/test/unit/client/AMQConnectionTest.java40
-rw-r--r--java/systests/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java2
2 files changed, 31 insertions, 11 deletions
diff --git a/java/systests/src/main/java/org/apache/qpid/test/unit/client/AMQConnectionTest.java b/java/systests/src/main/java/org/apache/qpid/test/unit/client/AMQConnectionTest.java
index 7f6267c210..d08eee3e83 100644
--- a/java/systests/src/main/java/org/apache/qpid/test/unit/client/AMQConnectionTest.java
+++ b/java/systests/src/main/java/org/apache/qpid/test/unit/client/AMQConnectionTest.java
@@ -26,6 +26,7 @@ import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
+import java.util.Map;
import java.util.concurrent.atomic.AtomicBoolean;
import javax.jms.Connection;
@@ -294,11 +295,33 @@ public class AMQConnectionTest extends QpidTestCase
Process process = null;
int port = getPort(0);
+ String pid = null;
try
{
+ // close the connection and shutdown the broker started by QpidTest
_connection.close();
- System.setProperty("qpid.heartbeat", "1");
- Connection con = getConnection();
+ stopBroker(port);
+
+ System.setProperty("qpid.heartbeat", "1");
+
+ // in case this broker gets stuck, atleast the rest of the tests will not fail.
+ port = port + 200;
+ String startCmd = getBrokerCommand(port);
+
+ // start a broker using a script
+ ProcessBuilder pb = new ProcessBuilder(System.getProperty("broker.start"));
+ pb.redirectErrorStream(true);
+
+ Map<String, String> env = pb.environment();
+ env.put("BROKER_CMD",startCmd);
+ env.put("BROKER_READY",System.getProperty(BROKER_READY));
+
+ Process startScript = pb.start();
+ startScript.waitFor();
+ startScript.destroy();
+
+ Connection con =
+ new AMQConnection("amqp://guest:guest@clientid/testpath?brokerlist='tcp://localhost:" + port + "'");
final AtomicBoolean lock = new AtomicBoolean(false);
String cmd = "/usr/bin/pgrep -f " + port;
@@ -306,7 +329,7 @@ public class AMQConnectionTest extends QpidTestCase
LineNumberReader reader = new LineNumberReader(new InputStreamReader(process.getInputStream()));
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(process.getOutputStream())), true);
out.println(cmd);
- String pid = reader.readLine();
+ pid = reader.readLine();
try
{
Integer.parseInt(pid);
@@ -351,18 +374,15 @@ public class AMQConnectionTest extends QpidTestCase
finally
{
System.setProperty("qpid.heartbeat", "");
+
if (process != null)
{
process.destroy();
}
- Runtime.getRuntime().exec(System.getProperty("broker.kill"));
-
- Process brokerProcess = _brokers.remove(port);
- if (process != null)
- {
- brokerProcess.destroy();
- }
+ Process killScript = Runtime.getRuntime().exec(System.getProperty("broker.kill") + " " + pid);
+ killScript.waitFor();
+ killScript.destroy();
cleanBroker();
}
}
diff --git a/java/systests/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java b/java/systests/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java
index 54628ab4b8..020b598279 100644
--- a/java/systests/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java
+++ b/java/systests/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java
@@ -469,7 +469,7 @@ public class QpidTestCase extends TestCase
}
}
- private String getBrokerCommand(int port) throws MalformedURLException
+ protected String getBrokerCommand(int port) throws MalformedURLException
{
return _broker
.replace("@PORT", "" + port)