summaryrefslogtreecommitdiffstats
path: root/vespa-testrunner-components
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2021-12-03 10:07:05 +0100
committerJon Marius Venstad <venstad@gmail.com>2021-12-03 10:07:05 +0100
commit68847a31fd792ce7c1df90d4552980d8fd43253f (patch)
tree745d9cf9a5d7c4eca1058ba562f4e936801615cd /vespa-testrunner-components
parent7cc3980cf2b38da62f06444e2785cc752eacf75c (diff)
Move ANSI to HTML to separate class, and simplify
Diffstat (limited to 'vespa-testrunner-components')
-rw-r--r--vespa-testrunner-components/pom.xml6
-rw-r--r--vespa-testrunner-components/src/main/java/com/yahoo/vespa/hosted/testrunner/TestRunner.java25
-rw-r--r--vespa-testrunner-components/src/test/java/com/yahoo/vespa/hosted/testrunner/TestRunnerTest.java16
3 files changed, 5 insertions, 42 deletions
diff --git a/vespa-testrunner-components/pom.xml b/vespa-testrunner-components/pom.xml
index 2f563748836..4b4b0cfa92c 100644
--- a/vespa-testrunner-components/pom.xml
+++ b/vespa-testrunner-components/pom.xml
@@ -42,12 +42,6 @@
</dependency>
<dependency>
- <groupId>org.fusesource.jansi</groupId>
- <artifactId>jansi</artifactId>
- <version>1.18</version>
- </dependency>
-
- <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
diff --git a/vespa-testrunner-components/src/main/java/com/yahoo/vespa/hosted/testrunner/TestRunner.java b/vespa-testrunner-components/src/main/java/com/yahoo/vespa/hosted/testrunner/TestRunner.java
index 83cfd0030a0..69296c23fa0 100644
--- a/vespa-testrunner-components/src/main/java/com/yahoo/vespa/hosted/testrunner/TestRunner.java
+++ b/vespa-testrunner-components/src/main/java/com/yahoo/vespa/hosted/testrunner/TestRunner.java
@@ -3,15 +3,11 @@ package com.yahoo.vespa.hosted.testrunner;
import com.google.inject.Inject;
import com.yahoo.vespa.defaults.Defaults;
-import org.fusesource.jansi.AnsiOutputStream;
-import org.fusesource.jansi.HtmlAnsiOutputStream;
+import com.yahoo.vespa.testrunner.HtmlLogger;
-import java.io.BufferedOutputStream;
import java.io.BufferedReader;
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
-import java.io.PrintStream;
import java.io.UncheckedIOException;
import java.nio.file.Files;
import java.nio.file.Path;
@@ -29,7 +25,6 @@ import java.util.logging.Logger;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import static java.nio.charset.StandardCharsets.UTF_8;
import static java.util.logging.Level.SEVERE;
/**
@@ -39,7 +34,6 @@ import static java.util.logging.Level.SEVERE;
public class TestRunner implements com.yahoo.vespa.testrunner.TestRunner {
private static final Logger logger = Logger.getLogger(TestRunner.class.getName());
- private static final Level HTML = new Level("html", 1) { };
private static final Path vespaHome = Paths.get(Defaults.getDefaults().vespaHome());
private static final String settingsXml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
"<settings xmlns=\"http://maven.apache.org/SETTINGS/1.0.0\"\n" +
@@ -150,26 +144,17 @@ public class TestRunner implements com.yahoo.vespa.testrunner.TestRunner {
}
boolean success;
- try (ByteArrayOutputStream logBuffer = new ByteArrayOutputStream();
- PrintStream logPlainFormatter = new PrintStream(new AnsiOutputStream(logBuffer));
- PrintStream logFormatter = new PrintStream(new HtmlAnsiOutputStream(logBuffer))){
+ try {
writeTestApplicationPom(testProfile);
Files.write(configFile, testConfig);
Files.write(settingsFile, settingsXml.getBytes());
Process mavenProcess = builder.start();
BufferedReader in = new BufferedReader(new InputStreamReader(mavenProcess.getInputStream()));
+ HtmlLogger htmlLogger = new HtmlLogger();
in.lines().forEach(line -> {
- logFormatter.print(line);
- String message = logBuffer.toString(UTF_8);
- if (message.length() > 1 << 13) {
- logBuffer.reset();
- logPlainFormatter.print(line); // Avoid HTML since we don't know what we'll strip here.
- message = logBuffer.toString(UTF_8).substring(0, 1 << 13) + " ... (this log entry was truncated due to size)";
- }
- LogRecord record = new LogRecord(HTML, message);
- log.put(record.getSequenceNumber(), record);
- logBuffer.reset();
+ LogRecord html = htmlLogger.toLog(line);
+ log.put(html.getSequenceNumber(), html);
});
success = mavenProcess.waitFor() == 0;
}
diff --git a/vespa-testrunner-components/src/test/java/com/yahoo/vespa/hosted/testrunner/TestRunnerTest.java b/vespa-testrunner-components/src/test/java/com/yahoo/vespa/hosted/testrunner/TestRunnerTest.java
index 752ca6103d1..2b2c30790c9 100644
--- a/vespa-testrunner-components/src/test/java/com/yahoo/vespa/hosted/testrunner/TestRunnerTest.java
+++ b/vespa-testrunner-components/src/test/java/com/yahoo/vespa/hosted/testrunner/TestRunnerTest.java
@@ -44,22 +44,6 @@ public class TestRunnerTest {
}
@Test
- public void ansiCodesAreConvertedToHtml() throws InterruptedException {
- TestRunner runner = new TestRunner(artifactsPath, testPath, configFile, settingsFile,
- __ -> new ProcessBuilder("echo", Ansi.ansi().fg(Ansi.Color.RED).a("Hello!").reset().toString()));
- runner.test(SYSTEM_TEST, new byte[0]);
- while (runner.getStatus() == TestRunner.Status.RUNNING) {
- Thread.sleep(10);
- }
- Iterator<LogRecord> log = runner.getLog(-1).iterator();
- log.next();
- LogRecord record = log.next();
- assertEquals("<span style=\"color: red;\">Hello!</span>", record.getMessage());
- assertEquals(0, runner.getLog(record.getSequenceNumber()).size());
- assertEquals(TestRunner.Status.SUCCESS, runner.getStatus());
- }
-
- @Test
public void noTestJarIsAFailure() throws InterruptedException, IOException {
Files.delete(artifactsPath.resolve("my-tests.jar"));
TestRunner runner = new TestRunner(artifactsPath, testPath, configFile, settingsFile,