You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ma...@apache.org on 2020/07/15 10:06:33 UTC

[maven-integration-testing] branch mng-5760-resume-feature-2 created (now 2f1a9ef)

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

martinkanters pushed a change to branch mng-5760-resume-feature-2
in repository https://gitbox.apache.org/repos/asf/maven-integration-testing.git.


      at 2f1a9ef  [MNG-5760] Added several more test cases for the --resume feature

This branch includes the following new commits:

     new 2f1a9ef  [MNG-5760] Added several more test cases for the --resume feature

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[maven-integration-testing] 01/01: [MNG-5760] Added several more test cases for the --resume feature

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

martinkanters pushed a commit to branch mng-5760-resume-feature-2
in repository https://gitbox.apache.org/repos/asf/maven-integration-testing.git

commit 2f1a9ef3a205dfe89c4a53c419c8f3f6c27c2f96
Author: Maarten Mulders <ma...@infosupport.com>
AuthorDate: Sat Jun 20 22:24:09 2020 +0200

    [MNG-5760] Added several more test cases for the --resume feature
    
    Enable test for --resume feature
    
    Verifying that resuming the build works when the resume.properties file does not have excludedProjects to skip in the next build.
    
    Enabled back temporarily ignored test.
    
    Added a test case for the --resume feature to skip failed modules after the first multi module project failed.
    
    Maven invocations without project shouldn't fail
    
    Ensure empty folder is there
---
 .../org/apache/maven/it/IntegrationTestSuite.java  |  3 +-
 .../maven/it/MavenITmng5760ResumeFeatureTest.java  | 73 ++++++++++++++++++++--
 .../mng-5760-resume-feature/no-project/.gitkeep    |  0
 .../{ => parent-dependent}/module-a/pom.xml        |  0
 .../test/java/org/apache/maven/it/TestCase.java    |  0
 .../{ => parent-dependent}/module-b/pom.xml        |  0
 .../test/java/org/apache/maven/it/TestCase.java    |  0
 .../{ => parent-dependent}/module-c/pom.xml        |  0
 .../test/java/org/apache/maven/it/TestCase.java    |  0
 .../{ => parent-dependent}/pom.xml                 |  0
 .../{ => parent-independent}/module-a/pom.xml      | 17 +++--
 .../test/java/org/apache/maven/it/TestCase.java    |  0
 .../{ => parent-independent}/module-b/pom.xml      | 17 +++--
 .../test/java/org/apache/maven/it/TestCase.java    |  0
 .../{ => parent-independent}/pom.xml               | 12 +---
 15 files changed, 94 insertions(+), 28 deletions(-)

diff --git a/core-it-suite/src/test/java/org/apache/maven/it/IntegrationTestSuite.java b/core-it-suite/src/test/java/org/apache/maven/it/IntegrationTestSuite.java
index 67a2c8e..33dc60b 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/IntegrationTestSuite.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/IntegrationTestSuite.java
@@ -106,7 +106,8 @@ public class IntegrationTestSuite
         // Tests that don't run stable and need to be fixed
         // -------------------------------------------------------------------------------------------------------------
         // suite.addTestSuite( MavenIT0108SnapshotUpdateTest.class ); -- MNG-3137
-        
+
+        suite.addTestSuite( MavenITmng5760ResumeFeatureTest.class );
         suite.addTestSuite( MavenITmng6656BuildConsumer.class );
         suite.addTestSuite( MavenITmng6562WarnDefaultBindings.class );
         suite.addTestSuite( MavenITmng5868NoDuplicateAttachedArtifacts.class );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5760ResumeFeatureTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5760ResumeFeatureTest.java
