diff options
| author | Martin Ritchie <ritchiem@apache.org> | 2009-10-05 15:06:40 +0000 |
|---|---|---|
| committer | Martin Ritchie <ritchiem@apache.org> | 2009-10-05 15:06:40 +0000 |
| commit | 6dec488633e43e6a4ebe95fb8289f73d70d00867 (patch) | |
| tree | 711eb4fe187d3d89b9badb0ba63d30558335efe5 | |
| parent | 2077317d2b027b114a1b4a6111cb0dd1e6d53329 (diff) | |
| download | qpid-python-6dec488633e43e6a4ebe95fb8289f73d70d00867.tar.gz | |
QPID-1816 : Update to AOMT based tests, Test now continues as long as messages are received.
If there has been no message received for 5 seconds then it counts the test as failed.
Excluded AutoAck failover tests due to QPID-143
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@821829 13f79535-47bb-0310-9956-ffa450edef68
4 files changed, 44 insertions, 6 deletions
diff --git a/java/systests/src/main/java/org/apache/qpid/test/unit/ack/AcknowledgeAfterFailoverTest.java b/java/systests/src/main/java/org/apache/qpid/test/unit/ack/AcknowledgeAfterFailoverTest.java index 7e3f00d4c5..30cc48691f 100644 --- a/java/systests/src/main/java/org/apache/qpid/test/unit/ack/AcknowledgeAfterFailoverTest.java +++ b/java/systests/src/main/java/org/apache/qpid/test/unit/ack/AcknowledgeAfterFailoverTest.java @@ -51,7 +51,7 @@ public class AcknowledgeAfterFailoverTest extends AcknowledgeTest implements Con // not the one we are connected to. // The test will still pass but it will not be exactly // as described. - NUM_MESSAGES = 10; + NUM_MESSAGES = 6; } /** diff --git a/java/systests/src/main/java/org/apache/qpid/test/unit/ack/AcknowledgeOnMessageTest.java b/java/systests/src/main/java/org/apache/qpid/test/unit/ack/AcknowledgeOnMessageTest.java index db50444d4a..73308d41c0 100644 --- a/java/systests/src/main/java/org/apache/qpid/test/unit/ack/AcknowledgeOnMessageTest.java +++ b/java/systests/src/main/java/org/apache/qpid/test/unit/ack/AcknowledgeOnMessageTest.java @@ -22,6 +22,8 @@ package org.apache.qpid.test.unit.ack; import org.apache.qpid.client.AMQDestination; import org.apache.qpid.client.AMQSession; +import org.apache.qpid.client.JMSAMQException; +import org.apache.qpid.client.failover.FailoverException; import javax.jms.Message; import javax.jms.MessageListener; @@ -62,7 +64,24 @@ public class AcknowledgeOnMessageTest extends AcknowledgeTest implements Message _connection.start(); - if (!_receviedAll.await(10000L, TimeUnit.MILLISECONDS)) + int lastCount = (int) _receviedAll.getCount(); + + boolean complete = _receviedAll.await(5000L, TimeUnit.MILLISECONDS); + + while (!complete) + { + int currentCount = (int) _receviedAll.getCount(); + + // make sure we have received a message in the last cycle. + if (lastCount == currentCount) + { + break; + } + + complete = _receviedAll.await(5000L, TimeUnit.MILLISECONDS); + } + + if (!complete) { // Check to see if we ended due to an exception in the onMessage handler Exception cause = _causeOfFailure.get(); @@ -73,7 +92,7 @@ public class AcknowledgeOnMessageTest extends AcknowledgeTest implements Message } else { - fail("All messages not received:" + _receviedAll.getCount() + "/" + NUM_MESSAGES); + fail("All messages not received missing:" + _receviedAll.getCount() + "/" + NUM_MESSAGES); } } @@ -85,7 +104,20 @@ public class AcknowledgeOnMessageTest extends AcknowledgeTest implements Message fail(cause.getMessage()); } - _consumer.close(); + try + { + _consumer.close(); + } + catch (JMSAMQException amqe) + { + if (amqe.getLinkedException() instanceof FailoverException) + { + fail("QPID-143 : Auto Ack can acknowledge message from previous session after failver. If failover occurs between deliver and ack."); + } + // else Rethrow for TestCase to catch. + throw amqe; + } + _consumerSession.close(); assertEquals("Wrong number of messages on queue", 0, @@ -113,6 +145,7 @@ public class AcknowledgeOnMessageTest extends AcknowledgeTest implements Message } catch (Exception e) { + // This will end the test run by counting down _receviedAll fail(e); } } diff --git a/java/systests/src/main/java/org/apache/qpid/test/unit/ack/AcknowledgeTest.java b/java/systests/src/main/java/org/apache/qpid/test/unit/ack/AcknowledgeTest.java index f67efa668a..7c9a77eb53 100644 --- a/java/systests/src/main/java/org/apache/qpid/test/unit/ack/AcknowledgeTest.java +++ b/java/systests/src/main/java/org/apache/qpid/test/unit/ack/AcknowledgeTest.java @@ -46,7 +46,7 @@ public class AcknowledgeTest extends FailoverBaseCase protected void setUp() throws Exception { super.setUp(); - NUM_MESSAGES = 10; + NUM_MESSAGES = 5; _queue = getTestQueue(); diff --git a/java/test-profiles/Excludes b/java/test-profiles/Excludes index 056938de58..d14d467b89 100644 --- a/java/test-profiles/Excludes +++ b/java/test-profiles/Excludes @@ -23,5 +23,10 @@ org.apache.qpid.server.security.acl.SimpleACLTest#* // QPID-1816 : Client Ack has not been addressed org.apache.qpid.test.unit.ack.AcknowledgeAfterFailoverOnMessageTest#testDirtyClientAck org.apache.qpid.test.unit.ack.AcknowledgeAfterFailoverOnMessageTest#testClientAck +org.apache.qpid.test.unit.ack.AcknowledgeAfterFailoverTest#testDirtyClientAck org.apache.qpid.test.unit.ack.AcknowledgeAfterFailoverTest#testClientAck -// testDirtyClientAck is ok as it fails as expected.. problem is it always fails :) + + +// QPID-143 : Failover can occur between receive and ack but we don't stop the ack. +org.apache.qpid.test.unit.ack.AcknowledgeAfterFailoverOnMessageTest#testAutoAck +org.apache.qpid.test.unit.ack.AcknowledgeAfterFailoverOnMessageTest#testDupsOk |
