From a89fc76187373e085c82d3dda9d68cd05545d08c Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Mon, 27 Apr 2020 10:48:18 +0200 Subject: [PATCH] Disable JUnit 4.8 test grouping --- 0001-Port-to-TestNG-6.11.patch | 10 +- 0002-Port-to-current-maven-shared-utils.patch | 8 +- 0003-Disable-JUnit-4.8-test-grouping.patch | 118 ++++++++++++++++++ maven-surefire.spec | 7 ++ 4 files changed, 134 insertions(+), 9 deletions(-) create mode 100644 0003-Disable-JUnit-4.8-test-grouping.patch diff --git a/0001-Port-to-TestNG-6.11.patch b/0001-Port-to-TestNG-6.11.patch index 0281bd5..ad3562c 100644 --- a/0001-Port-to-TestNG-6.11.patch +++ b/0001-Port-to-TestNG-6.11.patch @@ -1,7 +1,7 @@ -From 69c97f47a7bbec601b407cd2cd81aee64507e562 Mon Sep 17 00:00:00 2001 +From 14196b58bc1d96d76636914b575dc22b7cc94b1a Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Mon, 10 Jul 2017 10:37:50 +0200 -Subject: [PATCH 1/2] Port to TestNG 6.11 +Subject: [PATCH 1/3] Port to TestNG 6.11 --- surefire-providers/surefire-testng/pom.xml | 3 +-- @@ -9,7 +9,7 @@ Subject: [PATCH 1/2] Port to TestNG 6.11 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/surefire-providers/surefire-testng/pom.xml b/surefire-providers/surefire-testng/pom.xml -index 49e75b6e..a9db4a8d 100644 +index 49e75b6ea..a9db4a8d9 100644 --- a/surefire-providers/surefire-testng/pom.xml +++ b/surefire-providers/surefire-testng/pom.xml @@ -51,8 +51,7 @@ @@ -23,7 +23,7 @@ index 49e75b6e..a9db4a8d 100644 diff --git a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/conf/AbstractDirectConfigurator.java b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/conf/AbstractDirectConfigurator.java -index e9667316..7021ef56 100644 +index e9667316b..7021ef561 100644 --- a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/conf/AbstractDirectConfigurator.java +++ b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/conf/AbstractDirectConfigurator.java @@ -63,7 +63,7 @@ public void configure( TestNG testng, Map options ) @@ -36,5 +36,5 @@ index e9667316..7021ef56 100644 @Override -- -2.20.1 +2.25.2 diff --git a/0002-Port-to-current-maven-shared-utils.patch b/0002-Port-to-current-maven-shared-utils.patch index 8c69771..5dcf46c 100644 --- a/0002-Port-to-current-maven-shared-utils.patch +++ b/0002-Port-to-current-maven-shared-utils.patch @@ -1,14 +1,14 @@ -From a96b8f5dd6d7fc51d9056c93bd08635e06957ea5 Mon Sep 17 00:00:00 2001 +From 6a94c7674f844218752827f2b62de629691fcf39 Mon Sep 17 00:00:00 2001 From: Michael Simacek Date: Fri, 16 Mar 2018 13:45:01 +0100 -Subject: [PATCH 2/2] Port to current maven-shared-utils +Subject: [PATCH 2/3] Port to current maven-shared-utils --- .../plugin/surefire/report/StatelessXmlReporter.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java -index b89c4e9b..8cf0b60c 100644 +index b89c4e9b0..8cf0b60c3 100644 --- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java +++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java @@ -326,7 +326,7 @@ private static File getReportFile( ReportEntry report, File reportsDirectory, St @@ -66,5 +66,5 @@ index b89c4e9b..8cf0b60c 100644 xmlWriter.startElement( "properties" ); for ( final Entry entry : systemProperties.entrySet() ) -- -2.20.1 +2.25.2 diff --git a/0003-Disable-JUnit-4.8-test-grouping.patch b/0003-Disable-JUnit-4.8-test-grouping.patch new file mode 100644 index 0000000..ef03f05 --- /dev/null +++ b/0003-Disable-JUnit-4.8-test-grouping.patch @@ -0,0 +1,118 @@ +From 21890515f3eeba73065b79b6a65678ec1e2a821d Mon Sep 17 00:00:00 2001 +From: Mikolaj Izdebski +Date: Mon, 27 Apr 2020 10:45:30 +0200 +Subject: [PATCH 3/3] Disable JUnit 4.8 test grouping + +--- + .../surefire/junitcore/JUnitCoreProvider.java | 25 +++-------------- + .../maven/surefire/testng/TestNGExecutor.java | 27 ------------------- + 2 files changed, 3 insertions(+), 49 deletions(-) + +diff --git a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java +index 7c74e8b86..c86bb276c 100644 +--- a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java ++++ b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java +@@ -25,7 +25,6 @@ + import org.apache.maven.surefire.common.junit4.JUnit4RunListener; + import org.apache.maven.surefire.common.junit4.JUnitTestFailureListener; + import org.apache.maven.surefire.common.junit4.Notifier; +-import org.apache.maven.surefire.common.junit48.FilterFactory; + import org.apache.maven.surefire.common.junit48.JUnit48Reflector; + import org.apache.maven.surefire.common.junit48.JUnit48TestChecker; + import org.apache.maven.surefire.providerapi.AbstractProvider; +@@ -47,6 +46,7 @@ + import java.util.concurrent.ConcurrentHashMap; + + import static org.apache.maven.surefire.booter.CommandReader.getReader; ++import static org.apache.maven.surefire.common.junit4.JUnit4ProviderUtil.createMatchAnyDescriptionFilter; + import static org.apache.maven.surefire.common.junit4.JUnit4ProviderUtil.generateFailingTestDescriptions; + import static org.apache.maven.surefire.common.junit4.JUnit4RunListenerFactory.createCustomListeners; + import static org.apache.maven.surefire.common.junit4.Notifier.pureNotifier; +@@ -126,7 +126,7 @@ public RunResult invoke( Object forkTestSet ) + new Notifier( createRunListener( reporterFactory, consoleStream ), getSkipAfterFailureCount() ); + // startCapture() called in createRunListener() in prior to setTestsToRun() + +- Filter filter = jUnit48Reflector.isJUnit48Available() ? createJUnit48Filter() : null; ++ Filter filter = null; + + if ( testsToRun == null ) + { +@@ -168,8 +168,7 @@ public RunResult invoke( Object forkTestSet ) + { + Set failures = generateFailingTestDescriptions( testFailureListener.getAllFailures() ); + testFailureListener.reset(); +- FilterFactory filterFactory = new FilterFactory( testClassLoader ); +- Filter failureDescriptionFilter = filterFactory.createMatchAnyDescriptionFilter( failures ); ++ Filter failureDescriptionFilter = createMatchAnyDescriptionFilter( failures ); + rerunCore.execute( testsToRun, failureDescriptionFilter ); + } + } +@@ -270,24 +269,6 @@ private boolean isParallelTypes() + return jUnitCoreParameters.isParallelClasses() || jUnitCoreParameters.isParallelSuites(); + } + +- private Filter createJUnit48Filter() +- { +- final FilterFactory factory = new FilterFactory( testClassLoader ); +- Map props = providerParameters.getProviderProperties(); +- Filter groupFilter = factory.canCreateGroupFilter( props ) ? factory.createGroupFilter( props ) : null; +- TestListResolver methodFilter = optionallyWildcardFilter( testResolver ); +- boolean onlyGroups = methodFilter.isEmpty() || methodFilter.isWildcard(); +- if ( onlyGroups ) +- { +- return groupFilter; +- } +- else +- { +- Filter jUnitMethodFilter = factory.createMethodFilter( methodFilter ); +- return groupFilter == null ? jUnitMethodFilter : factory.and( groupFilter, jUnitMethodFilter ); +- } +- } +- + private TestsToRun scanClassPath() + { + TestsToRun scanned = scanResult.applyFilter( scannerFilter, testClassLoader ); +diff --git a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGExecutor.java b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGExecutor.java +index 6bc30a300..05c55f55a 100644 +--- a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGExecutor.java ++++ b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGExecutor.java +@@ -237,36 +237,9 @@ private static XmlMethodSelector createMethodNameFilteringSelector( TestListReso + private static XmlMethodSelector createGroupMatchingSelector( Map options ) + throws TestSetFailedException + { +- final String groups = options.get( ProviderParameterNames.TESTNG_GROUPS_PROP ); +- final String excludedGroups = options.get( ProviderParameterNames.TESTNG_EXCLUDEDGROUPS_PROP ); +- +- if ( groups == null && excludedGroups == null ) + { + return null; + } +- +- // the class is available in the testClassPath +- final String clazzName = "org.apache.maven.surefire.testng.utils.GroupMatcherMethodSelector"; +- try +- { +- Class clazz = Class.forName( clazzName ); +- +- // HORRIBLE hack, but TNG doesn't allow us to setup a method selector instance directly. +- Method method = clazz.getMethod( "setGroups", String.class, String.class ); +- method.invoke( null, groups, excludedGroups ); +- } +- catch ( Exception e ) +- { +- throw new TestSetFailedException( e.getMessage(), e ); +- } +- +- XmlMethodSelector xms = new XmlMethodSelector(); +- +- xms.setName( clazzName ); +- // looks to need a high value +- xms.setPriority( 9999 ); +- +- return xms; + } + + static void run( List suiteFiles, String testSourceDirectory, +-- +2.25.2 + diff --git a/maven-surefire.spec b/maven-surefire.spec index 1b28d04..e5accc5 100644 --- a/maven-surefire.spec +++ b/maven-surefire.spec @@ -14,6 +14,7 @@ Source2: http://junit.sourceforge.net/cpl-v10.html Patch1: 0001-Port-to-TestNG-6.11.patch Patch2: 0002-Port-to-current-maven-shared-utils.patch +Patch3: 0003-Disable-JUnit-4.8-test-grouping.patch BuildRequires: maven-local BuildRequires: mvn(com.google.code.findbugs:jsr305) @@ -106,6 +107,7 @@ cp -p %{SOURCE2} . %patch1 -p1 %patch2 -p1 +%patch3 -p1 # Disable strict doclint sed -i /-Xdoclint:all/d pom.xml @@ -113,7 +115,12 @@ sed -i /-Xdoclint:all/d pom.xml %pom_disable_module maven-surefire-report-plugin %pom_disable_module surefire-report-parser %pom_disable_module surefire-shadefire + %pom_disable_module surefire-grouper +%pom_remove_dep :surefire-grouper surefire-providers/common-junit48 +%pom_remove_dep :surefire-grouper surefire-providers/surefire-testng-utils +rm surefire-providers/common-junit48/src/main/java/org/apache/maven/surefire/common/junit48/{FilterFactory,GroupMatcherCategoryFilter}.java +rm surefire-providers/surefire-testng-utils/src/main/java/org/apache/maven/surefire/testng/utils/GroupMatcherMethodSelector.java %pom_remove_dep -r org.apache.maven.surefire:surefire-shadefire