summaryrefslogtreecommitdiffstats
path: root/vespa-osgi-testrunner/src/test
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2021-11-17 15:15:42 +0100
committerJon Marius Venstad <venstad@gmail.com>2021-11-17 15:15:42 +0100
commita2d325add6496dca8e7c396b722bf4e14bb65393 (patch)
tree7b69117004b71cde075af2de6768dfc67ce899b0 /vespa-osgi-testrunner/src/test
parente8e542a66a6bc9b2e33def248f208da63b7b934c (diff)
Revert "Merge pull request #20066 from vespa-engine/revert-20065-jonmv/vespa-cli-test-runner"
This reverts commit e8e542a66a6bc9b2e33def248f208da63b7b934c, reversing changes made to 69bd22c6dea4bae7d210a9ea36b31ecd8cd5c7fa.
Diffstat (limited to 'vespa-osgi-testrunner/src/test')
-rw-r--r--vespa-osgi-testrunner/src/test/java/com/yahoo/vespa/testrunner/TestRunnerHandlerTest.java57
1 files changed, 35 insertions, 22 deletions
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 0caac95ed34..a78dc077446 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
@@ -1,24 +1,25 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.testrunner;
-import ai.vespa.hosted.api.TestDescriptor;
import com.yahoo.container.jdisc.HttpRequest;
import com.yahoo.container.jdisc.HttpResponse;
import com.yahoo.test.json.JsonTestHelper;
-import com.yahoo.vespa.testrunner.legacy.LegacyTestRunner;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.time.Instant;
+import java.util.Collection;
import java.util.List;
import java.util.concurrent.Executors;
import java.util.logging.Level;
import java.util.logging.LogRecord;
+import java.util.stream.Collectors;
import static com.yahoo.jdisc.http.HttpRequest.Method.GET;
-import static org.junit.Assert.assertEquals;
+import static java.nio.charset.StandardCharsets.UTF_8;
+import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -47,7 +48,7 @@ public class TestRunnerHandlerTest {
testRunnerHandler = new TestRunnerHandler(
Executors.newSingleThreadExecutor(),
- new MockJunitRunner(LegacyTestRunner.Status.SUCCESS, testReport),
+ new MockJunitRunner(TestRunner.Status.SUCCESS, testReport),
null);
}
@@ -56,7 +57,7 @@ public class TestRunnerHandlerTest {
HttpResponse response = testRunnerHandler.handle(HttpRequest.createTestRequest("http://localhost:1234/tester/v1/report", GET));
ByteArrayOutputStream out = new ByteArrayOutputStream();
response.render(out);
- JsonTestHelper.assertJsonEquals(new String(out.toByteArray()), "{\"summary\":{\"total\":10,\"success\":1,\"failed\":2,\"ignored\":3,\"aborted\":4,\"failures\":[{\"testName\":\"Foo.bar()\",\"testError\":\"org.junit.ComparisonFailure: expected:<foo> but was:<bar>\",\"exception\":\"java.lang.RuntimeException: org.junit.ComparisonFailure: expected:<foo> but was:<bar>\\n\\tat Foo.bar(Foo.java:1123)\\n\"}]},\"output\":[\"Tests started\"]}");
+ JsonTestHelper.assertJsonEquals(out.toString(UTF_8), "{\"summary\":{\"total\":10,\"success\":1,\"failed\":2,\"ignored\":3,\"aborted\":4,\"failures\":[{\"testName\":\"Foo.bar()\",\"testError\":\"org.junit.ComparisonFailure: expected:<foo> but was:<bar>\",\"exception\":\"java.lang.RuntimeException: org.junit.ComparisonFailure: expected:<foo> but was:<bar>\\n\\tat Foo.bar(Foo.java:1123)\\n\"}]},\"output\":[\"Tests started\"]}");
}
@@ -65,18 +66,18 @@ public class TestRunnerHandlerTest {
HttpResponse response = testRunnerHandler.handle(HttpRequest.createTestRequest("http://localhost:1234/tester/v1/log", GET));
ByteArrayOutputStream out = new ByteArrayOutputStream();
response.render(out);
- JsonTestHelper.assertJsonEquals(new String(out.toByteArray()), "{\"logRecords\":[{\"id\":0,\"at\":1598432151660,\"type\":\"info\",\"message\":\"Tests started\"}]}");
+ JsonTestHelper.assertJsonEquals(out.toString(UTF_8), "{\"logRecords\":[{\"id\":0,\"at\":1598432151660,\"type\":\"info\",\"message\":\"Tests started\"}]}");
// Should not get old log
response = testRunnerHandler.handle(HttpRequest.createTestRequest("http://localhost:1234/tester/v1/log?after=0", GET));
out = new ByteArrayOutputStream();
response.render(out);
- assertEquals("{\"logRecords\":[]}", new String(out.toByteArray()));
+ assertEquals("{\"logRecords\":[]}", out.toString(UTF_8));
}
@Test
- public void returnsEmptyLogWhenReportNotReady() throws IOException {
+ public void returnsEmptyResponsesWhenReportNotReady() throws IOException {
TestRunner testRunner = mock(TestRunner.class);
when(testRunner.isSupported()).thenReturn(true);
when(testRunner.getReport()).thenReturn(null);
@@ -84,17 +85,26 @@ public class TestRunnerHandlerTest {
Executors.newSingleThreadExecutor(),
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()));
+ {
+ HttpResponse response = testRunnerHandler.handle(HttpRequest.createTestRequest("http://localhost:1234/tester/v1/log", GET));
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ response.render(out);
+ assertEquals("{\"logRecords\":[]}", out.toString(UTF_8));
+ }
+
+ {
+ HttpResponse response = testRunnerHandler.handle(HttpRequest.createTestRequest("http://localhost:1234/tester/v1/report", GET));
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ response.render(out);
+ assertEquals("", out.toString(UTF_8));
+ }
}
@Test
public void usesLegacyTestRunnerWhenNotSupported() throws IOException {
TestRunner testRunner = mock(TestRunner.class);
when(testRunner.isSupported()).thenReturn(false);
- LegacyTestRunner legacyTestRunner = mock(LegacyTestRunner.class);
+ TestRunner legacyTestRunner = mock(TestRunner.class);
when(legacyTestRunner.getLog(anyLong())).thenReturn(List.of(logRecord("Legacy log message")));
testRunnerHandler = new TestRunnerHandler(
@@ -104,7 +114,7 @@ public class TestRunnerHandlerTest {
HttpResponse response = testRunnerHandler.handle(HttpRequest.createTestRequest("http://localhost:1234/tester/v1/log", GET));
ByteArrayOutputStream out = new ByteArrayOutputStream();
response.render(out);
- JsonTestHelper.assertJsonEquals(new String(out.toByteArray()), "{\"logRecords\":[{\"id\":0,\"at\":1598432151660,\"type\":\"info\",\"message\":\"Legacy log message\"}]}");
+ JsonTestHelper.assertJsonEquals(out.toString(UTF_8), "{\"logRecords\":[{\"id\":0,\"at\":1598432151660,\"type\":\"info\",\"message\":\"Legacy log message\"}]}");
}
/* Creates a LogRecord that has a known instant and sequence number to get predictable serialization format */
@@ -117,17 +127,23 @@ public class TestRunnerHandlerTest {
private static class MockJunitRunner implements TestRunner {
- private final LegacyTestRunner.Status status;
+ private final TestRunner.Status status;
private final TestReport testReport;
- public MockJunitRunner(LegacyTestRunner.Status status, TestReport testReport) {
+ public MockJunitRunner(TestRunner.Status status, TestReport testReport) {
this.status = status;
this.testReport = testReport;
}
@Override
- public void executeTests(TestDescriptor.TestCategory category, byte[] testConfig) {
+ public void test(Suite suite, byte[] testConfig) { }
+
+ @Override
+ public Collection<LogRecord> getLog(long after) {
+ return getReport().logLines().stream()
+ .filter(entry -> entry.getSequenceNumber() > after)
+ .collect(Collectors.toList());
}
@Override
@@ -136,7 +152,7 @@ public class TestRunnerHandlerTest {
}
@Override
- public LegacyTestRunner.Status getStatus() {
+ public TestRunner.Status getStatus() {
return status;
}
@@ -145,9 +161,6 @@ public class TestRunnerHandlerTest {
return testReport;
}
- @Override
- public String getReportAsJson() {
- return getReport().toJson();
- }
}
+
}