You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kw...@apache.org on 2011/12/26 19:59:30 UTC

svn commit: r1224788 - in /qpid/trunk/qpid/java: systests/src/main/java/org/apache/qpid/server/failover/ systests/src/main/java/org/apache/qpid/test/client/ systests/src/main/java/org/apache/qpid/test/unit/ack/ systests/src/main/java/org/apache/qpid/te...

Author: kwall
Date: Mon Dec 26 18:59:29 2011
New Revision: 1224788

URL: http://svn.apache.org/viewvc?rev=1224788&view=rev
Log:
QPID-3713: remove redundant failover test cases

The following tests/test cases have been identified:

1) QueueBrowserAutoAckTest#testFailover*. These tests were running against Java 0-9-1 profiles and excluded against Java/CPP 0-10. New test cases FailoverBehaviourTest#testTransactedQueueBrowserCloseWhileFailover/testClientAcknowledge test the same code paths.
2) AcknowledgeAfterFailoverOnMessageTest/AcknowledgeAfterFailoverTest. These tests were globally excluded (Excludes file). New tests FBT.testClientAcknowledgedSessionCloseAfterFailover/testTransactedSessionCloseAfterFailover/testAcknowledgeAfterFailoverForAsynchronousConsumer cover these scenarios.
3) MessageDisappearWithIOExceptionTest. Tests were added after a defect arising from Java Broker use of MINA. Test scenario covered by FBT.testRecoverAfterFailoverInAutoAcknowledgeMode.
4) FailoverBeforeConsumingRecoverTest. Test case seemed weak: merely caused a failover then repeated the same tests as its super (RecoverTest). FBT.testRecoverAfterFailover and testRecoverWithConsumedMessagesAfterFailover are superior replacements.
5) QuickAcking. Test exercised same code paths as FBT.testMessageProducingAndRollbackAfterFailover.
CloseAfterConnectionFailureTest duplicates FailoverMethodTest#testNoFailover. The testcase was actually excluded from all profiles.

Removed:
    qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/server/failover/MessageDisappearWithIOExceptionTest.java
    qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/ack/AcknowledgeAfterFailoverOnMessageTest.java
    qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/ack/AcknowledgeAfterFailoverTest.java
    qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/ack/FailoverBeforeConsumingRecoverTest.java
    qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/ack/QuickAcking.java
    qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/CloseAfterConnectionFailureTest.java
Modified:
    qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/QueueBrowserAutoAckTest.java
    qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/ack/AcknowledgeTest.java
    qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/ack/RecoverTest.java
    qpid/trunk/qpid/java/test-profiles/CPPExcludes
    qpid/trunk/qpid/java/test-profiles/CPPNoPrefetchExcludes
    qpid/trunk/qpid/java/test-profiles/Excludes
    qpid/trunk/qpid/java/test-profiles/Java010Excludes
    qpid/trunk/qpid/java/test-profiles/JavaExcludes

Modified: qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/QueueBrowserAutoAckTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/QueueBrowserAutoAckTest.java?rev=1224788&r1=1224787&r2=1224788&view=diff
==============================================================================
--- qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/QueueBrowserAutoAckTest.java (original)
+++ qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/QueueBrowserAutoAckTest.java Mon Dec 26 18:59:29 2011
@@ -25,6 +25,7 @@ import org.apache.qpid.client.AMQConnect
 import org.apache.qpid.client.AMQDestination;
 import org.apache.qpid.client.AMQSession;
 import org.apache.qpid.test.utils.FailoverBaseCase;
+import org.apache.qpid.test.utils.QpidBrokerTestCase;
 
 import javax.jms.Connection;
 import javax.jms.JMSException;
@@ -39,13 +40,12 @@ import javax.naming.NamingException;
 import java.util.Enumeration;
 import java.util.Random;
 
