aboutsummaryrefslogtreecommitdiffstats
path: root/vespa-osgi-testrunner
diff options
context:
space:
mode:
authorMorten Tokle <mortent@verizonmedia.com>2020-08-28 09:06:31 +0200
committerMorten Tokle <mortent@verizonmedia.com>2020-08-28 09:06:31 +0200
commit57cb650dc6601c2da5644a9ed75391d2d2abb572 (patch)
tree895ce2e44b9dc267662a07543efd39701d4dc735 /vespa-osgi-testrunner
parent6b565b21a2808f13bf890ca4113e10b29063f5ba (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.java7
-rw-r--r--vespa-osgi-testrunner/src/test/java/com/yahoo/vespa/testrunner/TestRunnerHandlerTest.java16
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);