summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Ritchie <ritchiem@apache.org>2009-10-05 15:06:40 +0000
committerMartin Ritchie <ritchiem@apache.org>2009-10-05 15:06:40 +0000
commit6dec488633e43e6a4ebe95fb8289f73d70d00867 (patch)
tree711eb4fe187d3d89b9badb0ba63d30558335efe5
parent2077317d2b027b114a1b4a6111cb0dd1e6d53329 (diff)
downloadqpid-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
-rw-r--r--java/systests/src/main/java/org/apache/qpid/test/unit/ack/AcknowledgeAfterFailoverTest.java2
-rw-r--r--java/systests/src/main/java/org/apache/qpid/test/unit/ack/AcknowledgeOnMessageTest.java39
-rw-r--r--java/systests/src/main/java/org/apache/qpid/test/unit/ack/AcknowledgeTest.java2
-rw-r--r--java/test-profiles/Excludes7
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