You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kr...@apache.org on 2012/01/14 13:19:43 UTC
svn commit: r1231490 - in /maven/surefire/trunk:
surefire-api/src/main/java/org/apache/maven/surefire/booter/
surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/jiras/
surefire-integration-tests/src/test/resources/surefire-818-ignor...
Author: krosenvold
Date: Sat Jan 14 12:19:42 2012
New Revision: 1231490
URL: http://svn.apache.org/viewvc?rev=1231490&view=rev
Log:
[SUREFIRE-818] NPE in reporting causes ignoring of subsequent tests
Test-project submitted by Cyril Vidal, fixed with integration test.
Added:
maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/jiras/Surefire818NpeIgnoresTestsIT.java (with props)
maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/
maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/pom.xml (with props)
maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/
maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/test/
maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/test/java/
maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/test/java/cyril/
maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/test/java/cyril/test/
maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/test/java/cyril/test/FirstTest.java (with props)
maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/test/java/cyril/test/IgnoredTest.java (with props)
maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/test/java/cyril/test/Message.java (with props)
maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/test/java/cyril/test/MyService.java (with props)
maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/test/java/cyril/test/MyServiceImpl.java (with props)
Modified:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/booter/ForkingRunListener.java
maven/surefire/trunk/surefire-providers/common-junit4/src/main/java/org/apache/maven/surefire/common/junit4/JUnit4StackTraceWriter.java
Modified: maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/booter/ForkingRunListener.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/booter/ForkingRunListener.java?rev=1231490&r1=1231489&r2=1231490&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/booter/ForkingRunListener.java (original)
+++ maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/booter/ForkingRunListener.java Sat Jan 14 12:19:42 2012
@@ -291,7 +291,7 @@ public class ForkingRunListener
private ForkingRunListener nullableEncoding( StringBuffer stringBuffer, String source )
{
- if ( source == null || source.length() == 0)
+ if ( source == null || source.length() == 0 )
{
stringBuffer.append( "null" );
}
@@ -311,7 +311,7 @@ public class ForkingRunListener
final Throwable throwable = stackTraceWriter.getThrowable();
if ( throwable != null )
{
- String message = throwable.getLocalizedMessage();
+ String message = safeGetLocalizedMessage( throwable );
nullableEncoding( stringBuffer, message );
}
comma( stringBuffer );
@@ -321,4 +321,16 @@ public class ForkingRunListener
: stackTraceWriter.writeTraceToString() );
}
}
+
+ private String safeGetLocalizedMessage( Throwable throwable )
+ {
+ try
+ {
+ return throwable.getLocalizedMessage();
+ }
+ catch ( Throwable t )
+ {
+ return t.getLocalizedMessage();
+ }
+ }
}
Added: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/jiras/Surefire818NpeIgnoresTestsIT.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/jiras/Surefire818NpeIgnoresTestsIT.java?rev=1231490&view=auto
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/jiras/Surefire818NpeIgnoresTestsIT.java (added)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/jiras/Surefire818NpeIgnoresTestsIT.java Sat Jan 14 12:19:42 2012
@@ -0,0 +1,36 @@
+package org.apache.maven.surefire.its.jiras;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.surefire.its.fixture.SurefireIntegrationTestCase;
+
+/**
+ * SUREFIRE-818
+ *
+ * @author Kristian Rosenvold
+ */
+public class Surefire818NpeIgnoresTestsIT
+ extends SurefireIntegrationTestCase
+{
+ public void testBuildFailingWhenErrors()
+ {
+ unpack("surefire-818-ignored-tests-on-npe").executeTestWithFailure().assertTestSuiteResults( 2 ,0 , 1, 0 );
+ }
+}
\ No newline at end of file
Propchange: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/jiras/Surefire818NpeIgnoresTestsIT.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/pom.xml
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/pom.xml?rev=1231490&view=auto
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/pom.xml (added)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/pom.xml Sat Jan 14 12:19:42 2012
@@ -0,0 +1,32 @@
+<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>test</groupId>
+ <artifactId>cyril</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ <name>cyril</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.4</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>jmock</groupId>
+ <artifactId>jmock</artifactId>
+ <version>1.1.0</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>${surefire.version}</version>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Propchange: maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/test/java/cyril/test/FirstTest.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/test/java/cyril/test/FirstTest.java?rev=1231490&view=auto
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/test/java/cyril/test/FirstTest.java (added)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/test/java/cyril/test/FirstTest.java Sat Jan 14 12:19:42 2012
@@ -0,0 +1,36 @@
+package cyril.test;
+
+
+import org.jmock.Mock;
+import org.jmock.MockObjectTestCase;
+import org.junit.Test;
+
+
+public class FirstTest
+ extends MockObjectTestCase
+{
+
+ private Mock myServiceMock;
+
+ @Override
+ protected void setUp()
+ throws Exception
+ {
+ myServiceMock = mock( MyService.class );
+ }
+
+
+ @Test
+ public void test()
+ {
+
+ Message myMessage = new Message( "MyMessage" );
+ // Expectations
+ myServiceMock.expects( once() ).method( "writeMessage" ).with( eq( myMessage ) ).will(
+ returnValue( myMessage ) );
+
+ ( (MyService) myServiceMock.proxy() ).writeMessage( null );
+
+ }
+
+}
Propchange: maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/test/java/cyril/test/FirstTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/test/java/cyril/test/IgnoredTest.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/test/java/cyril/test/IgnoredTest.java?rev=1231490&view=auto
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/test/java/cyril/test/IgnoredTest.java (added)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/test/java/cyril/test/IgnoredTest.java Sat Jan 14 12:19:42 2012
@@ -0,0 +1,16 @@
+package cyril.test;
+
+import org.junit.Test;
+
+
+public class IgnoredTest
+{
+
+
+ @Test
+ public void test()
+ {
+ System.out.println( "My test is running fine" );
+ }
+
+}
Propchange: maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/test/java/cyril/test/IgnoredTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/test/java/cyril/test/Message.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/test/java/cyril/test/Message.java?rev=1231490&view=auto
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/test/java/cyril/test/Message.java (added)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/test/java/cyril/test/Message.java Sat Jan 14 12:19:42 2012
@@ -0,0 +1,18 @@
+package cyril.test;
+
+public class Message
+{
+
+ private String content;
+
+ public Message( String content )
+ {
+ this.content = content;
+ }
+
+ public int hashCode()
+ {
+ throw new NullPointerException();
+ }
+
+}
Propchange: maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/test/java/cyril/test/Message.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/test/java/cyril/test/MyService.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/test/java/cyril/test/MyService.java?rev=1231490&view=auto
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/test/java/cyril/test/MyService.java (added)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/test/java/cyril/test/MyService.java Sat Jan 14 12:19:42 2012
@@ -0,0 +1,8 @@
+package cyril.test;
+
+public interface MyService
+{
+
+ public Message writeMessage( Message aMessage );
+
+}
Propchange: maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/test/java/cyril/test/MyService.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/test/java/cyril/test/MyServiceImpl.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/test/java/cyril/test/MyServiceImpl.java?rev=1231490&view=auto
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/test/java/cyril/test/MyServiceImpl.java (added)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/test/java/cyril/test/MyServiceImpl.java Sat Jan 14 12:19:42 2012
@@ -0,0 +1,12 @@
+package cyril.test;
+
+public class MyServiceImpl
+ implements MyService
+{
+
+ public Message writeMessage( Message aMessage )
+ {
+ return aMessage;
+ }
+
+}
Propchange: maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-818-ignored-tests-on-npe/src/test/java/cyril/test/MyServiceImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: maven/surefire/trunk/surefire-providers/common-junit4/src/main/java/org/apache/maven/surefire/common/junit4/JUnit4StackTraceWriter.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-providers/common-junit4/src/main/java/org/apache/maven/surefire/common/junit4/JUnit4StackTraceWriter.java?rev=1231490&r1=1231489&r2=1231490&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-providers/common-junit4/src/main/java/org/apache/maven/surefire/common/junit4/JUnit4StackTraceWriter.java (original)
+++ maven/surefire/trunk/surefire-providers/common-junit4/src/main/java/org/apache/maven/surefire/common/junit4/JUnit4StackTraceWriter.java Sat Jan 14 12:19:42 2012
@@ -19,7 +19,9 @@ package org.apache.maven.surefire.common
* under the License.
*/
+import org.apache.maven.surefire.report.PojoStackTraceWriter;
import org.apache.maven.surefire.report.StackTraceWriter;
+
import org.junit.runner.notification.Failure;
/**
@@ -61,7 +63,14 @@ public class JUnit4StackTraceWriter
*/
public String writeTrimmedTraceToString()
{
- return junitFailure.getTrace();
+ try
+ {
+ return junitFailure.getTrace();
+ }
+ catch ( Throwable t )
+ {
+ return new PojoStackTraceWriter( "", "", t ).writeTrimmedTraceToString();
+ }
}
/**