diff options
Diffstat (limited to 'qpid/java/systests')
11 files changed, 135 insertions, 36 deletions
diff --git a/qpid/java/systests/etc/config-systests-settings.xml b/qpid/java/systests/etc/config-systests-settings.xml index a7f538aec1..751ff133cb 100644 --- a/qpid/java/systests/etc/config-systests-settings.xml +++ b/qpid/java/systests/etc/config-systests-settings.xml @@ -24,6 +24,8 @@ <enabled>false</enabled> <ssl> <enabled>false</enabled> + <keyStorePath>${QPID_HOME}/../test-profiles/test_resources/ssl/keystore.jks</keyStorePath> + <keyStorePassword>password</keyStorePassword> </ssl> </management> <virtualhosts>${QPID_HOME}/etc/virtualhosts-systests.xml</virtualhosts> diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/client/AMQQueueDeferredOrderingTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/client/AMQQueueDeferredOrderingTest.java index 8946548353..2dded57dd0 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/client/AMQQueueDeferredOrderingTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/client/AMQQueueDeferredOrderingTest.java @@ -138,7 +138,8 @@ public class AMQQueueDeferredOrderingTest extends QpidBrokerTestCase Message msg = _consumer.receive(3000); assertNotNull("Message should not be null", msg); assertTrue("Message should be a text message", msg instanceof TextMessage); - assertEquals("Message content does not match expected", Integer.toString(i), ((TextMessage) msg).getText()); + _logger.error("== " + Integer.toString(i) + " == " + ((TextMessage) msg).getText()); + assertEquals("Message content does not match", Integer.toString(i), ((TextMessage) msg).getText()); } } diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/QueueDepthWithSelectorTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/QueueDepthWithSelectorTest.java index acb5d12e57..43a0f4dbec 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/QueueDepthWithSelectorTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/server/queue/QueueDepthWithSelectorTest.java @@ -169,7 +169,7 @@ public class QueueDepthWithSelectorTest extends QpidBrokerTestCase for (int i = 0; i < MSG_COUNT; i++) { _messages[i] = _consumer.receive(1000); - assertNotNull("should have received a message but didn't", _messages[i]); + assertNotNull("should have received a message but didn't " + i, _messages[i]); } // long queueDepth = ((AMQSession) _clientSession).getQueueDepth((AMQDestination) _queue); diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java index af7c08ca65..1d1f4a53d5 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java @@ -280,6 +280,10 @@ public class AddressBasedDestinationTest extends QpidBrokerTestCase assertTrue("Queue not bound as expected",( (AMQSession_0_10)jmsSession).isQueueBound("my-exchange", dest.getQueueName(),"hello", Collections.<String, Object>emptyMap())); + + // The client should be able to query and verify the existence of my-exchange (QPID-2774) + dest = new AMQAnyDestination("ADDR:my-exchange; {create: never}"); + cons = jmsSession.createConsumer(dest); } public void testBindQueueWithArgs() throws Exception @@ -684,9 +688,11 @@ public class AddressBasedDestinationTest extends QpidBrokerTestCase } /** - * Test Goal : Verify that unique subscription queues are created when consumers are - * created using the same destination except when the subscription queue - * has a name. + * Test Goal : When the same destination is used when creating two consumers, + * If the type == topic, verify that unique subscription queues are created, + * unless subscription queue has a name. + * + * If the type == queue, same queue should be shared. */ public void testSubscriptionForSameDestination() throws Exception { @@ -715,6 +721,28 @@ public class AddressBasedDestinationTest extends QpidBrokerTestCase catch(Exception e) { } + _connection.close(); + + _connection = getConnection() ; + _connection.start(); + ssn = _connection.createSession(false,Session.AUTO_ACKNOWLEDGE); + dest = ssn.createTopic("ADDR:my_queue; {create: always}"); + consumer1 = ssn.createConsumer(dest); + consumer2 = ssn.createConsumer(dest); + prod = ssn.createProducer(dest); + + prod.send(ssn.createTextMessage("A")); + Message m1 = consumer1.receive(1000); + Message m2 = consumer2.receive(1000); + + if (m1 != null) + { + assertNull("Only one consumer should receive the message",m2); + } + else + { + assertNotNull("Only one consumer should receive the message",m2); + } } public void testXBindingsWithoutExchangeName() throws Exception @@ -752,4 +780,20 @@ public class AddressBasedDestinationTest extends QpidBrokerTestCase assertNotNull("consumer should receive a message",cons.receive(1000)); cons.close(); } + + public void testXSubscribeOverrides() throws Exception + { + Session ssn = _connection.createSession(false,Session.AUTO_ACKNOWLEDGE); + String str = "ADDR:my_queue; {create:always,link: {x-subscribes:{exclusive: true, arguments: {a:b,x:y}}}}"; + Destination dest = ssn.createTopic(str); + MessageConsumer consumer1 = ssn.createConsumer(dest); + try + { + MessageConsumer consumer2 = ssn.createConsumer(dest); + fail("An exception should be thrown as 'my-queue' already have an exclusive subscriber"); + } + catch(Exception e) + { + } + } } diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/BytesMessageTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/BytesMessageTest.java index 59ce64eb4f..8c5299e301 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/BytesMessageTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/BytesMessageTest.java @@ -239,7 +239,8 @@ public class BytesMessageTest extends QpidBrokerTestCase implements MessageListe { if (expected[i] != actual[i]) { - throw new RuntimeException("Failed on byte " + i + " of " + expected.length); + throw new RuntimeException("Failed on byte " + i + " of " + expected.length + + "(" + new String(expected) +", " + new String(actual) + ")"); } } } diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/LargeMessageTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/LargeMessageTest.java index d97e22e024..e6f3ef7493 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/LargeMessageTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/basic/LargeMessageTest.java @@ -41,11 +41,18 @@ public class LargeMessageTest extends QpidBrokerTestCase private static final Logger _logger = LoggerFactory.getLogger(LargeMessageTest.class); private Destination _destination; - private AMQSession _session; + private AMQSession<?, ?> _session; private AMQConnection _connection; protected void setUp() throws Exception { + // Smaller packet size for UDP + if (Boolean.getBoolean("profile.udp")) + { + setConfigurationProperty("advanced.framesize", "20000"); + setBrokerEnvironment("qpid.maxFrameSize", "20000"); + } + super.setUp(); try { diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionCloseTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionCloseTest.java index 17ac0dfff2..50162449e5 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionCloseTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionCloseTest.java @@ -46,7 +46,7 @@ public class ConnectionCloseTest extends QpidBrokerTestCase public void testSendReceiveClose() throws Exception { Map<Thread,StackTraceElement[]> before = Thread.getAllStackTraces(); - + for (int i = 0; i < 500; i++) { if ((i % 10) == 0) @@ -92,7 +92,7 @@ public class ConnectionCloseTest extends QpidBrokerTestCase assertTrue("Spurious thread creation exceeded threshold, " + delta.size() + " threads created.", - delta.size() < 100); + delta.size() < 10); } private void dumpStacks(Map<Thread,StackTraceElement[]> map) @@ -104,5 +104,4 @@ public class ConnectionCloseTest extends QpidBrokerTestCase log.warn(t, entry.getKey().toString()); } } - } diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java index 6bf610ff90..68d774fce6 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java @@ -272,6 +272,28 @@ public class ConnectionTest extends QpidBrokerTestCase } connection.close(); } + + public void testUnsupportedSASLMechanism() throws Exception + { + BrokerDetails broker = getBroker(); + broker.setProperty(BrokerDetails.OPTIONS_SASL_MECHS, "MY_MECH"); + + try + { + Connection connection = new AMQConnection(broker.toString(), "guest", "guest", + null, "test"); + connection.close(); + fail("The client should throw a ConnectionException stating the" + + " broker does not support the SASL mech specified by the client"); + } + catch (Exception e) + { + assertTrue("Incorrect exception thrown", + e.getMessage().contains("The following SASL mechanisms " + + "[MY_MECH]" + + " specified by the client are not supported by the broker")); + } + } public static junit.framework.Test suite() { diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/topic/DurableSubscriptionTest.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/topic/DurableSubscriptionTest.java index d73761d12a..d799b141c0 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/topic/DurableSubscriptionTest.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/topic/DurableSubscriptionTest.java @@ -657,7 +657,14 @@ public class DurableSubscriptionTest extends QpidBrokerTestCase session.commit(); // Check queue has no messages - assertEquals("Queue should be empty", 0, ((AMQSession<?, ?>) session).getQueueDepth(queue)); + if (isJavaBroker()) + { + assertEquals("Queue should be empty", 0, ((AMQSession<?, ?>) session).getQueueDepth(queue)); + } + else + { + assertTrue("At most the queue should have only 1 message", ((AMQSession<?, ?>) session).getQueueDepth(queue) <= 1); + } // Unsubscribe session.unsubscribe("sameMessageSelector"); @@ -671,7 +678,7 @@ public class DurableSubscriptionTest extends QpidBrokerTestCase * <li>create another durable subscriber with a different selector and same name * <li>check first subscriber is now closed * <li>create a publisher and send messages - * <li>check messages are recieved correctly + * <li>check messages are received correctly * </ul> * <p> * QPID-2418 @@ -704,6 +711,8 @@ public class DurableSubscriptionTest extends QpidBrokerTestCase e.printStackTrace(); } + conn.stop(); + // Send 1 matching message and 1 non-matching message MessageProducer producer = session.createProducer(topic); TextMessage msg = session.createTextMessage("testResubscribeWithChangedSelectorAndRestart1"); @@ -718,6 +727,8 @@ public class DurableSubscriptionTest extends QpidBrokerTestCase AMQQueue queue = new AMQQueue("amq.topic", "clientid" + ":" + "testResubscribeWithChangedSelectorNoClose"); assertEquals("Queue depth is wrong", isJavaBroker() ? 1 : 2, ((AMQSession<?, ?>) session).getQueueDepth(queue)); + conn.start(); + Message rMsg = subB.receive(1000); assertNotNull(rMsg); assertEquals("Content was wrong", @@ -768,6 +779,8 @@ public class DurableSubscriptionTest extends QpidBrokerTestCase e.printStackTrace(); } + conn.stop(); + // Send 1 matching message and 1 non-matching message MessageProducer producer = session.createProducer(topic); TextMessage msg = session.createTextMessage("testResubscribeWithChangedSelectorAndRestart1"); @@ -782,6 +795,8 @@ public class DurableSubscriptionTest extends QpidBrokerTestCase AMQQueue queue = new AMQQueue("amq.topic", "clientid" + ":" + "subscriptionName"); assertEquals("Queue depth is wrong", isJavaBroker() ? 1 : 2, ((AMQSession<?, ?>) session).getQueueDepth(queue)); + conn.start(); + Message rMsg = subTwo.receive(1000); assertNotNull(rMsg); assertEquals("Content was wrong", diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/transacted/TransactionTimeoutTestCase.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/transacted/TransactionTimeoutTestCase.java index f631a9a4ba..074c2fa566 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/transacted/TransactionTimeoutTestCase.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/transacted/TransactionTimeoutTestCase.java @@ -243,11 +243,14 @@ public class TransactionTimeoutTestCase extends QpidBrokerTestCase implements Ex /** @see javax.jms.ExceptionListener#onException(javax.jms.JMSException) */ public void onException(JMSException jmse) { - _caught.countDown(); - _message = jmse.getLinkedException().getMessage(); - if (jmse.getLinkedException() instanceof AMQException) + if (_caught.getCount() > 0L) { - _code = ((AMQException) jmse.getLinkedException()).getErrorCode(); + _caught.countDown(); + _message = jmse.getLinkedException().getMessage(); + if (jmse.getLinkedException() instanceof AMQException) + { + _code = ((AMQException) jmse.getLinkedException()).getErrorCode(); + } } } } diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java index 96fc865fb4..bf5d32d2e6 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java @@ -639,20 +639,23 @@ public class QpidBrokerTestCase extends QpidTestCase public void stopBroker(int port) throws Exception { - port = getPort(port); - _logger.info("stopping broker: " + getBrokerCommand(port) + " on port " + port); - Process process = _brokers.remove(port); - if (process != null) - { - process.destroy(); - process.waitFor(); - _logger.info("broker exited: " + process.exitValue()); - } - else if (_broker.equals(VM)) + if (_broker.equals(VM)) { VmBroker.killVMBroker(); } + else + { + port = getPort(port); + + Process process = _brokers.remove(port); + if (process != null) + { + process.destroy(); + process.waitFor(); + _logger.info("broker exited: " + process.exitValue()); + } + } } /** @@ -973,20 +976,22 @@ public class QpidBrokerTestCase extends QpidTestCase protected void tearDown() throws Exception { - try + // close all the connections used by this test. + for (Connection c : _connections) { - // close all the connections used by this test. - for (Connection c : _connections) - { + try + { c.close(); } + catch (Exception e) + { + _logger.warn("Error closing connection", e); + } } - finally - { - // Ensure any problems with close does not interfer with property resets - super.tearDown(); - revertLoggingLevels(); - } + + // Ensure any problems with close does not interfer with property resets + super.tearDown(); + revertLoggingLevels(); } /** |