Hi all,

Thank you again for the extensive discussion and the openness.

I went ahead and finished the review of all the tests in MQTT module to
flag them up with @Category when they were eligible for parallel execution.
I had first excluded them because they were using setProperty for SSL
configuration, but because we are using forks that we bin after each
execution, we always start from a clean state and there is no risk of
leaking system properties to other tests.

That makes it possible to move from 14'23 on my mac to 3'30 more or less
with my mac (was previously around 6'00).

That being said, running in parallel messes up the standard output because
every execution in parallel pukes to standard output.

I have updated the configuration with a configuration I like in this
context. It basically gives you a clear and clean view of the test
executions and only prints the errors/failures. Even if it runs in
parallel, the reporter will wait for the end of the test to provided
something like this

[INFO] ---org.apache.activemq.transport.mqtt.MQTTCompositeQueueRetainedTest
- 1.748 s
[INFO]    '-- [XX] testSendMQTTReceiveJMSCompositeDestinations - 1.746 s
[INFO] [*] testSendMQTTReceiveJMSCompositeDestinations
[INFO]
[INFO] Stack trace
[INFO] java.lang.RuntimeException: JL is making a fancy failure here
at
org.apache.activemq.transport.mqtt.MQTTCompositeQueueRetainedTest.testSendMQTTReceiveJMSCompositeDestinations(MQTTCompositeQueueRetainedTest.java:87)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at
org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:299)
at
org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:293)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:842)

[INFO]
[INFO] Standard out
2025-11-24 12:58:31,243 | INFO  | MQTTTestSupport                | Added
connector mqtt to broker
2025-11-24 12:58:31,248 | INFO  | BrokerService                  | Using
Persistence Adapter: MemoryPersistenceAdapter
2025-11-24 12:58:31,248 | INFO  | BrokerService                  | Starting
Persistence Adapter: MemoryPersistenceAdapter
2025-11-24 12:58:31,249 | INFO  | BrokerService                  | Starting
Temp Data Store
2025-11-24 12:58:31,249 | INFO  | BrokerService                  | Starting
Job Scheduler Store
2025-11-24 12:58:31,249 | INFO  | BrokerService                  |
Persistence Adapter successfully started
2025-11-24 12:58:31,623 | INFO  | BrokerService                  | Apache
ActiveMQ 6.2.1-SNAPSHOT (localhost,
ID:MacBook-Pro-11319.local-65062-1763985511452-0:1) is starting
2025-11-24 12:58:31,636 | INFO  | TransportServerThreadSupport   |
Listening for connections at: mqtt://MacBook-Pro-11319.local:65075
2025-11-24 12:58:31,636 | INFO  | TransportConnector             |
Connector mqtt started
2025-11-24 12:58:31,637 | INFO  | TransportServerThreadSupport   |
Listening for connections at: tcp://MacBook-Pro-11319.local:65076
2025-11-24 12:58:31,638 | INFO  | TransportConnector             |
Connector openwire started
2025-11-24 12:58:31,638 | INFO  | BrokerService                  | Apache
ActiveMQ 6.2.1-SNAPSHOT (localhost,
ID:MacBook-Pro-11319.local-65062-1763985511452-0:1) started
2025-11-24 12:58:31,638 | INFO  | BrokerService                  | For help
or more information please see: http://activemq.apache.org
2025-11-24 12:58:31,719 | INFO  | BrokerService                  | Apache
ActiveMQ 6.2.1-SNAPSHOT (localhost,
ID:MacBook-Pro-11319.local-65062-1763985511452-0:1) is shutting down
2025-11-24 12:58:31,722 | INFO  | TransportConnector             |
Connector mqtt stopped
2025-11-24 12:58:31,722 | INFO  | TransportConnector             |
Connector openwire stopped
2025-11-24 12:58:31,726 | INFO  | BrokerService                  | Apache
ActiveMQ 6.2.1-SNAPSHOT (localhost,
ID:MacBook-Pro-11319.local-65062-1763985511452-0:1) uptime 0.481 seconds
2025-11-24 12:58:31,727 | INFO  | BrokerService                  | Apache
ActiveMQ 6.2.1-SNAPSHOT (localhost,
ID:MacBook-Pro-11319.local-65062-1763985511452-0:1) is shutdown
[INFO]
[INFO] Standard error
[INFO] ---org.apache.activemq.transport.mqtt.auto.MQTTAutoSslAuthTest -
1.664 s
[INFO]    +-- [OK] testMQTT311Connection[scheme=auto+nio+ssl] - 1.529 s
[INFO]    '-- [OK] testMQTT311Connection[scheme=auto+ssl] - 0.132 s
[INFO] ---org.apache.activemq.transport.mqtt.MQTTOverlapedSubscriptionsTest
- 2.672 s
[INFO]    '-- [OK] testMqttResubscribe - 2.670 s

Similar to when you run sequentially. but without stdout by default when it
runs ok.
NOTE: I introduced an exception for a test locally so you could see how it
looks when it fails.


There is still the target/surefire-reports per test in case we need to dig
into one specific test case.


--
Jean-Louis Monteiro
http://twitter.com/jlouismonteiro
http://www.tomitribe.com

Reply via email to