Author: jdcasey Date: Thu Jan 19 18:38:31 2012 New Revision: 1233522 URL: http://svn.apache.org/viewvc?rev=1233522&view=rev Log: [SUREFIRE-803] Use plugin context to determine whether we're seeing a failsafe summary from earlier in the current build vs. from a previous build. If it's from a previous build, overwrite it.
Added: maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-rebuildOverwrites/ maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-rebuildOverwrites/pom.xml (with props) maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-rebuildOverwrites/src/ maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-rebuildOverwrites/src/main/ maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-rebuildOverwrites/src/main/java/ maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-rebuildOverwrites/src/main/java/org/ maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-rebuildOverwrites/src/main/java/org/apache/ maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-rebuildOverwrites/src/main/java/org/apache/maven/ maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-rebuildOverwrites/src/main/java/org/apache/maven/surefire/ maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-rebuildOverwrites/src/main/java/org/apache/maven/surefire/test/ maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-rebuildOverwrites/src/main/java/org/apache/maven/surefire/test/App.java (with props) maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-rebuildOverwrites/src/test/ maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-rebuildOverwrites/src/test/java/ maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-rebuildOverwrites/src/test/java/org/ maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-rebuildOverwrites/src/test/java/org/apache/ maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-rebuildOverwrites/src/test/java/org/apache/maven/ maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-rebuildOverwrites/src/test/java/org/apache/maven/surefire/ maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-rebuildOverwrites/src/test/java/org/apache/maven/surefire/test/ maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-rebuildOverwrites/src/test/java/org/apache/maven/surefire/test/TheTest.java (with props) Removed: maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-failureInFirst/src/test/java/org/apache/maven/surefire/test/TokenSurefireTest.java Modified: maven/surefire/trunk/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/IntegrationTestMojo.java maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/OutputValidator.java maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireLauncher.java maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/jiras/Surefire803MultiFailsafeExecsIT.java maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-failureInFirst/pom.xml Modified: maven/surefire/trunk/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/IntegrationTestMojo.java URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/IntegrationTestMojo.java?rev=1233522&r1=1233521&r2=1233522&view=diff ============================================================================== --- maven/surefire/trunk/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/IntegrationTestMojo.java (original) +++ maven/surefire/trunk/maven-failsafe-plugin/src/main/java/org/apache/maven/plugin/failsafe/IntegrationTestMojo.java Thu Jan 19 18:38:31 2012 @@ -43,6 +43,7 @@ import org.apache.maven.artifact.metadat import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.artifact.resolver.ArtifactResolver; import org.apache.maven.execution.MavenSession; +import org.apache.maven.plugin.MojoExecution; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; import org.apache.maven.plugin.descriptor.PluginDescriptor; @@ -76,6 +77,8 @@ public class IntegrationTestMojo extends AbstractSurefireMojo { + private static final String FAILSAFE_IN_PROGRESS_CONTEXT_KEY = "failsafe-in-progress"; + /** * Information about this plugin, mainly used to lookup this plugin's configuration from the currently executing * project. @@ -713,6 +716,7 @@ public class IntegrationTestMojo return failsafeSummary; } + @SuppressWarnings( "unchecked" ) private void writeSummary( FailsafeSummary summary ) throws MojoExecutionException { @@ -727,7 +731,8 @@ public class IntegrationTestMojo try { FailsafeSummary mergedSummary = summary; - if ( summaryFile.exists() ) + Object token = getPluginContext().get( FAILSAFE_IN_PROGRESS_CONTEXT_KEY ); + if ( summaryFile.exists() && token != null ) { fin = new FileInputStream( summaryFile ); @@ -759,6 +764,8 @@ public class IntegrationTestMojo close( fin ); close( fout ); } + + getPluginContext().put( FAILSAFE_IN_PROGRESS_CONTEXT_KEY, FAILSAFE_IN_PROGRESS_CONTEXT_KEY ); } private String getEncodingOrDefault() Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/OutputValidator.java URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/OutputValidator.java?rev=1233522&r1=1233521&r2=1233522&view=diff ============================================================================== --- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/OutputValidator.java (original) +++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/OutputValidator.java Thu Jan 19 18:38:31 2012 @@ -84,6 +84,20 @@ public class OutputValidator } } + public OutputValidator verifyErrorFreeIntegrationTests( int total ) + { + try + { + verifier.verifyErrorFreeLog(); + this.assertIntegrationTestSuiteResults( total, 0, 0, 0 ); + return this; + } + catch ( VerificationException e ) + { + throw new SurefireVerifierException( e ); + } + } + public List<String> loadFile( File file, boolean hasCommand ) { //noinspection unchecked Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireLauncher.java URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireLauncher.java?rev=1233522&r1=1233521&r2=1233522&view=diff ============================================================================== --- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireLauncher.java (original) +++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/SurefireLauncher.java Thu Jan 19 18:38:31 2012 @@ -253,7 +253,7 @@ public class SurefireLauncher } - protected OutputValidator executeVerify() + public OutputValidator executeVerify() { return execute( "verify" ); } Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/jiras/Surefire803MultiFailsafeExecsIT.java URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/jiras/Surefire803MultiFailsafeExecsIT.java?rev=1233522&r1=1233521&r2=1233522&view=diff ============================================================================== --- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/jiras/Surefire803MultiFailsafeExecsIT.java (original) +++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/jiras/Surefire803MultiFailsafeExecsIT.java Thu Jan 19 18:38:31 2012 @@ -1,6 +1,7 @@ package org.apache.maven.surefire.its.jiras; import org.apache.maven.surefire.its.fixture.SurefireIntegrationTestCase; +import org.apache.maven.surefire.its.fixture.SurefireLauncher; public class Surefire803MultiFailsafeExecsIT extends SurefireIntegrationTestCase @@ -14,4 +15,12 @@ public class Surefire803MultiFailsafeExe 0 ); } + public void testOneExecutionRunInTwoBuilds() + { + SurefireLauncher launcher = unpack( "/surefire-803-multiFailsafeExec-rebuildOverwrites" ); + launcher.addD( "success", "false" ).executeVerifyWithFailure().assertIntegrationTestSuiteResults( 1, 0, 1, 0 ); + launcher.reset(); + launcher.addD( "success", "true" ).executeVerify().assertIntegrationTestSuiteResults( 1, 0, 0, 0 ); + } + } Modified: maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-failureInFirst/pom.xml URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-failureInFirst/pom.xml?rev=1233522&r1=1233521&r2=1233522&view=diff ============================================================================== --- maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-failureInFirst/pom.xml (original) +++ maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-failureInFirst/pom.xml Thu Jan 19 18:38:31 2012 @@ -29,9 +29,7 @@ <artifactId>maven-surefire-plugin</artifactId> <version>${surefire.version}</version> <configuration> - <includes> - <include>**/TokenSurefireTest.java</include> - </includes> + <skip>true</skip> </configuration> </plugin> <plugin> Added: maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-rebuildOverwrites/pom.xml URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-rebuildOverwrites/pom.xml?rev=1233522&view=auto ============================================================================== --- maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-rebuildOverwrites/pom.xml (added) +++ maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-rebuildOverwrites/pom.xml Thu Jan 19 18:38:31 2012 @@ -0,0 +1,59 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <groupId>org.apache.maven.plugins.surefire</groupId> + <artifactId>surefire-803-multiFailsafeExec-rebuildOverwrites</artifactId> + <version>1.0-SNAPSHOT</version> + <packaging>jar</packaging> + + <name>surefire-803-failure-prevents-subsequent-executions</name> + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + </properties> + + <dependencies> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.8.2</version> + <scope>test</scope> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>${surefire.version}</version> + <configuration> + <skip>true</skip> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-failsafe-plugin</artifactId> + <version>${surefire.version}</version> + <executions> + <execution> + <id>its</id> + <goals> + <goal>integration-test</goal> + <goal>verify</goal> + </goals> + <configuration> + <includes> + <include>**/TheTest.java</include> + </includes> + <systemPropertyVariables> + <success>${success}</success> + </systemPropertyVariables> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> +</project> Propchange: maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-rebuildOverwrites/pom.xml ------------------------------------------------------------------------------ svn:eol-style = native Added: maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-rebuildOverwrites/src/main/java/org/apache/maven/surefire/test/App.java URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-rebuildOverwrites/src/main/java/org/apache/maven/surefire/test/App.java?rev=1233522&view=auto ============================================================================== --- maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-rebuildOverwrites/src/main/java/org/apache/maven/surefire/test/App.java (added) +++ maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-rebuildOverwrites/src/main/java/org/apache/maven/surefire/test/App.java Thu Jan 19 18:38:31 2012 @@ -0,0 +1,18 @@ +package org.apache.maven.surefire.test; + +public class App +{ + + private String test = "value"; + + public String getTest() + { + return test; + } + + public void setTest( final String test ) + { + this.test = test; + } + +} Propchange: maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-rebuildOverwrites/src/main/java/org/apache/maven/surefire/test/App.java ------------------------------------------------------------------------------ svn:eol-style = native Added: maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-rebuildOverwrites/src/test/java/org/apache/maven/surefire/test/TheTest.java URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-rebuildOverwrites/src/test/java/org/apache/maven/surefire/test/TheTest.java?rev=1233522&view=auto ============================================================================== --- maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-rebuildOverwrites/src/test/java/org/apache/maven/surefire/test/TheTest.java (added) +++ maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-rebuildOverwrites/src/test/java/org/apache/maven/surefire/test/TheTest.java Thu Jan 19 18:38:31 2012 @@ -0,0 +1,23 @@ +package org.apache.maven.surefire.test; + +import static org.hamcrest.CoreMatchers.equalTo; +import static org.junit.Assert.assertThat; + +import org.junit.After; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.TestName; + +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; + +public class TheTest +{ + @Test + public void checkSuccessCLIParam() + { + assertThat( Boolean.getBoolean( "success" ), equalTo( true ) ); + } + +} Propchange: maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-rebuildOverwrites/src/test/java/org/apache/maven/surefire/test/TheTest.java ------------------------------------------------------------------------------ svn:eol-style = native