You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ti...@apache.org on 2020/05/24 21:24:36 UTC

[maven-surefire] branch SUREFIRE-1733 updated: unit tests for all ProviderInfo

This is an automated email from the ASF dual-hosted git repository.

tibordigana pushed a commit to branch SUREFIRE-1733
in repository https://gitbox.apache.org/repos/asf/maven-surefire.git


The following commit(s) were added to refs/heads/SUREFIRE-1733 by this push:
     new 42457e1  unit tests for all ProviderInfo
42457e1 is described below

commit 42457e1bdd57804661f4966f5d449d99f48bed0d
Author: tibordigana <ti...@apache.org>
AuthorDate: Sun May 24 23:12:37 2020 +0200

    unit tests for all ProviderInfo
---
 .../plugin/surefire/AbstractSurefireMojo.java      | 24 ++++---
 .../apache/maven/plugin/surefire/ProviderInfo.java |  2 +-
 ...Requirements.java => ProviderRequirements.java} |  6 +-
 .../AbstractSurefireMojoJava7PlusTest.java         | 83 ++++++++++++++++++++++
 4 files changed, 100 insertions(+), 15 deletions(-)

diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java
index 139d214..1c35540 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java
@@ -1927,7 +1927,7 @@ public abstract class AbstractSurefireMojo
 
         ClasspathConfiguration classpathConfiguration = new ClasspathConfiguration( testClasspath, providerClasspath,
                 inProcClasspath, effectiveIsEnableAssertions(), isChildDelegation() );
-        ProviderForkRequirements forkRequirements = new ProviderForkRequirements( false, false, false );
+        ProviderRequirements forkRequirements = new ProviderRequirements( false, false, false );
         return new StartupConfiguration( providerName, classpathConfiguration, classLoaderConfiguration,
             ProcessCheckerType.toEnum( getEnableProcessChecker() ), providerInfo.getJpmsArguments( forkRequirements ) );
     }
@@ -1999,11 +1999,11 @@ public abstract class AbstractSurefireMojo
             providerClasspath = classpathCache.setCachedClasspath( providerName, providerArtifacts );
         }
 
-        final ProviderForkRequirements forkRequirements;
+        final ProviderRequirements providerRequirements;
         final Classpath testModulepath;
         if ( isMainDescriptor )
         {
-            forkRequirements = new ProviderForkRequirements( true, true, false );
+            providerRequirements = new ProviderRequirements( true, true, false );
             ResolvePathsRequest<String> req = ResolvePathsRequest.ofStrings( testClasspath.getClassPath() )
                     .setJdkHome( javaHome )
                     .setModuleDescriptor( javaModuleDescriptor );
@@ -2026,7 +2026,7 @@ public abstract class AbstractSurefireMojo
         }
         else
         {
-            forkRequirements = new ProviderForkRequirements( true, false, true );
+            providerRequirements = new ProviderRequirements( true, false, true );
             testModulepath = testClasspath;
             testClasspath = emptyClasspath();
         }
@@ -2054,8 +2054,10 @@ public abstract class AbstractSurefireMojo
         getConsoleLogger().debug( inProcClasspath.getLogMessage( "in-process classpath:" ) );
         getConsoleLogger().debug( inProcClasspath.getCompactLogMessage( "in-process(compact) classpath:" ) );
 
+        ProcessCheckerType processCheckerType = ProcessCheckerType.toEnum( getEnableProcessChecker() );
+        List<String[]> jpmsArgs = providerInfo.getJpmsArguments( providerRequirements );
         return new StartupConfiguration( providerName, classpathConfiguration, classLoaderConfiguration,
-            ProcessCheckerType.toEnum( getEnableProcessChecker() ), providerInfo.getJpmsArguments( forkRequirements ) );
+            processCheckerType, jpmsArgs );
     }
 
     private Artifact getCommonArtifact()
@@ -3063,7 +3065,7 @@ public abstract class AbstractSurefireMojo
 
         @Nonnull
         @Override
