Skip to content

Commit c3fb77d

Browse files
committed
AMQ-8525: IO are slow on CI. Fix random failures with tests and add parallelism to speed up the tests on CI
1 parent 0b58755 commit c3fb77d

File tree

820 files changed

+11435
-628
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

820 files changed

+11435
-628
lines changed

activemq-unit-tests/pom.xml

Lines changed: 67 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@
2929
<name>ActiveMQ :: Unit Tests</name>
3030
<description>The ActiveMQ Message Broker and Client Unit Tests</description>
3131

32+
<properties>
33+
<surefire.version>3.5.3</surefire.version>
34+
</properties>
35+
3236
<dependencies>
3337

3438
<!-- =============================== -->
@@ -391,12 +395,38 @@
391395
</configuration>
392396
</plugin>
393397
<plugin>
398+
<groupId>org.apache.maven.plugins</groupId>
394399
<artifactId>maven-surefire-plugin</artifactId>
400+
<version>${surefire.version}</version>
395401
<configuration>
396402
<forkCount>1</forkCount>
397403
<reuseForks>false</reuseForks>
398404
<forkedProcessTimeoutInSeconds>3600</forkedProcessTimeoutInSeconds>
399405
<runOrder>alphabetical</runOrder>
406+
<reportFormat>plain</reportFormat>
407+
<failIfNoTests>false</failIfNoTests>
408+
<excludedGroups>org.apache.activemq.test.annotations.ParallelTest</excludedGroups>
409+
<systemPropertyVariables>
410+
<org.apache.activemq.default.directory.prefix>${project.build.directory}/</org.apache.activemq.default.directory.prefix>
411+
<java.net.preferIPv4Stack>true</java.net.preferIPv4Stack>
412+
<org.apache.activemq.AutoFailTestSupport.disableSystemExit>true</org.apache.activemq.AutoFailTestSupport.disableSystemExit>
413+
<org.apache.activemq.broker.jmx.createConnector>false</org.apache.activemq.broker.jmx.createConnector>
414+
</systemPropertyVariables>
415+
<consoleOutputReporter>
416+
<disable>true</disable>
417+
</consoleOutputReporter>
418+
<statelessTestsetInfoReporter
419+
implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5StatelessTestsetInfoTreeReporter">
420+
<printStacktraceOnError>true</printStacktraceOnError>
421+
<printStacktraceOnFailure>true</printStacktraceOnFailure>
422+
<printStdoutOnError>true</printStdoutOnError>
423+
<printStdoutOnFailure>true</printStdoutOnFailure>
424+
<printStderrOnError>true</printStderrOnError>
425+
<printStderrOnFailure>true</printStderrOnFailure>
426+
</statelessTestsetInfoReporter>
427+
<includes>
428+
<include>**/*Test.*</include>
429+
</includes>
400430
<excludes>
401431
<!-- temporarily exclude failing tests so that CI works; fix asap and reenable -->
402432
<exclude>**/AMQ4092Test.java</exclude>
@@ -422,14 +452,45 @@
422452
<exclude>**/StartAndConcurrentStopBrokerTest.java</exclude>
423453
<exclude>**/BlobTransferPolicyUriTest.java</exclude>
424454
</excludes>
425-
<systemPropertyVariables>
426-
<java.net.preferIPv4Stack>true</java.net.preferIPv4Stack>
427-
<org.apache.activemq.default.directory.prefix>target/</org.apache.activemq.default.directory.prefix>
428-
<org.apache.activemq.AutoFailTestSupport.disableSystemExit>true</org.apache.activemq.AutoFailTestSupport.disableSystemExit>
429-
<org.apache.activemq.broker.jmx.createConnector>false</org.apache.activemq.broker.jmx.createConnector>
430-
</systemPropertyVariables>
431455
</configuration>
456+
<executions>
457+
<execution>
458+
<id>parallel</id>
459+
<phase>test</phase>
460+
<goals>
461+
<goal>test</goal>
462+
</goals>
463+
<configuration>
464+
<!-- drop the default excludedGroups -->
465+
<excludedGroups combine.self="override"/>
466+
<groups>org.apache.activemq.test.annotations.ParallelTest</groups>
467+
<forkCount>2C</forkCount>
468+
<reuseForks>false</reuseForks>
469+
<forkedProcessTimeoutInSeconds>600</forkedProcessTimeoutInSeconds>
470+
<failIfNoTests>false</failIfNoTests>
471+
<systemPropertyVariables>
472+
<org.apache.activemq.default.directory.prefix>${project.build.directory}/parallel-tests-${surefire.forkNumber}/</org.apache.activemq.default.directory.prefix>
473+
<!-- when running tests in parallel in the CI (quite slow) we need to bump the wireformat negotiation timeout (5s by default) -->
474+
<org.apache.activemq.transport.wireFormatNegotiationTimeout>30000</org.apache.activemq.transport.wireFormatNegotiationTimeout>
475+
</systemPropertyVariables>
476+
<excludes combine.children="append"/>
477+
</configuration>
478+
</execution>
479+
</executions>
480+
<dependencies>
481+
<dependency>
482+
<groupId>org.apache.maven.surefire</groupId>
483+
<artifactId>surefire-junit47</artifactId>
484+
<version>${surefire.version}</version>
485+
</dependency>
486+
<dependency>
487+
<groupId>me.fabriciorby</groupId>
488+
<artifactId>maven-surefire-junit5-tree-reporter</artifactId>
489+
<version>1.5.1</version>
490+
</dependency>
491+
</dependencies>
432492
</plugin>
493+
433494
<plugin>
434495
<groupId>org.apache.maven.plugins</groupId>
435496
<artifactId>maven-clean-plugin</artifactId>

