A straightforward JUnit test is failing on OSX and succeeds on Linux, presumably this means the implementation will be broken on OSX as well.
public class AnsiColorBuildWrapperWorkflowTest {
@ClassRule
public static BuildWatcher buildWatcher = new BuildWatcher();
@Rule
public RestartableJenkinsRule story = new RestartableJenkinsRule();
@Test
public void testWorkflowWrap() throws Exception {
story.addStep(new Statement() {
@Override
public void evaluate() throws Throwable {
Assume.assumeTrue(!Functions.isWindows());
WorkflowJob p = story.j.jenkins.createProject(WorkflowJob.class, "p");
p.setDefinition(new CpsFlowDefinition(
"node {\n"
+ " wrap([$class: 'AnsiColorBuildWrapper', 'colorMapName': 'XTerm', 'defaultFg': 1, 'defaultBg': 2])
Unknown macro: {n" + " sh("""#!/bin/bashn" + " echo -e '\\e[31mred\\e[0m'"""n" + " )n" + " }
\n"
+ "}"
));
story.j.assertBuildStatusSuccess(p.scheduleBuild2(0));
StringWriter writer = new StringWriter();
p.getLastBuild().getLogText().writeHtmlTo(0L, writer);
assertTrue(writer.toString().matches("(?s).<span style=\"color: #CD0000;\">red</span>."));
}
});
}
}