-public class QueueBrowserAutoAckTest extends FailoverBaseCase
+public class QueueBrowserAutoAckTest extends QpidBrokerTestCase
 {
     protected Connection _clientConnection;
     protected Session _clientSession;
     protected Queue _queue;
     protected static final String MESSAGE_ID_PROPERTY = "MessageIDProperty";
-    protected boolean CLUSTERED = Boolean.getBoolean("profile.clustered");
 
     public void setUp() throws Exception
     {
@@ -94,22 +94,6 @@ public class QueueBrowserAutoAckTest ext
         sendMessages(producerConnection, num);
     }
 
-    protected void sendMessages(String connection, int num) throws JMSException
-    {
-        Connection producerConnection = null;
-        try
-        {
-            producerConnection = getConnectionFactory(connection).createConnection("guest", "guest");
-        }
-        catch (Exception e)
-        {
-            e.printStackTrace();
-            fail("Unable to lookup connection in JNDI.");
-        }
-        sendMessages(producerConnection, num);
-    }
-
-
     protected void sendMessages(Connection producerConnection, int messageSendCount) throws JMSException
     {
         producerConnection.start();
@@ -440,88 +424,4 @@ public class QueueBrowserAutoAckTest ext
         validate(messages);
     }
 
-    /**
-     * Testing that a QueueBrowser doesn't actually consume messages from a broker when it fails over.
-     * @throws JMSException
-     */
-    public void testFailoverWithQueueBrowser() throws JMSException
-    {
-        int messages = 5;
-
-        sendMessages("connection1", messages);
-        if (!CLUSTERED)
-        {
-            sendMessages("connection2", messages);
-        }
-
-        checkQueueDepth(messages);
-
-        _logger.info("Creating Queue Browser");
-        QueueBrowser queueBrowser = _clientSession.createBrowser(_queue);
-
-        long queueDepth = 0;
-
-        try
-        {
-            queueDepth = ((AMQSession) _clientSession).getQueueDepth((AMQDestination) _queue);
-        }
-        catch (AMQException e)
-        {
-            fail("Caught exception getting queue depth: " + e.getMessage());
-        }
-
-        assertEquals("Session reports Queue depth not as expected", messages, queueDepth);
-
-        int msgCount = 0;
-        int failPoint = 0;
-
-        failPoint = new Random().nextInt(messages) + 1;
-
-        Enumeration msgs = queueBrowser.getEnumeration();
-        while (msgs.hasMoreElements())
-        {
-            msgs.nextElement();
-            msgCount++;
-
-            if (msgCount == failPoint)
-            {
-                failBroker(getFailingPort());
-            }
-        }
-
-        assertTrue("We should get atleast " + messages + " msgs (found " + msgCount +").", msgCount >= messages);
-
-        if (_logger.isDebugEnabled())
-        {
-            _logger.debug("QBAAT Found " + msgCount + " messages total in browser");
-        }
-
-        //Close browser
-        queueBrowser.close();
-
-        _logger.info("Closed Queue Browser, validating messages on broker.");
-
-        //Validate all messages still on Broker
-        validate(messages);
-    }
-
-    public void testFailoverAsQueueBrowserCreated() throws JMSException
-    {
-        // The IoServiceListenerSupport seems to get stuck in with a managedSession that isn't closing when requested.
-        // So it hangs waiting for the session.
-        int messages = 50;
-
-        sendMessages("connection1", messages);
-        if (!CLUSTERED)
-        {
-            sendMessages("connection2", messages);
-        }
-
-        failBroker(getFailingPort());
-
-        checkQueueDepth(messages);
-
-        //Validate all messages still on Broker 1
-        validate(messages);
-    }
 }

Modified: qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/ack/AcknowledgeTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/ack/AcknowledgeTest.java?rev=1224788&r1=1224787&r2=1224788&view=diff
==============================================================================
--- qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/ack/AcknowledgeTest.java (original)
+++ qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/ack/AcknowledgeTest.java Mon Dec 26 18:59:29 2011
@@ -23,7 +23,7 @@ package org.apache.qpid.test.unit.ack;
 
 import org.apache.qpid.client.AMQDestination;
 import org.apache.qpid.client.AMQSession;
