This is an automated email from the ASF dual-hosted git repository.

clebertsuconic pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git


The following commit(s) were added to refs/heads/master by this push:
     new 2567d8a  NO-JIRA Improving test reliability
2567d8a is described below

commit 2567d8a266f4ed0da97c732b00af558154a60d32
Author: Clebert Suconic <clebertsuco...@apache.org>
AuthorDate: Mon May 13 12:12:40 2019 -0400

    NO-JIRA Improving test reliability
---
 .../org/apache/activemq/artemis/junit/Wait.java    | 11 +++-
 .../jms/client/QueueAutoDeleteTest.java            | 73 +++++++++-------------
 2 files changed, 39 insertions(+), 45 deletions(-)

diff --git 
a/artemis-junit/src/main/java/org/apache/activemq/artemis/junit/Wait.java 
b/artemis-junit/src/main/java/org/apache/activemq/artemis/junit/Wait.java
index 5c817fb..44dbeca 100644
--- a/artemis-junit/src/main/java/org/apache/activemq/artemis/junit/Wait.java
+++ b/artemis-junit/src/main/java/org/apache/activemq/artemis/junit/Wait.java
@@ -98,8 +98,17 @@ public class Wait {
    }
 
    public static void assertTrue(String failureMessage, Condition condition, 
final long duration) throws Exception {
+      assertTrue(failureMessage, condition, duration, SLEEP_MILLIS);
+   }
+
+   public static void assertTrue(Condition condition, final long duration, 
final long sleep) throws Exception {
+      assertTrue("condition not met", condition, duration, sleep);
+   }
+
+
+   public static void assertTrue(String failureMessage, Condition condition, 
final long duration, final long sleep) throws Exception {
 
-      boolean result = waitFor(condition, duration);
+      boolean result = waitFor(condition, duration, sleep);
 
       if (!result) {
          Assert.fail(failureMessage);
diff --git 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/client/QueueAutoDeleteTest.java
 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/client/QueueAutoDeleteTest.java
index 23dac53..4c078e9 100644
--- 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/client/QueueAutoDeleteTest.java
+++ 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/client/QueueAutoDeleteTest.java
@@ -30,6 +30,7 @@ import org.apache.activemq.artemis.core.config.Configuration;
 import org.apache.activemq.artemis.core.postoffice.QueueBinding;
 import org.apache.activemq.artemis.jms.client.ActiveMQDestination;
 import org.apache.activemq.artemis.tests.util.JMSTestBase;
+import org.apache.activemq.artemis.tests.util.Wait;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -79,20 +80,20 @@ public class QueueAutoDeleteTest extends JMSTestBase {
 
          QueueBinding queueBinding = (QueueBinding) 
server.getPostOffice().getBinding(SimpleString.toSimpleString(testQueueName));
          assertTrue(queueBinding.getQueue().isAutoDelete());
-         assertEquals(2, queueBinding.getQueue().getMessageCount());
+         Wait.assertEquals(2, queueBinding.getQueue()::getMessageCount);
 
          MessageConsumer consumer = session.createConsumer(queue);
-         Message message = consumer.receive(100);
+         Message message = consumer.receive(5000);
          assertNotNull(message);
          message.acknowledge();
 
          consumer.close();
 
          queueBinding = (QueueBinding) 
server.getPostOffice().getBinding(SimpleString.toSimpleString(testQueueName));
-         assertEquals(1, queueBinding.getQueue().getMessageCount());
+         Wait.assertEquals(1, queueBinding.getQueue()::getMessageCount);
 
          consumer = session.createConsumer(queue);
-         message = consumer.receive(100);
+         message = consumer.receive(5000);
          assertNotNull(message);
          message.acknowledge();
 
@@ -101,11 +102,7 @@ public class QueueAutoDeleteTest extends JMSTestBase {
          //Wait longer than scan period.
          Thread.sleep(20);
 
-         queueBinding = (QueueBinding) 
server.getPostOffice().getBinding(SimpleString.toSimpleString(testQueueName));
-         assertNull(queueBinding);
-
-
-
+         Wait.assertTrue(() -> 
server.getPostOffice().getBinding(SimpleString.toSimpleString(testQueueName)) 
== null, 5000, 10);
 
       } finally {
          connection.close();
@@ -142,7 +139,7 @@ public class QueueAutoDeleteTest extends JMSTestBase {
          producer.send(session.createTextMessage("hello1"));
          producer.send(session.createTextMessage("hello2"));
 
-         Message message = consumer.receive(100);
+         Message message = consumer.receive(5000);
          assertNotNull(message);
          assertEquals("hello1", ((TextMessage)message).getText());
          message.acknowledge();
@@ -153,19 +150,14 @@ public class QueueAutoDeleteTest extends JMSTestBase {
          assertNotNull(queueBinding);
 
          consumer = session.createSharedDurableConsumer(topic, sub);
-         message = consumer.receive(100);
+         message = consumer.receive(5000);
          assertNotNull(message);
          assertEquals("hello2", ((TextMessage)message).getText());
          message.acknowledge();
 
          consumer.close();
 
-         //Wait longer than scan period.
-         Thread.sleep(20);
-
-         queueBinding = (QueueBinding) 
server.getPostOffice().getBinding(SimpleString.toSimpleString(sub));
-         assertNull(queueBinding);
-
+         Wait.assertTrue(() -> 
server.getPostOffice().getBinding(SimpleString.toSimpleString(sub)) == null, 
5000, 10);
 
       } finally {
          connection.close();
@@ -194,13 +186,13 @@ public class QueueAutoDeleteTest extends JMSTestBase {
 
          QueueBinding queueBinding = (QueueBinding) 
server.getPostOffice().getBinding(SimpleString.toSimpleString(sub));
          assertFalse(queueBinding.getQueue().isAutoDelete());
-         assertEquals(0, queueBinding.getQueue().getMessageCount());
+         Wait.assertEquals(0, queueBinding.getQueue()::getMessageCount);
 
          MessageProducer producer = session.createProducer(topic);
          producer.send(session.createTextMessage("hello1"));
          producer.send(session.createTextMessage("hello2"));
 
-         Message message = consumer.receive(100);
+         Message message = consumer.receive(5000);
          assertNotNull(message);
          assertEquals("hello1", ((TextMessage)message).getText());
          message.acknowledge();
@@ -211,7 +203,7 @@ public class QueueAutoDeleteTest extends JMSTestBase {
          assertNotNull(queueBinding);
 
          consumer = session.createSharedDurableConsumer(topic, sub);
-         message = consumer.receive(100);
+         message = consumer.receive(5000);
          assertNotNull(message);
          assertEquals("hello2", ((TextMessage)message).getText());
          message.acknowledge();
@@ -255,20 +247,20 @@ public class QueueAutoDeleteTest extends JMSTestBase {
 
          QueueBinding queueBinding = (QueueBinding) 
server.getPostOffice().getBinding(SimpleString.toSimpleString(testQueueName));
          assertFalse(queueBinding.getQueue().isAutoDelete());
-         assertEquals(2, queueBinding.getQueue().getMessageCount());
+         Wait.assertEquals(2, queueBinding.getQueue()::getMessageCount);
 
          MessageConsumer consumer = session.createConsumer(queue);
-         Message message = consumer.receive(100);
+         Message message = consumer.receive(5000);
          assertNotNull(message);
          message.acknowledge();
 
          consumer.close();
 
          queueBinding = (QueueBinding) 
server.getPostOffice().getBinding(SimpleString.toSimpleString(testQueueName));
-         assertEquals(1, queueBinding.getQueue().getMessageCount());
+         Wait.assertEquals(1, queueBinding.getQueue()::getMessageCount);
 
          consumer = session.createConsumer(queue);
-         message = consumer.receive(100);
+         message = consumer.receive(5000);
          assertNotNull(message);
          message.acknowledge();
 
@@ -279,7 +271,7 @@ public class QueueAutoDeleteTest extends JMSTestBase {
 
          queueBinding = (QueueBinding) 
server.getPostOffice().getBinding(SimpleString.toSimpleString(testQueueName));
          assertNotNull(queueBinding);
-         assertEquals(0, queueBinding.getQueue().getMessageCount());
+         Wait.assertEquals(0, queueBinding.getQueue()::getMessageCount);
 
       } finally {
          connection.close();
@@ -298,11 +290,11 @@ public class QueueAutoDeleteTest extends JMSTestBase {
 
          String testQueueName = getName();
 
-         Queue queue = session.createQueue(testQueueName + 
"?auto-delete=true&auto-delete-delay=500");
+         Queue queue = session.createQueue(testQueueName + 
"?auto-delete=true&auto-delete-delay=100");
          ActiveMQDestination activeMQDestination = (ActiveMQDestination) queue;
 
          assertEquals(testQueueName, queue.getQueueName());
-         assertEquals(Long.valueOf(500), 
activeMQDestination.getQueueAttributes().getAutoDeleteDelay());
+         assertEquals(Long.valueOf(100), 
activeMQDestination.getQueueAttributes().getAutoDeleteDelay());
 
          MessageProducer producer = session.createProducer(queue);
          producer.send(session.createTextMessage("hello1"));
@@ -310,21 +302,21 @@ public class QueueAutoDeleteTest extends JMSTestBase {
 
          QueueBinding queueBinding = (QueueBinding) 
server.getPostOffice().getBinding(SimpleString.toSimpleString(testQueueName));
          assertTrue(queueBinding.getQueue().isAutoDelete());
-         assertEquals(500, queueBinding.getQueue().getAutoDeleteDelay());
+         assertEquals(100, queueBinding.getQueue().getAutoDeleteDelay());
          assertEquals(2, queueBinding.getQueue().getMessageCount());
 
          MessageConsumer consumer = session.createConsumer(queue);
-         Message message = consumer.receive(100);
+         Message message = consumer.receive(5000);
          assertNotNull(message);
          message.acknowledge();
 
          consumer.close();
 
          queueBinding = (QueueBinding) 
server.getPostOffice().getBinding(SimpleString.toSimpleString(testQueueName));
-         assertEquals(1, queueBinding.getQueue().getMessageCount());
+         Wait.assertEquals(1, queueBinding.getQueue()::getMessageCount);
 
          consumer = session.createConsumer(queue);
-         message = consumer.receive(100);
+         message = consumer.receive(5000);
          assertNotNull(message);
          message.acknowledge();
 
@@ -337,11 +329,7 @@ public class QueueAutoDeleteTest extends JMSTestBase {
          queueBinding = (QueueBinding) 
server.getPostOffice().getBinding(SimpleString.toSimpleString(testQueueName));
          assertNotNull(queueBinding);
 
-         //Wait longer than auto delete delay
-         Thread.sleep(550);
-
-         queueBinding = (QueueBinding) 
server.getPostOffice().getBinding(SimpleString.toSimpleString(testQueueName));
-         assertNull(queueBinding);
+         Wait.assertTrue(() -> 
server.getPostOffice().getBinding(SimpleString.toSimpleString(testQueueName)) 
== null, 5000, 10);
 
 
       } finally {
@@ -377,7 +365,7 @@ public class QueueAutoDeleteTest extends JMSTestBase {
          assertEquals(2, queueBinding.getQueue().getMessageCount());
 
          MessageConsumer consumer = session.createConsumer(queue);
-         Message message = consumer.receive(100);
+         Message message = consumer.receive(5000);
          assertNotNull(message);
          message.acknowledge();
 
@@ -386,9 +374,7 @@ public class QueueAutoDeleteTest extends JMSTestBase {
          //Wait longer than scan period
          Thread.sleep(20);
 
-         queueBinding = (QueueBinding) 
server.getPostOffice().getBinding(SimpleString.toSimpleString(testQueueName));
-         assertNull(queueBinding);
-
+         Wait.assertTrue(() -> 
server.getPostOffice().getBinding(SimpleString.toSimpleString(testQueueName)) 
== null, 5000, 10);
 
       } finally {
          connection.close();
@@ -419,12 +405,12 @@ public class QueueAutoDeleteTest extends JMSTestBase {
          }
 
          QueueBinding queueBinding = (QueueBinding) 
server.getPostOffice().getBinding(SimpleString.toSimpleString(testQueueName));
-         assertEquals(100, queueBinding.getQueue().getMessageCount());
+         Wait.assertEquals(100, queueBinding.getQueue()::getMessageCount);
          assertTrue(queueBinding.getQueue().isAutoDelete());
          assertEquals(-1, queueBinding.getQueue().getAutoDeleteMessageCount());
 
          MessageConsumer consumer = session.createConsumer(queue);
-         Message message = consumer.receive(100);
+         Message message = consumer.receive(5000);
          assertNotNull(message);
          message.acknowledge();
 
@@ -433,8 +419,7 @@ public class QueueAutoDeleteTest extends JMSTestBase {
          //Wait longer than scan period
          Thread.sleep(20);
 
-         queueBinding = (QueueBinding) 
server.getPostOffice().getBinding(SimpleString.toSimpleString(testQueueName));
-         assertNull(queueBinding);
+         Wait.assertTrue(() -> 
server.getPostOffice().getBinding(SimpleString.toSimpleString(testQueueName)) 
== null, 5000, 10);
 
 
       } finally {

Reply via email to