index aa001a0..7342f31 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5760ResumeFeatureTest.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5760ResumeFeatureTest.java
@@ -40,11 +40,18 @@ import java.util.List;
  * @author Martin Kanters
  */
 public class MavenITmng5760ResumeFeatureTest extends AbstractMavenIntegrationTestCase {
-    private final File testDir;
+    private final File parentDependentTestDir;
+    private final File parentIndependentTestDir;
+    private final File noProjectTestDir;
 
     public MavenITmng5760ResumeFeatureTest() throws IOException {
         super( "[3.7.0,)" );
-        this.testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-5760-resume-feature" );
+        this.parentDependentTestDir = ResourceExtractor.simpleExtractResources( getClass(),
+                "/mng-5760-resume-feature/parent-dependent" );
+        this.parentIndependentTestDir = ResourceExtractor.simpleExtractResources( getClass(),
+                "/mng-5760-resume-feature/parent-independent" );
+        this.noProjectTestDir = ResourceExtractor.simpleExtractResources( getClass(),
+                "/mng-5760-resume-feature/no-project" );
     }
 
     /**
@@ -52,7 +59,7 @@ public class MavenITmng5760ResumeFeatureTest extends AbstractMavenIntegrationTes
      */
     public void testShouldSuggestToResumeWithoutArgs() throws Exception
     {
-        final Verifier verifier = newVerifier( testDir.getAbsolutePath() );
+        final Verifier verifier = newVerifier( parentDependentTestDir.getAbsolutePath() );
         verifier.addCliOption( "-Dmodule-b.fail=true" );
 
         try
@@ -69,11 +76,19 @@ public class MavenITmng5760ResumeFeatureTest extends AbstractMavenIntegrationTes
         {
             verifier.resetStreams();
         }
+
+        // New build with -r should resume the build from module-b, skipping module-a since it has succeeded already.
+        verifier.getCliOptions().clear();
+        verifier.addCliOption( "-r" );
+        verifier.executeGoal( "test" );
+        verifyTextNotInLog( verifier, "Building module-a 1.0" );
+        verifier.verifyTextInLog( "Building module-b 1.0" );
+        verifier.verifyTextInLog( "Building module-c 1.0" );
     }
 
     public void testShouldSkipSuccessfulProjects() throws Exception
     {
-        final Verifier verifier = newVerifier( testDir.getAbsolutePath() );
+        final Verifier verifier = newVerifier( parentDependentTestDir.getAbsolutePath() );
         verifier.addCliOption( "-Dmodule-a.fail=true" );
         verifier.addCliOption( "--fail-at-end");
 
@@ -109,6 +124,56 @@ public class MavenITmng5760ResumeFeatureTest extends AbstractMavenIntegrationTes
         }
     }
 
