diff options
author | Morten Tokle <mortent@verizonmedia.com> | 2020-08-28 09:06:31 +0200 |
---|---|---|
committer | Morten Tokle <mortent@verizonmedia.com> | 2020-08-28 09:06:31 +0200 |
commit | 57cb650dc6601c2da5644a9ed75391d2d2abb572 (patch) | |
tree | 895ce2e44b9dc267662a07543efd39701d4dc735 /vespa-osgi-testrunner | |
parent | 6b565b21a2808f13bf890ca4113e10b29063f5ba (diff) |
Handle report not ready
Diffstat (limited to 'vespa-osgi-testrunner')
-rw-r--r-- | vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/TestRunnerHandler.java | 7 | ||||
-rw-r--r-- | vespa-osgi-testrunner/src/test/java/com/yahoo/vespa/testrunner/TestRunnerHandlerTest.java | 16 |
2 files changed, 21 insertions, 2 deletions
diff --git a/vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/TestRunnerHandler.java b/vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/TestRunnerHandler.java index 76e72865d26..3a9c9caf863 100644 --- a/vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/TestRunnerHandler.java +++ b/vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/TestRunnerHandler.java @@ -24,6 +24,7 @@ import java.io.OutputStream; import java.io.PrintStream; import java.time.Instant; import java.util.Collection; +import java.util.Collections; import java.util.List; import java.util.Optional; import java.util.concurrent.Executor; @@ -75,12 +76,14 @@ public class TestRunnerHandler extends LoggingRequestHandler { String path = request.getUri().getPath(); if (path.equals("/tester/v1/log")) { if (useOsgiMode) { - TestReport report = junitRunner.getReport(); Instant fetchRecordsAfter = Optional.ofNullable(request.getProperty("after")) .map(Long::parseLong) .map(Instant::ofEpochSecond) .orElse(Instant.EPOCH); - List<LogRecord> logRecords = report.logLines().stream() + + List<LogRecord> logRecords = Optional.ofNullable(junitRunner.getReport()) + .map(TestReport::logLines) + .orElse(Collections.emptyList()).stream() .filter(record -> record.getInstant().isAfter(fetchRecordsAfter)) .collect(Collectors.toList()); return new SlimeJsonResponse(logToSlime(logRecords)); diff --git a/vespa-osgi-testrunner/src/test/java/com/yahoo/vespa/testrunner/TestRunnerHandlerTest.java b/vespa-osgi-testrunner/src/test/java/com/yahoo/vespa/testrunner/TestRunnerHandlerTest.java index 580404d3744..18e857089a0 100644 --- a/vespa-osgi-testrunner/src/test/java/com/yahoo/vespa/testrunner/TestRunnerHandlerTest.java +++ b/vespa-osgi-testrunner/src/test/java/com/yahoo/vespa/testrunner/TestRunnerHandlerTest.java @@ -79,6 +79,22 @@ public class TestRunnerHandlerTest { } @Test + public void returnsEmptyLogWhenReportNotReady() throws IOException { + TestRunner testRunner = mock(TestRunner.class); + when(testRunner.isSupported()).thenReturn(true); + when(testRunner.getReport()).thenReturn(null); + testRunnerHandler = new TestRunnerHandler( + Executors.newSingleThreadExecutor(), + AccessLog.voidAccessLog(), + testRunner, null); + + HttpResponse response = testRunnerHandler.handle(HttpRequest.createTestRequest("http://localhost:1234/tester/v1/log", GET)); + ByteArrayOutputStream out = new ByteArrayOutputStream(); + response.render(out); + assertEquals("{\"logRecords\":[]}", new String(out.toByteArray())); + } + + @Test public void usesLegacyTestRunnerWhenNotSupported() throws IOException { TestRunner testRunner = mock(TestRunner.class); when(testRunner.isSupported()).thenReturn(false); |