[MSHARED-547] added support for colorized output checks (ignoring ANSI escape codes)
git-svn-id: https://svn.apache.org/repos/asf/maven/shared/trunk@1746888 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/maven/it/Verifier.java b/src/main/java/org/apache/maven/it/Verifier.java
index aff9d2e..fdcd869 100644
--- a/src/main/java/org/apache/maven/it/Verifier.java
+++ b/src/main/java/org/apache/maven/it/Verifier.java
@@ -281,7 +281,7 @@
for ( String line : lines )
{
// A hack to keep stupid velocity resource loader errors from triggering failure
- if ( line.contains( "[ERROR]" ) && !isVelocityError( line ) )
+ if ( stripAnsi( line ).contains( "[ERROR]" ) && !isVelocityError( line ) )
{
throw new VerificationException( "Error in execution: " + line );
}
@@ -314,7 +314,7 @@
boolean result = false;
for ( String line : lines )
{
- if ( line.contains( text ) )
+ if ( stripAnsi( line ).contains( text ) )
{
result = true;
break;
@@ -326,6 +326,11 @@
}
}
+ static String stripAnsi( String msg )
+ {
+ return msg.replaceAll( "\u001B\\[[;\\d]*[ -/]*[@-~]", "" );
+ }
+
public Properties loadProperties( String filename )
throws VerificationException
{
diff --git a/src/test/java/org/apache/maven/it/VerifierTest.java b/src/test/java/org/apache/maven/it/VerifierTest.java
index 96aa371..75c8202 100644
--- a/src/test/java/org/apache/maven/it/VerifierTest.java
+++ b/src/test/java/org/apache/maven/it/VerifierTest.java
@@ -67,4 +67,10 @@
verifier.assertFileNotPresent( "mshared104.jar!/fud.xml" );
}
+ public void testStripAnsi()
+ {
+ assertEquals( "--- plugin:version:goal (id) @ artifactId ---",
+ Verifier.stripAnsi( "\u001B[1m--- \u001B[0;32mplugin:version:goal\u001B[0;1m (id)\u001B[m @ "
+ + "\u001B[36martifactId\u001B[0;1m ---\u001B[m" ) );
+ }
}