update the test to make it more stable on multiple runs
Conflicts:
activemq-cpp/src/test-integration/activemq/test/openwire/OpenwireEnhancedConnectionTest.cpp
diff --git a/activemq-cpp/src/test-integration/activemq/test/openwire/OpenwireEnhancedConnectionTest.cpp b/activemq-cpp/src/test-integration/activemq/test/openwire/OpenwireEnhancedConnectionTest.cpp
index d099de5..7b24d5a 100644
--- a/activemq-cpp/src/test-integration/activemq/test/openwire/OpenwireEnhancedConnectionTest.cpp
+++ b/activemq-cpp/src/test-integration/activemq/test/openwire/OpenwireEnhancedConnectionTest.cpp
@@ -155,10 +155,17 @@
connection->start();
source->start();
- std::auto_ptr<Destination> destination1( session->createTopic("Test.Topic") );
- std::auto_ptr<MessageConsumer> consumer1( session->createConsumer( destination1.get() ) );
- std::auto_ptr<Destination> destination2( session->createQueue("Test.Queue") );
- std::auto_ptr<MessageConsumer> consumer2( session->createConsumer( destination2.get() ) );
+ TimeUnit::SECONDS.sleep(2);
+
+ int currentQueueCount = listener.queueCount;
+ int currentTopicCount = listener.topicCount;
+ int currentTempQueueCount = listener.tempQueueCount;
+ int currentTempTopicCount = listener.tempTopicCount;
+
+ std::auto_ptr<Destination> destination1(session->createTopic(UUID::randomUUID().toString()));
+ std::auto_ptr<MessageConsumer> consumer1(session->createConsumer(destination1.get()));
+ std::auto_ptr<Destination> destination2(session->createQueue(UUID::randomUUID().toString()) );
+ std::auto_ptr<MessageConsumer> consumer2(session->createConsumer(destination2.get()));
consumer1->close();
consumer2->close();
@@ -166,27 +173,28 @@
std::auto_ptr<Destination> destination3( session->createTemporaryQueue() );
std::auto_ptr<Destination> destination4( session->createTemporaryTopic() );
- Thread::sleep(1500);
+ TimeUnit::SECONDS.sleep(2);
- CPPUNIT_ASSERT_EQUAL_MESSAGE("Should be one Queue", 1, listener.queueCount);
- CPPUNIT_ASSERT_MESSAGE("Should be at least Topic", listener.topicCount >= 1);
- CPPUNIT_ASSERT_EQUAL_MESSAGE("Should be one temp Queue", 1, listener.tempQueueCount);
- CPPUNIT_ASSERT_EQUAL_MESSAGE("Should be one temp Topic", 1, listener.tempTopicCount);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Should be one Queue", currentQueueCount + 1, listener.queueCount);
+ CPPUNIT_ASSERT_MESSAGE("Should be at least Topic", listener.topicCount > currentTopicCount);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Should be one temp Queue", currentTempQueueCount + 1, listener.tempQueueCount);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Should be one temp Topic", currentTempTopicCount + 1, listener.tempTopicCount);
amq->destroyDestination(destination1.get());
amq->destroyDestination(destination2.get());
- Thread::sleep(1500);
+ TimeUnit::SECONDS.sleep(2);
- CPPUNIT_ASSERT_EQUAL_MESSAGE("Should be no Queues", 0, listener.queueCount);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Should be no Queues created by this test",
+ currentQueueCount, listener.queueCount);
source->stop();
std::auto_ptr<Destination> destination5( session->createTemporaryQueue() );
std::auto_ptr<Destination> destination6( session->createTemporaryTopic() );
- CPPUNIT_ASSERT_EQUAL_MESSAGE("Should be one temp Queue", 1, listener.tempQueueCount);
- CPPUNIT_ASSERT_EQUAL_MESSAGE("Should be one temp Topic", 1, listener.tempTopicCount);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Temp Queue Counts shouldn't change", currentTempQueueCount + 1, listener.tempQueueCount);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Temp Topic Counts shouldn't change", currentTempTopicCount + 1, listener.tempTopicCount);
listener.reset();
source->start();
@@ -194,10 +202,12 @@
std::auto_ptr<Destination> destination7( session->createTemporaryQueue() );
std::auto_ptr<Destination> destination8( session->createTemporaryTopic() );
- Thread::sleep(1500);
+ TimeUnit::SECONDS.sleep(2);
- CPPUNIT_ASSERT_EQUAL_MESSAGE("Should be two temp Queues", 3, listener.tempQueueCount);
- CPPUNIT_ASSERT_EQUAL_MESSAGE("Should be two temp Topics", 3, listener.tempTopicCount);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Should be three total temp Queues from this test",
+ currentTempQueueCount + 3, listener.tempQueueCount);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Should be three total temp Topics from this test",
+ currentTempTopicCount + 3, listener.tempTopicCount);
source->stop();
connection->close();
@@ -232,12 +242,10 @@
connection->start();
source->start();
- TimeUnit::SECONDS.sleep(1);
+ TimeUnit::SECONDS.sleep(2);
- CPPUNIT_ASSERT_EQUAL(0, (int)source->getQueues().size());
- CPPUNIT_ASSERT_EQUAL(0, (int)source->getTopics().size());
- CPPUNIT_ASSERT_EQUAL(0, (int)source->getTemporaryQueues().size());
- CPPUNIT_ASSERT_EQUAL(0, (int)source->getTemporaryTopics().size());
+ int currTempQueueCount = (int)source->getTemporaryQueues().size();
+ int currTempTopicCount = (int)source->getTemporaryTopics().size();
std::auto_ptr<Destination> destination1(session->createTemporaryQueue());
std::auto_ptr<Destination> destination2(session->createTemporaryTopic());
@@ -251,8 +259,8 @@
std::vector<cms::TemporaryQueue*> tempQueues = source->getTemporaryQueues();
std::vector<cms::TemporaryTopic*> tempTopics = source->getTemporaryTopics();
- CPPUNIT_ASSERT_EQUAL(3, (int)tempQueues.size());
- CPPUNIT_ASSERT_EQUAL(3, (int)tempTopics.size());
+ CPPUNIT_ASSERT_EQUAL(currTempQueueCount + 3, (int)tempQueues.size());
+ CPPUNIT_ASSERT_EQUAL(currTempTopicCount + 3, (int)tempTopics.size());
for (int i = 0; i < 3; ++i) {
delete tempQueues[i];