-import org.apache.qpid.test.utils.FailoverBaseCase;
+import org.apache.qpid.test.utils.QpidBrokerTestCase;
 
 import javax.jms.Connection;
 import javax.jms.JMSException;
@@ -39,7 +39,7 @@ import javax.jms.MessageProducer;
  *
  * The ack mode is provided from the various test methods. 
  */
-public class AcknowledgeTest extends FailoverBaseCase
+public class AcknowledgeTest extends QpidBrokerTestCase
 {
     protected int NUM_MESSAGES;
     protected Connection _connection;

Modified: qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/ack/RecoverTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/ack/RecoverTest.java?rev=1224788&r1=1224787&r2=1224788&view=diff
==============================================================================
--- qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/ack/RecoverTest.java (original)
+++ qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/ack/RecoverTest.java Mon Dec 26 18:59:29 2011
@@ -25,6 +25,7 @@ import org.apache.qpid.configuration.Cli
 import org.apache.qpid.framing.AMQShortString;
 import org.apache.qpid.jms.Session;
 import org.apache.qpid.test.utils.FailoverBaseCase;
+import org.apache.qpid.test.utils.QpidBrokerTestCase;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -41,7 +42,7 @@ import javax.jms.TextMessage;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 
-public class RecoverTest extends FailoverBaseCase
+public class RecoverTest extends QpidBrokerTestCase
 {
     static final Logger _logger = LoggerFactory.getLogger(RecoverTest.class);
 

Modified: qpid/trunk/qpid/java/test-profiles/CPPExcludes
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/test-profiles/CPPExcludes?rev=1224788&r1=1224787&r2=1224788&view=diff
==============================================================================
--- qpid/trunk/qpid/java/test-profiles/CPPExcludes (original)
+++ qpid/trunk/qpid/java/test-profiles/CPPExcludes Mon Dec 26 18:59:29 2011
@@ -89,9 +89,6 @@ org.apache.qpid.test.client.QueueBrowsin
 // This test currently does not pick up the runtime location of the nonVm queueBacking store.
 org.apache.qpid.test.unit.close.FlowToDiskBackingQueueDeleteTest#*
 
-// This test may use QpidTestCase but it is not using the getConnection and is hardwired to InVM
-org.apache.qpid.test.unit.client.connection.CloseAfterConnectionFailureTest#*
-
 //QPID-1818 : 0-10 Client code path does not correctly restore a transacted session after failover.
 org.apache.qpid.server.persistent.NoLocalAfterRecoveryTest#*
 
@@ -140,13 +137,6 @@ org.apache.qpid.test.client.message.Sele
 //QPID-942 : Implemented Channel.Flow based Producer Side flow control to the Java Broker (not in CPP Broker)
 org.apache.qpid.server.queue.ProducerFlowControlTest#*
 
-//QPID-1950 : Commit to test this failure. This is a MINA only failure so it cannot be tested when using 010.
-org.apache.qpid.server.failover.MessageDisappearWithIOExceptionTest#*
-
-// These are recent test additions that are failing with the c++ broker
-// Temporarily disabling until properly investigated.
-org.apache.qpid.test.unit.ack.FailoverBeforeConsumingRecoverTest#*
-
 org.apache.qpid.test.client.RollbackOrderTest#testOrderingAfterRollbackOnMessage#*
 
 //Excluded due to QPID-1447 : CPP broker does not have SlowConsumer Disconnection
@@ -182,14 +172,3 @@ org.apache.qpid.server.management.AMQUse
 // QPID-3133: On 0-10, the exception listener is currently not invoked when reconnection fails to occurs.
 org.apache.qpid.server.failover.FailoverMethodTest#*
 
-//QPID-3468: exclude QueueBrowser related failover tests
-org.apache.qpid.test.client.QueueBrowserAutoAckTest#testFailoverWithQueueBrowser
-org.apache.qpid.test.client.QueueBrowserAutoAckTest#testFailoverAsQueueBrowserCreated
-org.apache.qpid.test.client.QueueBrowserClientAckTest#testFailoverWithQueueBrowser
-org.apache.qpid.test.client.QueueBrowserClientAckTest#testFailoverAsQueueBrowserCreated
-org.apache.qpid.test.client.QueueBrowserNoAckTest#testFailoverWithQueueBrowser
-org.apache.qpid.test.client.QueueBrowserNoAckTest#testFailoverAsQueueBrowserCreated
-org.apache.qpid.test.client.QueueBrowserPreAckTest#testFailoverWithQueueBrowser
-org.apache.qpid.test.client.QueueBrowserPreAckTest#testFailoverAsQueueBrowserCreated
-org.apache.qpid.test.client.QueueBrowserDupsOkTest#testFailoverWithQueueBrowser
-org.apache.qpid.test.client.QueueBrowserDupsOkTest#testFailoverAsQueueBrowserCreated

Modified: qpid/trunk/qpid/java/test-profiles/CPPNoPrefetchExcludes
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/test-profiles/CPPNoPrefetchExcludes?rev=1224788&r1=1224787&r2=1224788&view=diff
==============================================================================
--- qpid/trunk/qpid/java/test-profiles/CPPNoPrefetchExcludes (original)
+++ qpid/trunk/qpid/java/test-profiles/CPPNoPrefetchExcludes Mon Dec 26 18:59:29 2011
@@ -19,13 +19,6 @@
 
 org.apache.qpid.test.unit.transacted.TransactedTest#testRollback
 
-org.apache.qpid.test.client.QueueBrowserAutoAckTest#testFailoverWithQueueBrowser
-org.apache.qpid.test.client.QueueBrowserClientAckTest#testFailoverWithQueueBrowser
-org.apache.qpid.test.client.QueueBrowserDupsOkTest#testFailoverWithQueueBrowser
-org.apache.qpid.test.client.QueueBrowserNoAckTest#testFailoverWithQueueBrowser
-org.apache.qpid.test.client.QueueBrowserPreAckTest#testFailoverWithQueueBrowser
-org.apache.qpid.test.client.QueueBrowserTransactedTest#testFailoverWithQueueBrowser
-
 org.apache.qpid.test.unit.topic.DurableSubscriptionTest#testDurabilityNOACK
 org.apache.qpid.test.unit.topic.DurableSubscriptionTest#testDurabilityNOACKSessionPerConnection
 org.apache.qpid.test.unit.xa.TopicTest#testMigrateDurableSubscriber

Modified: qpid/trunk/qpid/java/test-profiles/Excludes
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/test-profiles/Excludes?rev=1224788&r1=1224787&r2=1224788&view=diff
==============================================================================
--- qpid/trunk/qpid/java/test-profiles/Excludes (original)
+++ qpid/trunk/qpid/java/test-profiles/Excludes Mon Dec 26 18:59:29 2011
@@ -29,18 +29,6 @@ org.apache.qpid.server.logging.MemoryMes
 // QPID-3424 : Test fails to start external broker due to Derby Exception.
 org.apache.qpid.server.logging.DerbyMessageStoreLoggingTest#*
 
-// 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
-
-
-// QPID-143 : Failover can occur between receive and ack but we don't stop the ack.
-// Just fully disable both tests as they are highlighting to many Java Client race conditions
-org.apache.qpid.test.unit.ack.AcknowledgeAfterFailoverOnMessageTest#*
-org.apache.qpid.test.unit.ack.AcknowledgeAfterFailoverTest#*
-
 // QPID-2418 : The queue backing the dur sub is not currently deleted at subscription change, so the test will fail.
 org.apache.qpid.test.unit.ct.DurableSubscriberTest#testResubscribeWithChangedSelectorAndRestart
 

Modified: qpid/trunk/qpid/java/test-profiles/Java010Excludes
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/test-profiles/Java010Excludes?rev=1224788&r1=1224787&r2=1224788&view=diff
==============================================================================
--- qpid/trunk/qpid/java/test-profiles/Java010Excludes (original)
+++ qpid/trunk/qpid/java/test-profiles/Java010Excludes Mon Dec 26 18:59:29 2011
@@ -48,9 +48,6 @@ org.apache.qpid.test.unit.close.JavaServ
 //QPID-942 : Implemented Channel.Flow based Producer Side flow control to the Java Broker (not in CPP Broker)
 org.apache.qpid.server.queue.ProducerFlowControlTest#*
 
-//QPID-1950 : Commit to test this failure. This is a MINA only failure so it cannot be tested when using 010.
-org.apache.qpid.server.failover.MessageDisappearWithIOExceptionTest#*
-
 //QPID-1864: rollback with subscriptions does not work in 0-10 yet
 org.apache.qpid.test.client.RollbackOrderTest#testOrderingAfterRollbackOnMessage
 
@@ -67,22 +64,7 @@ org.apache.qpid.server.failover.Failover
 org.apache.qpid.test.client.destination.AddressBasedDestinationTest#testCreateExchangeWithArgs
 org.apache.qpid.test.client.destination.AddressBasedDestinationTest#testSessionCreateTopicWithExchangeArgs
 
-// QPID-1935: the following tests are failing on 0.10 profiles
-org.apache.qpid.test.client.QueueBrowserTransactedTest#testFailoverAsQueueBrowserCreated
-org.apache.qpid.test.client.QueueBrowserTransactedTest#testFailoverWithQueueBrowser
-
 // QPID-3432: These tests test the behaviour of 0-8..-0-9-1 specific system property (amqj.default_syncwrite_timeout)
 org.apache.qpid.test.client.timeouts.SyncWaitTimeoutDelayTest#*
 org.apache.qpid.test.client.timeouts.SyncWaitDelayTest#*
 
-//QPID-3468: exclude QueueBrowser related failover tests
-org.apache.qpid.test.client.QueueBrowserAutoAckTest#testFailoverWithQueueBrowser
-org.apache.qpid.test.client.QueueBrowserAutoAckTest#testFailoverAsQueueBrowserCreated
-org.apache.qpid.test.client.QueueBrowserClientAckTest#testFailoverWithQueueBrowser
-org.apache.qpid.test.client.QueueBrowserClientAckTest#testFailoverAsQueueBrowserCreated
-org.apache.qpid.test.client.QueueBrowserNoAckTest#testFailoverWithQueueBrowser
-org.apache.qpid.test.client.QueueBrowserNoAckTest#testFailoverAsQueueBrowserCreated
-org.apache.qpid.test.client.QueueBrowserPreAckTest#testFailoverWithQueueBrowser
-org.apache.qpid.test.client.QueueBrowserPreAckTest#testFailoverAsQueueBrowserCreated
-org.apache.qpid.test.client.QueueBrowserDupsOkTest#testFailoverWithQueueBrowser
-org.apache.qpid.test.client.QueueBrowserDupsOkTest#testFailoverAsQueueBrowserCreated

Modified: qpid/trunk/qpid/java/test-profiles/JavaExcludes
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/test-profiles/JavaExcludes?rev=1224788&r1=1224787&r2=1224788&view=diff
==============================================================================
--- qpid/trunk/qpid/java/test-profiles/JavaExcludes (original)
+++ qpid/trunk/qpid/java/test-profiles/JavaExcludes Mon Dec 26 18:59:29 2011
@@ -28,9 +28,6 @@ org.apache.qpid.test.client.queue.QueueP
 //Moved from JavaStandaloneExcludes when it was removed
 ///////////////////////////////////////////////////////
 
-// This test may use QpidTestCase but it is not using the getConnection and is hardwired to InVM
-org.apache.qpid.test.unit.client.connection.CloseAfterConnectionFailureTest#*
-
 //QPID-1818, QPID-1821 : Client code path does not correctly restore a transacted session after failover.
 org.apache.qpid.server.persistent.NoLocalAfterRecoveryTest#*
 



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org