Updated Branches: refs/heads/master 9db8ce813 -> 00e861894
o Fix test that failed with some charsets Project: http://git-wip-us.apache.org/repos/asf/maven-surefire/repo Commit: http://git-wip-us.apache.org/repos/asf/maven-surefire/commit/00e86189 Tree: http://git-wip-us.apache.org/repos/asf/maven-surefire/tree/00e86189 Diff: http://git-wip-us.apache.org/repos/asf/maven-surefire/diff/00e86189 Branch: refs/heads/master Commit: 00e8618942b9b3b96b1cd225c7e0b4c8c8a63f6b Parents: 9db8ce8 Author: Andreas Gudian <agud...@apache.org> Authored: Sun Aug 11 11:35:46 2013 +0200 Committer: Andreas Gudian <agud...@apache.org> Committed: Sun Aug 11 11:35:46 2013 +0200 ---------------------------------------------------------------------- .../report/StatelessXMLReporterTest.java | 44 ++++++++++++++++---- 1 file changed, 37 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/00e86189/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/StatelessXMLReporterTest.java ---------------------------------------------------------------------- diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/StatelessXMLReporterTest.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/StatelessXMLReporterTest.java index 8ed78c2..c0e3951 100644 --- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/StatelessXMLReporterTest.java +++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/StatelessXMLReporterTest.java @@ -23,6 +23,7 @@ import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; +import java.nio.ByteBuffer; import java.nio.charset.Charset; import junit.framework.AssertionFailedError; @@ -48,6 +49,8 @@ public class StatelessXMLReporterTest private TestSetStats stats; + private File expectedReportFile; + protected void setUp() throws Exception { @@ -57,6 +60,17 @@ public class StatelessXMLReporterTest stats = new TestSetStats( false, true ); } + @Override protected void tearDown() + throws Exception + { + super.tearDown(); + + if ( expectedReportFile != null ) + { + expectedReportFile.delete(); + } + } + public void testFileNameWithoutSuffix() { File reportDir = new File( "." ); @@ -67,11 +81,9 @@ public class StatelessXMLReporterTest stats.testSucceeded( testSetReportEntry ); reporter.testSetCompleted( testSetReportEntry, stats ); - File expectedReportFile = new File( reportDir, "TEST-" + testName + ".xml" ); + expectedReportFile = new File( reportDir, "TEST-" + testName + ".xml" ); assertTrue( "Report file (" + expectedReportFile.getAbsolutePath() + ") doesn't exist", expectedReportFile.exists() ); - //noinspection ResultOfMethodCallIgnored - expectedReportFile.delete(); } @@ -84,15 +96,27 @@ public class StatelessXMLReporterTest reportEntry = new SimpleReportEntry( this.getClass().getName(), testName, 12 ); WrappedReportEntry testSetReportEntry = new WrappedReportEntry( reportEntry, ReportEntryType.success, 12, null, null ); - File expectedReportFile = new File( reportDir, "TEST-" + testName + ".xml" ); + expectedReportFile = new File( reportDir, "TEST-" + testName + ".xml" ); stats.testSucceeded( testSetReportEntry ); StackTraceWriter stackTraceWriter = new DeserializedStacktraceWriter( "A fud msg", "trimmed", "fail at foo" ); Utf8RecodingDeferredFileOutputStream stdOut = new Utf8RecodingDeferredFileOutputStream( "fds" ); byte[] stdOutBytes = "st]]>d-o\u00DCt<null>!\u0020\u0000\u001F".getBytes(); stdOut.write( stdOutBytes, 0, stdOutBytes.length ); + Utf8RecodingDeferredFileOutputStream stdErr = new Utf8RecodingDeferredFileOutputStream( "fds" ); - byte[] stdErrBytes = "std-örr?&-&£\u0020\u0000\u001F".getBytes(); + + String stdErrPrefix; + if ( defaultCharsetSupportsSpecialChar() ) + { + stdErrPrefix = "std-\u0115rr"; + } + else + { + stdErrPrefix = "std-err"; + } + + byte[] stdErrBytes = (stdErrPrefix + "?&-&£\u0020\u0000\u001F").getBytes(); stdErr.write( stdErrBytes, 0, stdErrBytes.length ); WrappedReportEntry t2 = new WrappedReportEntry( new SimpleReportEntry( Inner.class.getName(), testName2, stackTraceWriter, 13 ), @@ -127,9 +151,15 @@ public class StatelessXMLReporterTest assertEquals( "A fud msg", errorNode.getAttribute( "message" ) ); assertEquals( "fail at foo", errorNode.getAttribute( "type" ) ); assertEquals( "st]]>d-o\u00DCt<null>! &#0;&#31;", tcb.getChild( "system-out" ).getValue() ); - assertEquals( "std-örr?&-&£ &#0;&#31;", tcb.getChild( "system-err" ).getValue() ); - expectedReportFile.delete(); + + assertEquals( stdErrPrefix + "?&-&£ &#0;&#31;", tcb.getChild( "system-err" ).getValue() ); + } + + private boolean defaultCharsetSupportsSpecialChar() + { + // some charsets are not able to deal with \u0115 on both ways of the conversion + return "\u0115".equals( new String( "\u0115".getBytes() ) ); } class Inner