activemq-unit-tests/src/test/java/org/apache/activemq/ActiveMQMessageAuditTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,15 @@
3030
import org.apache.activemq.util.IdGenerator;
3131
import org.slf4j.Logger;
3232
import org.slf4j.LoggerFactory;
33+
import org.apache.activemq.test.annotations.ParallelTest;
34+
import org.junit.experimental.categories.Category;
3335

3436
/**
3537
* ActiveMQMessageAuditTest
3638
*
3739
*
3840
*/
41+
@Category(ParallelTest.class)
3942
public class ActiveMQMessageAuditTest extends TestCase {
4043

4144
static final Logger LOG = LoggerFactory.getLogger(ActiveMQMessageAuditTest.class);

activemq-unit-tests/src/test/java/org/apache/activemq/ActiveMQXAConnectionTxInterruptTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,10 @@
5050

5151

5252
import static org.junit.Assert.*;
53+
import org.apache.activemq.test.annotations.ParallelTest;
54+
import org.junit.experimental.categories.Category;
5355

56+
@Category(ParallelTest.class)
5457
public class ActiveMQXAConnectionTxInterruptTest {
5558
private static final Logger LOG = LoggerFactory.getLogger(ActiveMQXAConnectionTxInterruptTest.class);
5659
long txGenerator = System.currentTimeMillis();

activemq-unit-tests/src/test/java/org/apache/activemq/ActiveMQXASslConnectionFactoryTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@
1616
*/
1717
package org.apache.activemq;
1818

19+
import org.apache.activemq.test.annotations.ParallelTest;
20+
import org.junit.experimental.categories.Category;
21+
22+
@Category(ParallelTest.class)
1923
public class ActiveMQXASslConnectionFactoryTest extends ActiveMQSslConnectionFactoryTest {
2024

2125
@Override

activemq-unit-tests/src/test/java/org/apache/activemq/ActiveMQXASslConnectionFactoryVmTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,13 @@
1717
package org.apache.activemq;
1818

1919
import java.net.URI;
20+
import org.apache.activemq.test.annotations.ParallelTest;
21+
import org.junit.experimental.categories.Category;
2022

2123
/**
2224
* Test the against the VM transport
2325
*/
26+
@Category(ParallelTest.class)
2427
public class ActiveMQXASslConnectionFactoryVmTest extends ActiveMQXAConnectionFactoryTest {
2528

2629
@Override

activemq-unit-tests/src/test/java/org/apache/activemq/BrokerDurableRejectedTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,10 @@
2424
import org.apache.activemq.broker.BrokerRegistry;
2525
import org.apache.activemq.transport.stomp.Stomp;
2626
import org.apache.activemq.transport.stomp.StompConnection;
27+
import org.apache.activemq.test.annotations.ParallelTest;
28+
import org.junit.experimental.categories.Category;
2729

30+
@Category(ParallelTest.class)
2831
public class BrokerDurableRejectedTest extends TestSupport {
2932

3033
protected Connection connection;

activemq-unit-tests/src/test/java/org/apache/activemq/ClientTestSupport.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,10 @@
4242
import org.apache.activemq.command.RemoveInfo;
4343
import org.apache.activemq.command.SessionInfo;
4444
import org.apache.activemq.transport.TransportFactory;
45+
import org.apache.activemq.test.annotations.ParallelTest;
46+
import org.junit.experimental.categories.Category;
4547

48+
@Category(ParallelTest.class)
4649
public class ClientTestSupport extends TestCase {
4750

4851
protected BrokerService broker;

activemq-unit-tests/src/test/java/org/apache/activemq/ConnectionCleanupTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,13 @@
2020
import jakarta.jms.Session;
2121

2222
import junit.framework.TestCase;
23+
import org.apache.activemq.test.annotations.ParallelTest;
24+
import org.junit.experimental.categories.Category;
2325

2426
/**
2527
*
2628
*/
29+
@Category(ParallelTest.class)
2730
public class ConnectionCleanupTest extends TestCase {
2831

2932
private ActiveMQConnection connection;

activemq-unit-tests/src/test/java/org/apache/activemq/ConnectionCloseMultipleTimesConcurrentTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,13 @@
2424
import jakarta.jms.Session;
2525

2626
import junit.framework.TestCase;
27+
import org.apache.activemq.test.annotations.ParallelTest;
28+
import org.junit.experimental.categories.Category;
2729

2830
/**
2931
*
3032
*/
33+
@Category(ParallelTest.class)
3134
public class ConnectionCloseMultipleTimesConcurrentTest extends TestCase {
3235

3336
private ActiveMQConnection connection;

activemq-unit-tests/src/test/java/org/apache/activemq/ConnectionCloseMultipleTimesTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,13 @@
2020
import jakarta.jms.Session;
2121

2222
import junit.framework.TestCase;
23+
import org.apache.activemq.test.annotations.ParallelTest;
24+
import org.junit.experimental.categories.Category;
2325

2426
/**
2527
*
2628
*/
29+
@Category(ParallelTest.class)
2730
public class ConnectionCloseMultipleTimesTest extends TestCase {
2831

2932
private ActiveMQConnection connection;

0 commit comments

Comments
 (0)