You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2012/07/28 18:26:47 UTC
svn commit: r1366704 - in /activemq/activemq-apollo/trunk:
apollo-openwire/src/test/scala/org/apache/activemq/apollo/openwire/test/
apollo-util/src/test/scala/org/apache/activemq/apollo/util/
Author: chirino
Date: Sat Jul 28 16:26:46 2012
New Revision: 1366704
URL: http://svn.apache.org/viewvc?rev=1366704&view=rev
Log:
Run the DestinationWildCard tests in parallel and avoid using receive timeouts.
Modified:
activemq/activemq-apollo/trunk/apollo-openwire/src/test/scala/org/apache/activemq/apollo/openwire/test/DestinationWildcardTest.scala
activemq/activemq-apollo/trunk/apollo-openwire/src/test/scala/org/apache/activemq/apollo/openwire/test/OpenwireTestSupport.scala
activemq/activemq-apollo/trunk/apollo-util/src/test/scala/org/apache/activemq/apollo/util/FunSuiteSupport.scala
Modified: activemq/activemq-apollo/trunk/apollo-openwire/src/test/scala/org/apache/activemq/apollo/openwire/test/DestinationWildcardTest.scala
URL: http://svn.apache.org/viewvc/activemq/activemq-apollo/trunk/apollo-openwire/src/test/scala/org/apache/activemq/apollo/openwire/test/DestinationWildcardTest.scala?rev=1366704&r1=1366703&r2=1366704&view=diff
==============================================================================
--- activemq/activemq-apollo/trunk/apollo-openwire/src/test/scala/org/apache/activemq/apollo/openwire/test/DestinationWildcardTest.scala (original)
+++ activemq/activemq-apollo/trunk/apollo-openwire/src/test/scala/org/apache/activemq/apollo/openwire/test/DestinationWildcardTest.scala Sat Jul 28 16:26:46 2012
@@ -17,47 +17,50 @@
package org.apache.activemq.apollo.openwire.test
import javax.jms.{MessageConsumer, MessageProducer, TextMessage, Session}
+import org.apache.activemq.apollo.broker.BrokerParallelTestExecution
-class DestinationWildcardTest extends OpenwireTestSupport {
+class DestinationWildcardTest extends OpenwireTestSupport with BrokerParallelTestExecution {
def path_separator = "."
test("Wildcard subscription") {
connect()
- val prefix = "foo" + path_separator
+ val common_prefix = next_id()
+ val prefix = common_prefix + path_separator
val session = default_connection.createSession(false, Session.AUTO_ACKNOWLEDGE)
val producer1 = session.createProducer(queue(prefix + "A"))
val producer2 = session.createProducer(queue(prefix + "B"))
- val producer3 = session.createProducer(queue("bar.A"))
+ val producer3 = session.createProducer(queue(common_prefix+ "bar.A"))
def put(producer: MessageProducer, id: Int) {
producer.send(session.createTextMessage("message:" + id))
}
- List(1, 2, 3).foreach(put(producer1, _))
- producer3.send(session.createTextMessage("This one shouldn't get consumed."))
- List(1, 2, 3).foreach(put(producer2, _))
-
val consumer = session.createConsumer(queue(prefix + "*"))
-
def get(id: Int) {
- val m = consumer.receive().asInstanceOf[TextMessage]
- m.getText should equal("message:" + id)
+ receive_text(consumer) should equal("message:" + id)
}
+ List(1, 2, 3).foreach(put(producer1, _))
List(1, 2, 3).foreach(get _)
+
+ producer3.send(session.createTextMessage("This one shouldn't get consumed."))
+
+ List(1, 2, 3).foreach(put(producer2, _))
List(1, 2, 3).foreach(get _)
- consumer.receive(1000) should be(null)
+ put(producer1, -1)
+ get(-1)
}
test("Wildcard subscription with multiple path sections") {
connect()
- val prefix1 = "foo" + path_separator + "bar" + path_separator
- val prefix2 = "foo" + path_separator + "bar" + path_separator + "cheeze" + path_separator
- val prefix3 = "foo" + path_separator + "bar" + path_separator + "cracker" + path_separator
+ val common_prefix = next_id()
+ val prefix1 = common_prefix+"foo" + path_separator + "bar" + path_separator
+ val prefix2 = common_prefix+"foo" + path_separator + "bar" + path_separator + "cheeze" + path_separator
+ val prefix3 = common_prefix+"foo" + path_separator + "bar" + path_separator + "cracker" + path_separator
val session = default_connection.createSession(false, Session.AUTO_ACKNOWLEDGE)
val producer1 = session.createProducer(topic(prefix1 + "A"))
@@ -67,37 +70,35 @@ class DestinationWildcardTest extends Op
def put(producer: MessageProducer, id: Int) {
producer.send(session.createTextMessage("message:" + id))
}
+ def get(consumer: MessageConsumer, id: Int) {
+ receive_text(consumer) should equal("message:" + id)
+ }
val consumer1 = session.createConsumer(topic(prefix1 + "*"))
val consumer2 = session.createConsumer(topic(prefix2 + "*"))
val consumer3 = session.createConsumer(topic(prefix3 + "*"))
- def get(consumer: MessageConsumer, id: Int) {
- val m = consumer.receive(2000).asInstanceOf[TextMessage]
- m should not be (null)
- m.getText should equal("message:" + id)
- }
- // They only consumer one should see these.
- List(1, 2, 3).foreach(put(producer1, _))
+ put(producer1, 1)
+ List(producer1, producer2, producer3).foreach(put(_, -1))
- List(1, 2, 3).foreach(get(consumer1, _))
- consumer2.receive(2000) should be(null)
- consumer3.receive(2000) should be(null)
+ get(consumer1, 1)
+ List(consumer1, consumer2, consumer3).foreach(get(_, -1))
- // They only consumer two should see these.
- List(1, 2, 3).foreach(put(producer2, _))
- List(1, 2, 3).foreach(get(consumer2, _))
- consumer1.receive(2000) should be(null)
- consumer3.receive(2000) should be(null)
-
- // They only consumer two should see these.
- List(1, 2, 3).foreach(put(producer3, _))
-
- List(1, 2, 3).foreach(get(consumer3, _))
- consumer1.receive(2000) should be(null)
- consumer2.receive(2000) should be(null)
+ put(producer2, 2)
+ List(producer1, producer2, producer3).foreach(put(_, -1))
+
+ get(consumer2, 2)
+ List(consumer1, consumer2, consumer3).foreach(get(_, -1))
+
+
+ put(producer3, 3)
+ List(producer1, producer2, producer3).foreach(put(_, -1))
+
+ get(consumer3, 3)
+ List(consumer1, consumer2, consumer3).foreach(get(_, -1))
+
}
}
\ No newline at end of file
Modified: activemq/activemq-apollo/trunk/apollo-openwire/src/test/scala/org/apache/activemq/apollo/openwire/test/OpenwireTestSupport.scala
URL: http://svn.apache.org/viewvc/activemq/activemq-apollo/trunk/apollo-openwire/src/test/scala/org/apache/activemq/apollo/openwire/test/OpenwireTestSupport.scala?rev=1366704&r1=1366703&r2=1366704&view=diff
==============================================================================
--- activemq/activemq-apollo/trunk/apollo-openwire/src/test/scala/org/apache/activemq/apollo/openwire/test/OpenwireTestSupport.scala (original)
+++ activemq/activemq-apollo/trunk/apollo-openwire/src/test/scala/org/apache/activemq/apollo/openwire/test/OpenwireTestSupport.scala Sat Jul 28 16:26:46 2012
@@ -20,7 +20,7 @@ package org.apache.activemq.apollo.openw
import org.scalatest.matchers.ShouldMatchers
import org.scalatest.BeforeAndAfterEach
import java.lang.String
-import javax.jms.Connection
+import javax.jms.{MessageConsumer, TextMessage, Connection}
import org.apache.activemq.ActiveMQConnectionFactory
import org.apache.activemq.command.{ActiveMQTopic, ActiveMQQueue}
import org.apache.activemq.apollo.broker.BrokerFunSuiteSupport
@@ -65,4 +65,7 @@ class OpenwireTestSupport extends Broker
connection
}
+ def receive_text(consumer:MessageConsumer) = consumer.receive().asInstanceOf[TextMessage].getText
+
+
}
\ No newline at end of file
Modified: activemq/activemq-apollo/trunk/apollo-util/src/test/scala/org/apache/activemq/apollo/util/FunSuiteSupport.scala
URL: http://svn.apache.org/viewvc/activemq/activemq-apollo/trunk/apollo-util/src/test/scala/org/apache/activemq/apollo/util/FunSuiteSupport.scala?rev=1366704&r1=1366703&r2=1366704&view=diff
==============================================================================
--- activemq/activemq-apollo/trunk/apollo-util/src/test/scala/org/apache/activemq/apollo/util/FunSuiteSupport.scala (original)
+++ activemq/activemq-apollo/trunk/apollo-util/src/test/scala/org/apache/activemq/apollo/util/FunSuiteSupport.scala Sat Jul 28 16:26:46 2012
@@ -27,10 +27,12 @@ import FileSupport._
import scala.Some
import org.apache.activemq.apollo.util.FunSuiteSupport._
import java.util.concurrent.locks.{ReentrantReadWriteLock, Lock, ReadWriteLock}
+import java.util.concurrent.atomic.AtomicLong
object FunSuiteSupport {
class SkipTestException extends RuntimeException
val parallel_test_class_lock = new ReentrantReadWriteLock()
+ val id_counter = new AtomicLong()
}
/**
@@ -39,6 +41,8 @@ object FunSuiteSupport {
@RunWith(classOf[org.scalatest.junit.ParallelJUnitRunner])
abstract class FunSuiteSupport extends FunSuite with Logging with ParallelBeforeAndAfterAll {
+ def next_id(prefix:String="", suffix:String="") = prefix+id_counter.incrementAndGet()+suffix
+
protected var _basedir = try {
var file = new File(getClass.getProtectionDomain.getCodeSource.getLocation.getFile)
file = (file / ".." / "..").getCanonicalFile