-        public List<String[]> getJpmsArguments( @Nonnull ProviderForkRequirements forkRequirements )
+        public List<String[]> getJpmsArguments( @Nonnull ProviderRequirements forkRequirements )
         {
             return emptyList();
         }
@@ -3100,7 +3102,7 @@ public abstract class AbstractSurefireMojo
 
         @Nonnull
         @Override
-        public List<String[]> getJpmsArguments( @Nonnull ProviderForkRequirements forkRequirements )
+        public List<String[]> getJpmsArguments( @Nonnull ProviderRequirements forkRequirements )
         {
             return emptyList();
         }
@@ -3148,7 +3150,7 @@ public abstract class AbstractSurefireMojo
 
         @Nonnull
         @Override
-        public List<String[]> getJpmsArguments( @Nonnull ProviderForkRequirements forkRequirements )
+        public List<String[]> getJpmsArguments( @Nonnull ProviderRequirements forkRequirements )
         {
             return emptyList();
         }
@@ -3198,7 +3200,7 @@ public abstract class AbstractSurefireMojo
 
         @Nonnull
         @Override
-        public List<String[]> getJpmsArguments( @Nonnull ProviderForkRequirements forkRequirements )
+        public List<String[]> getJpmsArguments( @Nonnull ProviderRequirements forkRequirements )
         {
             boolean hasTestDescriptor = forkRequirements.isModularPath() && forkRequirements.hasTestModuleDescriptor();
             return hasTestDescriptor ? getJpmsArgs() : Collections.<String[]>emptyList();
@@ -3382,7 +3384,7 @@ public abstract class AbstractSurefireMojo
 
         @Nonnull
         @Override
-        public List<String[]> getJpmsArguments( @Nonnull ProviderForkRequirements forkRequirements )
+        public List<String[]> getJpmsArguments( @Nonnull ProviderRequirements forkRequirements )
         {
             return emptyList();
         }
@@ -3438,7 +3440,7 @@ public abstract class AbstractSurefireMojo
 
         @Nonnull
         @Override
-        public List<String[]> getJpmsArguments( @Nonnull ProviderForkRequirements forkRequirements )
+        public List<String[]> getJpmsArguments( @Nonnull ProviderRequirements forkRequirements )
         {
             return emptyList();
         }
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/ProviderInfo.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/ProviderInfo.java
index e0d1004..66dd493 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/ProviderInfo.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/ProviderInfo.java
@@ -42,5 +42,5 @@ public interface ProviderInfo
     void addProviderProperties() throws MojoExecutionException;
 
     @Nonnull
-    List<String[]> getJpmsArguments( @Nonnull ProviderForkRequirements forkRequirements );
+    List<String[]> getJpmsArguments( @Nonnull ProviderRequirements forkRequirements );
 }
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/ProviderForkRequirements.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/ProviderRequirements.java
similarity index 87%
rename from maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/ProviderForkRequirements.java
rename to maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/ProviderRequirements.java
index 352fe2f..793667a 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/ProviderForkRequirements.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/ProviderRequirements.java
@@ -22,15 +22,15 @@ package org.apache.maven.plugin.surefire;
 /**
  * Used to get additional provider-specific JVM arguments.
  *
- * @see ProviderInfo#getJpmsArguments(ProviderForkRequirements)
+ * @see ProviderInfo#getJpmsArguments(ProviderRequirements)
  */
-final class ProviderForkRequirements
+final class ProviderRequirements
 {
     private final boolean modularPath;
     private final boolean mainModuleDescriptor;
     private final boolean testModuleDescriptor;
 
-    ProviderForkRequirements( boolean modularPath, boolean mainModuleDescriptor, boolean testModuleDescriptor )
+    ProviderRequirements( boolean modularPath, boolean mainModuleDescriptor, boolean testModuleDescriptor )
     {
         this.modularPath = modularPath;
         this.mainModuleDescriptor = mainModuleDescriptor;
diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/AbstractSurefireMojoJava7PlusTest.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/AbstractSurefireMojoJava7PlusTest.java
index d8e1136..4d8f92b 100644
--- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/AbstractSurefireMojoJava7PlusTest.java
+++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/AbstractSurefireMojoJava7PlusTest.java
@@ -415,6 +415,60 @@ public class AbstractSurefireMojoJava7PlusTest
                 "junit.jar", "hamcrest.jar" );
     }
 
