diff options
| author | Rajith Muditha Attapattu <rajith@apache.org> | 2010-05-06 21:17:21 +0000 |
|---|---|---|
| committer | Rajith Muditha Attapattu <rajith@apache.org> | 2010-05-06 21:17:21 +0000 |
| commit | 9034558ebd59d334c24dd9e40d0f3d91f18896d4 (patch) | |
| tree | a3f04a62366da8cf8f1ef9d1e1efc99e92ddfce5 /java/systests/src | |
| parent | fc5b5223c76ea5d9774bec77591c7b190270bea7 (diff) | |
| download | qpid-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.java | 40 | ||||
| -rw-r--r-- | java/systests/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java | 2 |
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) |
