This is an automated email from the ASF dual-hosted git repository.
olamy pushed a commit to branch surefire-3.5.x
in repository https://gitbox.apache.org/repos/asf/maven-surefire.git
The following commit(s) were added to refs/heads/surefire-3.5.x by this push:
new 0d5df8a3b 3.5.x/bug/cherry pick embedded mode its (#3328)
0d5df8a3b is described below
commit 0d5df8a3b4606622a67922405488d4b182409893
Author: Olivier Lamy <[email protected]>
AuthorDate: Fri Mar 20 06:59:41 2026 +1000
3.5.x/bug/cherry pick embedded mode its (#3328)
* Execute ITs in embedded mode by default (#3323)
* Execute ITs in embedded mode by default
* More memory for ITs
* more forkJvm
Signed-off-by: Olivier Lamy <[email protected]>
---------
Signed-off-by: Olivier Lamy <[email protected]>
Co-authored-by: Slawomir Jaranowski <[email protected]>
---
surefire-its/pom.xml | 2 +-
.../maven/surefire/its/AbstractFailFastIT.java | 2 +-
.../its/AbstractTestMultipleMethodPatterns.java | 2 ++
.../maven/surefire/its/CheckTestNgReportTestIT.java | 1 +
.../org/apache/maven/surefire/its/ForkCountIT.java | 9 +++++----
.../maven/surefire/its/JUnit48TestCategoriesIT.java | 8 ++++----
.../apache/maven/surefire/its/JUnit4IgnoreIT.java | 1 +
.../surefire/its/TestMultipleMethodPatternsIT.java | 2 +-
.../maven/surefire/its/fixture/MavenLauncher.java | 11 ++++++++++-
.../its/jiras/Surefire1053SystemPropertiesIT.java | 3 ++-
.../its/jiras/Surefire1211JUnitTestNgIT.java | 6 +++++-
...Surefire1534ReuseForksFalseWithJavaModuleIT.java | 4 +++-
.../its/jiras/Surefire809GroupExpressionsIT.java | 21 ++++++++++++++-------
.../Surefire855AllowFailsafeUseArtifactFileIT.java | 1 +
.../its/jiras/Surefire995CategoryInheritanceIT.java | 4 ++++
15 files changed, 55 insertions(+), 22 deletions(-)
diff --git a/surefire-its/pom.xml b/surefire-its/pom.xml
index e759b36c0..fb4fba90c 100644
--- a/surefire-its/pom.xml
+++ b/surefire-its/pom.xml
@@ -216,7 +216,7 @@
<forkCount>${its.forkCount}</forkCount>
<threadCount>${its.threadCount}</threadCount>
<perCoreThreadCount>false</perCoreThreadCount>
- <argLine>-server -Xmx64m -XX:+UseG1GC -XX:+TieredCompilation
-XX:TieredStopAtLevel=1 -Djava.awt.headless=true
-Djdk.net.URLClassPath.disableClassPathURLCheck=true</argLine>
+ <argLine>-Xmx512m -XX:+UseG1GC -Djava.awt.headless=true
-Djdk.net.URLClassPath.disableClassPathURLCheck=true</argLine>
<!-- Pass current surefire version to the main suite so that it
-->
<!-- can forward to all integration test projects. SUREFIRE-513
-->
<systemPropertyVariables>
diff --git
a/surefire-its/src/test/java/org/apache/maven/surefire/its/AbstractFailFastIT.java
b/surefire-its/src/test/java/org/apache/maven/surefire/its/AbstractFailFastIT.java
index 935240954..309653956 100644
---
a/surefire-its/src/test/java/org/apache/maven/surefire/its/AbstractFailFastIT.java
+++
b/surefire-its/src/test/java/org/apache/maven/surefire/its/AbstractFailFastIT.java
@@ -95,7 +95,7 @@ private OutputValidator prepare(String description, String
profile, Map<String,
if (failures != 0 || errors != 0) {
launcher.withFailure();
}
-
+ launcher.setForkJvm(true);
return launcher.sysProp(properties).executeTest();
}
diff --git
a/surefire-its/src/test/java/org/apache/maven/surefire/its/AbstractTestMultipleMethodPatterns.java
b/surefire-its/src/test/java/org/apache/maven/surefire/its/AbstractTestMultipleMethodPatterns.java
index 28b88414b..823658d0e 100644
---
a/surefire-its/src/test/java/org/apache/maven/surefire/its/AbstractTestMultipleMethodPatterns.java
+++
b/surefire-its/src/test/java/org/apache/maven/surefire/its/AbstractTestMultipleMethodPatterns.java
@@ -64,6 +64,7 @@ protected SurefireLauncher prepare(String tests) {
throw new IllegalArgumentException(
"Unsupported configuration " +
getSettings().getConfiguration());
}
+ launcher.setForkJvm();
return launcher;
}
@@ -105,6 +106,7 @@ public void simpleNameTestAsParallel() {
assumeThat(getSettings().getFramework(), anyOf(is(JUNIT47),
is(TestNG)));
prepare("TestTwo")
.parallel("classes")
+ .setForkJvm()
.useUnlimitedThreads()
.executeTest()
.verifyErrorFree(2)
diff --git
a/surefire-its/src/test/java/org/apache/maven/surefire/its/CheckTestNgReportTestIT.java
b/surefire-its/src/test/java/org/apache/maven/surefire/its/CheckTestNgReportTestIT.java
index 3b364e306..2710f8dab 100644
---
a/surefire-its/src/test/java/org/apache/maven/surefire/its/CheckTestNgReportTestIT.java
+++
b/surefire-its/src/test/java/org/apache/maven/surefire/its/CheckTestNgReportTestIT.java
@@ -55,6 +55,7 @@ public void shouldNotBeVerbose() throws Exception {
@Test
public void shouldBeVerbose() throws Exception {
unpack("/testng-simple")
+ .setForkJvm()
.sysProp("testNgVersion", "5.10")
.sysProp("testNgClassifier", "jdk15")
.sysProp("surefire.testng.verbose", "10")
diff --git
a/surefire-its/src/test/java/org/apache/maven/surefire/its/ForkCountIT.java
b/surefire-its/src/test/java/org/apache/maven/surefire/its/ForkCountIT.java
index 5bd6e287b..6856a4071 100644
--- a/surefire-its/src/test/java/org/apache/maven/surefire/its/ForkCountIT.java
+++ b/surefire-its/src/test/java/org/apache/maven/surefire/its/ForkCountIT.java
@@ -49,7 +49,7 @@ public static void installDumpPidPlugin() {
@Test
public void testForkNever() {
- String[] pids = doTest(unpack(getProject()).forkNever());
+ String[] pids = doTest(unpack(getProject()).setForkJvm().forkNever());
assertSamePids(pids);
assertEndWith(pids, "_1_1", 3);
assertEquals("my pid is equal to pid 1 of the test", getMainPID(),
pids[0]);
@@ -69,6 +69,7 @@ public void testForkOncePerThreadSingleThread() {
public void testForkOncePerThreadTwoThreads() {
int threadCount = 2;
String[] pids = doTest(unpack(getProject())
+ .setForkJvm()
.forkPerThread(threadCount)
.threadCount(threadCount)
.addGoal("-DsleepLength=7200"));
@@ -102,8 +103,8 @@ public void testForkCountTwoNoReuse() {
@Test
public void testForkCountTwoReuse() {
- String[] pids =
-
doTest(unpack(getProject()).forkCount(2).reuseForks(true).addGoal("-DsleepLength=7200"));
+ String[] pids = doTest(
+
unpack(getProject()).setForkJvm().forkCount(2).reuseForks(true).addGoal("-DsleepLength=7200"));
assertDifferentPids(pids, 2);
assertNotEquals("pid 1 is not the same as the main process' pid",
pids[0], getMainPID());
}
@@ -126,7 +127,7 @@ private void assertDifferentPids(String[] pids, int
numOfDifferentPids) {
@Test
public void testForkOnce() {
- String[] pids = doTest(unpack(getProject()).forkOnce());
+ String[] pids = doTest(unpack(getProject()).setForkJvm().forkOnce());
assertSamePids(pids);
assertNotEquals("pid 1 is not the same as the main process' pid",
pids[0], getMainPID());
}
diff --git
a/surefire-its/src/test/java/org/apache/maven/surefire/its/JUnit48TestCategoriesIT.java
b/surefire-its/src/test/java/org/apache/maven/surefire/its/JUnit48TestCategoriesIT.java
index eb7b55c48..4b634c7ff 100644
---
a/surefire-its/src/test/java/org/apache/maven/surefire/its/JUnit48TestCategoriesIT.java
+++
b/surefire-its/src/test/java/org/apache/maven/surefire/its/JUnit48TestCategoriesIT.java
@@ -41,22 +41,22 @@ public void testCategoriesABForkAlways() {
@Test
public void testCategoriesACFullyQualifiedClassName() {
- runACFullyQualifiedClassName(unpacked());
+ runACFullyQualifiedClassName(unpacked().setForkJvm());
}
@Test
public void testCategoriesACFullyQualifiedClassNameForkAlways() {
- runACFullyQualifiedClassName(unpacked().forkAlways());
+ runACFullyQualifiedClassName(unpacked().setForkJvm().forkAlways());
}
@Test
public void testCategoriesACClassNameSuffix() {
- runACClassNameSuffix(unpacked());
+ runACClassNameSuffix(unpacked().setForkJvm());
}
@Test
public void testCategoriesACClassNameSuffixForkAlways() {
- runACClassNameSuffix(unpacked().forkAlways());
+ runACClassNameSuffix(unpacked().setForkJvm().forkAlways());
}
@Test
diff --git
a/surefire-its/src/test/java/org/apache/maven/surefire/its/JUnit4IgnoreIT.java
b/surefire-its/src/test/java/org/apache/maven/surefire/its/JUnit4IgnoreIT.java
index a880f64a6..076ffe846 100644
---
a/surefire-its/src/test/java/org/apache/maven/surefire/its/JUnit4IgnoreIT.java
+++
b/surefire-its/src/test/java/org/apache/maven/surefire/its/JUnit4IgnoreIT.java
@@ -37,6 +37,7 @@ public void testJunit4Ignore() {
@Test
public void testJunit47ParallelIgnore() {
unpack().setJUnitVersion("4.8.1")
+ .setForkJvm()
.parallelClasses()
.executeTest()
.verifyErrorFreeLog()
diff --git
a/surefire-its/src/test/java/org/apache/maven/surefire/its/TestMultipleMethodPatternsIT.java
b/surefire-its/src/test/java/org/apache/maven/surefire/its/TestMultipleMethodPatternsIT.java
index 8dd0eb0e8..54e141b8e 100644
---
a/surefire-its/src/test/java/org/apache/maven/surefire/its/TestMultipleMethodPatternsIT.java
+++
b/surefire-its/src/test/java/org/apache/maven/surefire/its/TestMultipleMethodPatternsIT.java
@@ -56,6 +56,6 @@ protected Settings getSettings() {
@Override
protected SurefireLauncher unpack() {
- return unpack("junit48-multiple-method-patterns", "_" +
settings.path());
+ return unpack("junit48-multiple-method-patterns", "_" +
settings.path()).setForkJvm();
}
}
diff --git
a/surefire-its/src/test/java/org/apache/maven/surefire/its/fixture/MavenLauncher.java
b/surefire-its/src/test/java/org/apache/maven/surefire/its/fixture/MavenLauncher.java
index 441d44969..6ccf74d22 100755
---
a/surefire-its/src/test/java/org/apache/maven/surefire/its/fixture/MavenLauncher.java
+++
b/surefire-its/src/test/java/org/apache/maven/surefire/its/fixture/MavenLauncher.java
@@ -69,11 +69,15 @@ public final class MavenLauncher {
private boolean expectFailure;
+ private boolean forkJvm;
+
MavenLauncher(Class<?> testClass, String resourceName, String suffix,
String[] cli) {
this.testCaseBeingRun = testClass;
this.resourceName = resourceName;
this.suffix = suffix != null ? suffix : "";
this.cli = cli == null ? null : cli.clone();
+ // by default use embedded mode
+ this.forkJvm = false;
resetGoals();
resetCliOptions();
}
@@ -264,6 +268,11 @@ public OutputValidator executeCurrentGoals() {
getVerifier().addCliArguments(goals.toArray(new String[] {}));
getVerifier().setSystemProperties(props);
getVerifier().setEnvironmentVariables(envVars);
+ if (envVars.isEmpty()) {
+ getVerifier().setForkJvm(forkJvm);
+ } else {
+ getVerifier().setForkJvm(true);
+ }
getVerifier().execute();
return getValidator();
} catch (VerificationException e) {
@@ -318,7 +327,7 @@ public OutputValidator getValidator() {
}
public void setForkJvm(boolean forkJvm) {
- getVerifier().setForkJvm(forkJvm);
+ this.forkJvm = forkJvm;
}
public String getLocalRepository() {
diff --git
a/surefire-its/src/test/java/org/apache/maven/surefire/its/jiras/Surefire1053SystemPropertiesIT.java
b/surefire-its/src/test/java/org/apache/maven/surefire/its/jiras/Surefire1053SystemPropertiesIT.java
index a8eda80e3..1dc0f86b5 100644
---
a/surefire-its/src/test/java/org/apache/maven/surefire/its/jiras/Surefire1053SystemPropertiesIT.java
+++
b/surefire-its/src/test/java/org/apache/maven/surefire/its/jiras/Surefire1053SystemPropertiesIT.java
@@ -33,7 +33,8 @@
public class Surefire1053SystemPropertiesIT extends
SurefireJUnit4IntegrationTestCase {
@Test
public void checkWarningsFileEncoding() {
- unpack().sysProp("file.encoding", "ISO-8859-1")
+ unpack().setForkJvm()
+ .sysProp("file.encoding", "ISO-8859-1")
.executeTest()
.verifyErrorFree(1)
.verifyTextInLog("file.encoding cannot be set as system
property, use <argLine>-D"
diff --git
a/surefire-its/src/test/java/org/apache/maven/surefire/its/jiras/Surefire1211JUnitTestNgIT.java
b/surefire-its/src/test/java/org/apache/maven/surefire/its/jiras/Surefire1211JUnitTestNgIT.java
index dcca78173..667d994f7 100644
---
a/surefire-its/src/test/java/org/apache/maven/surefire/its/jiras/Surefire1211JUnitTestNgIT.java
+++
b/surefire-its/src/test/java/org/apache/maven/surefire/its/jiras/Surefire1211JUnitTestNgIT.java
@@ -36,7 +36,11 @@ public void withJUnit() {
@Test
public void withoutJUnit() {
- unpack().threadCount(1).sysProp("junit",
"false").executeTest().verifyErrorFree(1);
+ unpack().setForkJvm()
+ .threadCount(1)
+ .sysProp("junit", "false")
+ .executeTest()
+ .verifyErrorFree(1);
}
private SurefireLauncher unpack() {
diff --git
a/surefire-its/src/test/java/org/apache/maven/surefire/its/jiras/Surefire1534ReuseForksFalseWithJavaModuleIT.java
b/surefire-its/src/test/java/org/apache/maven/surefire/its/jiras/Surefire1534ReuseForksFalseWithJavaModuleIT.java
index 56cfb2d1e..a041c0f55 100644
---
a/surefire-its/src/test/java/org/apache/maven/surefire/its/jiras/Surefire1534ReuseForksFalseWithJavaModuleIT.java
+++
b/surefire-its/src/test/java/org/apache/maven/surefire/its/jiras/Surefire1534ReuseForksFalseWithJavaModuleIT.java
@@ -33,7 +33,8 @@ public class Surefire1534ReuseForksFalseWithJavaModuleIT
extends AbstractJava9Pl
@Test
public void testExecuteWithReuseForksFalseWithJavaModule() {
- OutputValidator validator =
assumeJava9().reuseForks(false).forkCount(1).executeTest();
+ OutputValidator validator =
+
assumeJava9().setForkJvm().reuseForks(false).forkCount(1).executeTest();
validator.assertTestSuiteResults(2, 0, 0, 0);
validator.verifyErrorFreeLog();
@@ -49,6 +50,7 @@ public void testExecuteWithReuseForksFalseWithJavaModule() {
@Test
public void testExecuteWithReuseForksFalseWithJavaModuleWithFilter() {
OutputValidator validator = assumeJava9()
+ .setForkJvm()
.reuseForks(false)
.forkCount(1)
.setTestToRun("MainTest")
diff --git
a/surefire-its/src/test/java/org/apache/maven/surefire/its/jiras/Surefire809GroupExpressionsIT.java
b/surefire-its/src/test/java/org/apache/maven/surefire/its/jiras/Surefire809GroupExpressionsIT.java
index 1e618541d..76042a7ff 100755
---
a/surefire-its/src/test/java/org/apache/maven/surefire/its/jiras/Surefire809GroupExpressionsIT.java
+++
b/surefire-its/src/test/java/org/apache/maven/surefire/its/jiras/Surefire809GroupExpressionsIT.java
@@ -29,8 +29,10 @@
public class Surefire809GroupExpressionsIT extends
SurefireJUnit4IntegrationTestCase {
@Test
public void categoryAB() {
- OutputValidator validator =
- unpackJUnit().groups("junit4.CategoryA AND
junit4.CategoryB").executeTest();
+ OutputValidator validator = unpackJUnit()
+ .setForkJvm()
+ .groups("junit4.CategoryA AND junit4.CategoryB")
+ .executeTest();
validator.verifyErrorFreeLog();
validator.assertTestSuiteResults(2, 0, 0, 0);
validator.verifyTextInLog("catA: 1");
@@ -45,6 +47,7 @@ public void categoryAB() {
@Test
public void incorrectJUnitVersions() {
unpackJUnit()
+ .setForkJvm()
.setJUnitVersion("4.5")
.groups("junit4.CategoryA AND junit4.CategoryB")
.maven()
@@ -54,7 +57,8 @@ public void incorrectJUnitVersions() {
@Test
public void testJUnitRunCategoryNotC() {
- OutputValidator validator =
unpackJUnit().groups("!junit4.CategoryC").executeTest();
+ OutputValidator validator =
+
unpackJUnit().setForkJvm().groups("!junit4.CategoryC").executeTest();
validator.verifyErrorFreeLog();
validator.assertTestSuiteResults(5, 0, 0, 0);
validator.verifyTextInLog("catA: 2");
@@ -67,7 +71,7 @@ public void testJUnitRunCategoryNotC() {
@Test
public void testExcludedGroups() {
OutputValidator validator =
-
unpackJUnit().setExcludedGroups("junit4.CategoryC").executeTest();
+
unpackJUnit().setForkJvm().setExcludedGroups("junit4.CategoryC").executeTest();
validator.verifyErrorFreeLog();
validator.assertTestSuiteResults(5, 0, 0, 0);
validator.verifyTextInLog("catA: 2");
@@ -79,8 +83,11 @@ public void testExcludedGroups() {
@Test
public void testNGRunCategoryAB() {
- OutputValidator validator =
- unpackTestNG().groups("CategoryA AND
CategoryB").debugLogging().executeTest();
+ OutputValidator validator = unpackTestNG()
+ .setForkJvm()
+ .groups("CategoryA AND CategoryB")
+ .debugLogging()
+ .executeTest();
validator.verifyErrorFreeLog();
validator.assertTestSuiteResults(2, 0, 0, 0);
validator.verifyTextInLog("BasicTest.testInCategoriesAB()");
@@ -90,7 +97,7 @@ public void testNGRunCategoryAB() {
@Test
public void testNGRunCategoryNotC() {
OutputValidator validator =
-
unpackTestNG().groups("!CategoryC").debugLogging().executeTest();
+
unpackTestNG().setForkJvm().groups("!CategoryC").debugLogging().executeTest();
validator.verifyErrorFreeLog();
validator.assertTestSuiteResults(8, 0, 0, 0);
validator.verifyTextInLog("catA: 2");
diff --git
a/surefire-its/src/test/java/org/apache/maven/surefire/its/jiras/Surefire855AllowFailsafeUseArtifactFileIT.java
b/surefire-its/src/test/java/org/apache/maven/surefire/its/jiras/Surefire855AllowFailsafeUseArtifactFileIT.java
index a87ce3bcd..079520718 100644
---
a/surefire-its/src/test/java/org/apache/maven/surefire/its/jiras/Surefire855AllowFailsafeUseArtifactFileIT.java
+++
b/surefire-its/src/test/java/org/apache/maven/surefire/its/jiras/Surefire855AllowFailsafeUseArtifactFileIT.java
@@ -45,6 +45,7 @@ public void jarShouldUseFile() {
@Test
public void jarNotForkingShouldUseFile() {
unpack("surefire-855-failsafe-use-jar")
+ .setForkJvm()
.maven()
.sysProp("forkCount", 0)
.executeVerify()
diff --git
a/surefire-its/src/test/java/org/apache/maven/surefire/its/jiras/Surefire995CategoryInheritanceIT.java
b/surefire-its/src/test/java/org/apache/maven/surefire/its/jiras/Surefire995CategoryInheritanceIT.java
index a6d5fcd5c..44faaee9c 100644
---
a/surefire-its/src/test/java/org/apache/maven/surefire/its/jiras/Surefire995CategoryInheritanceIT.java
+++
b/surefire-its/src/test/java/org/apache/maven/surefire/its/jiras/Surefire995CategoryInheritanceIT.java
@@ -42,6 +42,7 @@ public void negativeTestShouldRunAllCategories() {
@Test
public void junit411ShouldRunExplicitCategory() {
final OutputValidator outputValidator =
unpack().addGoal("-Ppositive-tests")
+ .setForkJvm()
.sysProp("version.junit", "4.11")
.executeTest();
@@ -52,6 +53,7 @@ public void junit411ShouldRunExplicitCategory() {
public void junit411ShouldExcludeExplicitCategory() {
final OutputValidator outputValidator =
unpack().addGoal("-Ppositive-tests-excluded-categories")
.sysProp("version.junit", "4.11")
+ .setForkJvm()
.executeTest();
// SpecialCategorizedTest inherits the excluded annotation but should
still run as
// until junit 4.11, the Category annotation is not inherited
@@ -82,6 +84,7 @@ public void junit411ShouldIgnoreInheritedCategories() throws
VerificationExcepti
.sysProp("version.junit", "4.11")
// AND the tests marked with CategoryB are marked for execution
.setGroups("jiras.surefire955.group.marker.CategoryB")
+ .setForkJvm()
// WHEN the tests are executed
.executeTest();
@@ -107,6 +110,7 @@ public void junit412ShouldExecuteInheritedCategories() {
.sysProp("version.junit", "4.12")
// AND the tests marked with CategoryB are marked for execution
.setGroups("jiras.surefire955.group.marker.CategoryB")
+ .setForkJvm()
// WHEN the tests are executed
.executeTest();