+    @Test
+    public void testAllProviderInfo()
+    {
+        Mojo mojo = new Mojo();
+
+        ProviderRequirements providerRequirements = new ProviderRequirements( true, false, true );
+
+        ProviderInfo providerInfo = mojo.newDynamicProviderInfo();
+        assertThat( providerInfo.getProviderName() )
+            .isEqualTo( "custom.Provider" );
+        assertThat( providerInfo.getJpmsArguments( providerRequirements ) )
+            .isEmpty();
+
+        providerInfo = mojo.newJUnit3ProviderInfo();
+        assertThat( providerInfo.getProviderName() )
+            .isEqualTo( "org.apache.maven.surefire.junit.JUnit3Provider" );
+        assertThat( providerInfo.getJpmsArguments( providerRequirements ) )
+            .isEmpty();
+
+        providerInfo = mojo.newJUnit4ProviderInfo();
+        assertThat( providerInfo.getProviderName() )
+            .isEqualTo( "org.apache.maven.surefire.junit4.JUnit4Provider" );
+        assertThat( providerInfo.getJpmsArguments( providerRequirements ) )
+            .isEmpty();
+
+        providerInfo = mojo.newJUnit47ProviderInfo();
+        assertThat( providerInfo.getProviderName() )
+            .isEqualTo( "org.apache.maven.surefire.junitcore.JUnitCoreProvider" );
+        assertThat( providerInfo.getJpmsArguments( providerRequirements ) )
+            .isEmpty();
+
+        providerInfo = mojo.newTestNgProviderInfo();
+        assertThat( providerInfo.getProviderName() )
+            .isEqualTo( "org.apache.maven.surefire.testng.TestNGProvider" );
+        assertThat( providerInfo.getJpmsArguments( providerRequirements ) )
+            .isEmpty();
+
+        providerInfo = mojo.newJUnitPlatformProviderInfo();
+        assertThat( providerInfo.getProviderName() )
+            .isEqualTo( "org.apache.maven.surefire.junitplatform.JUnitPlatformProvider" );
+        List<String[]> args = providerInfo.getJpmsArguments( providerRequirements );
+        assertThat( args )
+            .isNotEmpty()
+            .hasSize( 3 );
+        assertThat( args.get( 0 ) )
+            .isEqualTo( new String[] {"--add-modules", "ALL-MODULE-PATH"} );
+        assertThat( args.get( 1 ) )
+            .isEqualTo( new String[] {
+                "--add-opens", "org.junit.platform.commons/org.junit.platform.commons.util=ALL-UNNAMED"} );
+        assertThat( args.get( 2 ) )
+            .isEqualTo( new String[] {
+                "--add-opens", "org.junit.platform.commons/org.junit.platform.commons.logging=ALL-UNNAMED"} );
+    }
+
     private static File mockFile( String absolutePath )
     {
         File f = mock( File.class );
@@ -428,6 +482,35 @@ public class AbstractSurefireMojoJava7PlusTest
     public static class Mojo
             extends AbstractSurefireMojo
     {
+        ProviderInfo newDynamicProviderInfo()
+        {
+            return new DynamicProviderInfo( "custom.Provider" );
+        }
+
+        ProviderInfo newJUnit3ProviderInfo()
+        {
+            return new JUnit3ProviderInfo();
+        }
+
+        ProviderInfo newJUnit4ProviderInfo()
+        {
+            return new JUnit4ProviderInfo( null, null );
+        }
+
+        ProviderInfo newJUnit47ProviderInfo()
+        {
+            return new JUnitCoreProviderInfo( null, null );
+        }
+
+        ProviderInfo newTestNgProviderInfo()
+        {
+            return new TestNgProviderInfo( null );
+        }
+
+        ProviderInfo newJUnitPlatformProviderInfo()
+        {
+            return new JUnitPlatformProviderInfo( null, null );
+        }
 
         @Override
         protected String getPluginName()