+    public void testShouldSkipSuccessfulModulesWhenTheFirstModuleFailed() throws Exception
+    {
+        // In this multi-module project, the submodules are not dependent on the parent.
+        // This results in the parent to be built last, and module-a to be built first.
+        // This enables us to let the first module in the reactor (module-a) fail.
+        final Verifier verifier = newVerifier( parentIndependentTestDir.getAbsolutePath() );
+        verifier.addCliOption( "-Dmodule-a.fail=true" );
+        verifier.addCliOption( "--fail-at-end");
+
+        try
+        {
+            verifier.executeGoal( "test" );
+            fail( "Expected this invocation to fail" );
+        }
+        catch ( final VerificationException ve )
+        {
+            verifier.verifyTextInLog( "mvn <args> -r" );
+        }
+        finally
+        {
+            verifier.resetStreams();
+        }
+
+        verifier.getCliOptions().clear();
+        verifier.addCliOption( "-r" );
+        verifier.executeGoal( "test" );
+        verifier.verifyTextInLog( "Building module-a 1.0" );
+        verifyTextNotInLog( verifier, "Building module-b 1.0" );
+    }
+
+    public void testShouldNotCrashWithoutProject() throws Exception
+    {
+        // There is no Maven project available in the test directory.
+        // As reported in JIRA this would previously break with a NullPointerException.
+        // (see https://issues.apache.org/jira/browse/MNG-5760?focusedCommentId=17143795&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-17143795)
+        final Verifier verifier = newVerifier( noProjectTestDir.getAbsolutePath() );
+        try
+        {
+            verifier.executeGoal( "resources:resources" );
+        }
+        catch ( final VerificationException ve )
+        {
+            verifier.verifyTextInLog( "Goal requires a project to execute but there is no POM in this directory" );
+        }
+        finally
+        {
+            verifier.resetStreams();
+        }
+    }
+
     /**
      * Throws an exception if the text <strong>is</strong> present in the log.
      *
diff --git a/core-it-suite/src/test/resources/mng-5760-resume-feature/no-project/.gitkeep b/core-it-suite/src/test/resources/mng-5760-resume-feature/no-project/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/core-it-suite/src/test/resources/mng-5760-resume-feature/module-a/pom.xml b/core-it-suite/src/test/resources/mng-5760-resume-feature/parent-dependent/module-a/pom.xml
similarity index 100%
copy from core-it-suite/src/test/resources/mng-5760-resume-feature/module-a/pom.xml
copy to core-it-suite/src/test/resources/mng-5760-resume-feature/parent-dependent/module-a/pom.xml
diff --git a/core-it-suite/src/test/resources/mng-5760-resume-feature/module-a/src/test/java/org/apache/maven/it/TestCase.java b/core-it-suite/src/test/resources/mng-5760-resume-feature/parent-dependent/module-a/src/test/java/org/apache/maven/it/TestCase.java
similarity index 100%
copy from core-it-suite/src/test/resources/mng-5760-resume-feature/module-a/src/test/java/org/apache/maven/it/TestCase.java
copy to core-it-suite/src/test/resources/mng-5760-resume-feature/parent-dependent/module-a/src/test/java/org/apache/maven/it/TestCase.java
diff --git a/core-it-suite/src/test/resources/mng-5760-resume-feature/module-b/pom.xml b/core-it-suite/src/test/resources/mng-5760-resume-feature/parent-dependent/module-b/pom.xml
similarity index 100%
copy from core-it-suite/src/test/resources/mng-5760-resume-feature/module-b/pom.xml
copy to core-it-suite/src/test/resources/mng-5760-resume-feature/parent-dependent/module-b/pom.xml
diff --git a/core-it-suite/src/test/resources/mng-5760-resume-feature/module-b/src/test/java/org/apache/maven/it/TestCase.java b/core-it-suite/src/test/resources/mng-5760-resume-feature/parent-dependent/module-b/src/test/java/org/apache/maven/it/TestCase.java
similarity index 100%
copy from core-it-suite/src/test/resources/mng-5760-resume-feature/module-b/src/test/java/org/apache/maven/it/TestCase.java
copy to core-it-suite/src/test/resources/mng-5760-resume-feature/parent-dependent/module-b/src/test/java/org/apache/maven/it/TestCase.java
diff --git a/core-it-suite/src/test/resources/mng-5760-resume-feature/module-c/pom.xml b/core-it-suite/src/test/resources/mng-5760-resume-feature/parent-dependent/module-c/pom.xml
similarity index 100%
rename from core-it-suite/src/test/resources/mng-5760-resume-feature/module-c/pom.xml
rename to core-it-suite/src/test/resources/mng-5760-resume-feature/parent-dependent/module-c/pom.xml
diff --git a/core-it-suite/src/test/resources/mng-5760-resume-feature/module-c/src/test/java/org/apache/maven/it/TestCase.java b/core-it-suite/src/test/resources/mng-5760-resume-feature/parent-dependent/module-c/src/test/java/org/apache/maven/it/TestCase.java
similarity index 100%
rename from core-it-suite/src/test/resources/mng-5760-resume-feature/module-c/src/test/java/org/apache/maven/it/TestCase.java
rename to core-it-suite/src/test/resources/mng-5760-resume-feature/parent-dependent/module-c/src/test/java/org/apache/maven/it/TestCase.java
diff --git a/core-it-suite/src/test/resources/mng-5760-resume-feature/pom.xml b/core-it-suite/src/test/resources/mng-5760-resume-feature/parent-dependent/pom.xml
similarity index 100%
copy from core-it-suite/src/test/resources/mng-5760-resume-feature/pom.xml
copy to core-it-suite/src/test/resources/mng-5760-resume-feature/parent-dependent/pom.xml
diff --git a/core-it-suite/src/test/resources/mng-5760-resume-feature/module-a/pom.xml b/core-it-suite/src/test/resources/mng-5760-resume-feature/parent-independent/module-a/pom.xml
similarity index 77%
rename from core-it-suite/src/test/resources/mng-5760-resume-feature/module-a/pom.xml
rename to core-it-suite/src/test/resources/mng-5760-resume-feature/parent-independent/module-a/pom.xml
index 2fc5193..b7a0c07 100644
--- a/core-it-suite/src/test/resources/mng-5760-resume-feature/module-a/pom.xml
+++ b/core-it-suite/src/test/resources/mng-5760-resume-feature/parent-independent/module-a/pom.xml
@@ -25,12 +25,17 @@ under the License.
 
     <modelVersion>4.0.0</modelVersion>
 
+    <groupId>org.apache.maven.its.mng5760.parentindependent</groupId>
     <artifactId>module-a</artifactId>
-
-    <parent>
-        <groupId>org.apache.maven.its.mng5760</groupId>
-        <artifactId>parent</artifactId>
-        <version>1.0</version>
-    </parent>
+    <version>1.0</version>
+
+    <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.12</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
 
 </project>
diff --git a/core-it-suite/src/test/resources/mng-5760-resume-feature/module-a/src/test/java/org/apache/maven/it/TestCase.java b/core-it-suite/src/test/resources/mng-5760-resume-feature/parent-independent/module-a/src/test/java/org/apache/maven/it/TestCase.java
similarity index 100%
rename from core-it-suite/src/test/resources/mng-5760-resume-feature/module-a/src/test/java/org/apache/maven/it/TestCase.java
rename to core-it-suite/src/test/resources/mng-5760-resume-feature/parent-independent/module-a/src/test/java/org/apache/maven/it/TestCase.java
diff --git a/core-it-suite/src/test/resources/mng-5760-resume-feature/module-b/pom.xml b/core-it-suite/src/test/resources/mng-5760-resume-feature/parent-independent/module-b/pom.xml
similarity index 77%
rename from core-it-suite/src/test/resources/mng-5760-resume-feature/module-b/pom.xml
rename to core-it-suite/src/test/resources/mng-5760-resume-feature/parent-independent/module-b/pom.xml
index d415157..4b8e415 100644
--- a/core-it-suite/src/test/resources/mng-5760-resume-feature/module-b/pom.xml
+++ b/core-it-suite/src/test/resources/mng-5760-resume-feature/parent-independent/module-b/pom.xml
@@ -25,12 +25,17 @@ under the License.
 
     <modelVersion>4.0.0</modelVersion>
 
+    <groupId>org.apache.maven.its.mng5760.parentindependent</groupId>
     <artifactId>module-b</artifactId>
-
-    <parent>
-        <groupId>org.apache.maven.its.mng5760</groupId>
-        <artifactId>parent</artifactId>
-        <version>1.0</version>
-    </parent>
+    <version>1.0</version>
+
+    <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.12</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
 
 </project>
diff --git a/core-it-suite/src/test/resources/mng-5760-resume-feature/module-b/src/test/java/org/apache/maven/it/TestCase.java b/core-it-suite/src/test/resources/mng-5760-resume-feature/parent-independent/module-b/src/test/java/org/apache/maven/it/TestCase.java
similarity index 100%
rename from core-it-suite/src/test/resources/mng-5760-resume-feature/module-b/src/test/java/org/apache/maven/it/TestCase.java
rename to core-it-suite/src/test/resources/mng-5760-resume-feature/parent-independent/module-b/src/test/java/org/apache/maven/it/TestCase.java
diff --git a/core-it-suite/src/test/resources/mng-5760-resume-feature/pom.xml b/core-it-suite/src/test/resources/mng-5760-resume-feature/parent-independent/pom.xml
similarity index 83%
rename from core-it-suite/src/test/resources/mng-5760-resume-feature/pom.xml
rename to core-it-suite/src/test/resources/mng-5760-resume-feature/parent-independent/pom.xml
index ca797e0..45463c5 100644
--- a/core-it-suite/src/test/resources/mng-5760-resume-feature/pom.xml
+++ b/core-it-suite/src/test/resources/mng-5760-resume-feature/parent-independent/pom.xml
@@ -24,7 +24,7 @@ under the License.
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
-    <groupId>org.apache.maven.its.mng5760</groupId>
+    <groupId>org.apache.maven.its.mng5760.parentindependent</groupId>
     <artifactId>parent</artifactId>
     <version>1.0</version>
 
@@ -44,16 +44,6 @@ under the License.
     <modules>
         <module>module-a</module>
         <module>module-b</module>
-        <module>module-c</module>
     </modules>
 
-    <dependencies>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>4.12</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
 </project>