summaryrefslogtreecommitdiffstats
path: root/vespa-osgi-testrunner/src/test
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2022-02-22 16:04:16 +0100
committerJon Marius Venstad <venstad@gmail.com>2022-02-22 16:04:16 +0100
commit5d606e1287e754b427cca21c6e5565cb78a36ba0 (patch)
tree50c06b3465312e3ccdc37fbf9b0c43cf1bfd2633 /vespa-osgi-testrunner/src/test
parentdac253d8882407898cbeb0e57339e18135c8defd (diff)
Add NO_TESTS status to simplify detecting that no tests are available
Diffstat (limited to 'vespa-osgi-testrunner/src/test')
-rw-r--r--vespa-osgi-testrunner/src/test/java/com/yahoo/vespa/testrunner/AggregateTestRunnerTest.java39
-rw-r--r--vespa-osgi-testrunner/src/test/java/com/yahoo/vespa/testrunner/TestRunnerHandlerTest.java24
-rw-r--r--vespa-osgi-testrunner/src/test/java/com/yahoo/vespa/testrunner/VespaCliTestRunnerTest.java11
3 files changed, 19 insertions, 55 deletions
diff --git a/vespa-osgi-testrunner/src/test/java/com/yahoo/vespa/testrunner/AggregateTestRunnerTest.java b/vespa-osgi-testrunner/src/test/java/com/yahoo/vespa/testrunner/AggregateTestRunnerTest.java
index a7ddbbf3fcc..29d0a1a4b1e 100644
--- a/vespa-osgi-testrunner/src/test/java/com/yahoo/vespa/testrunner/AggregateTestRunnerTest.java
+++ b/vespa-osgi-testrunner/src/test/java/com/yahoo/vespa/testrunner/AggregateTestRunnerTest.java
@@ -14,6 +14,7 @@ import static com.yahoo.vespa.testrunner.TestRunner.Status.ERROR;
import static com.yahoo.vespa.testrunner.TestRunner.Status.FAILURE;
import static com.yahoo.vespa.testrunner.TestRunner.Status.INCONCLUSIVE;
import static com.yahoo.vespa.testrunner.TestRunner.Status.NOT_STARTED;
+import static com.yahoo.vespa.testrunner.TestRunner.Status.NO_TESTS;
import static com.yahoo.vespa.testrunner.TestRunner.Status.RUNNING;
import static com.yahoo.vespa.testrunner.TestRunner.Status.SUCCESS;
import static java.util.stream.Collectors.toList;
@@ -31,30 +32,34 @@ class AggregateTestRunnerTest {
@Test
void onlySupportedRunnersAreUsed() {
- MockTestRunner unsupported = new MockTestRunner(false);
- MockTestRunner suppported = new MockTestRunner(true);
- TestRunner runner = AggregateTestRunner.of(List.of(unsupported, suppported));
+ MockTestRunner unsupported = new MockTestRunner();
+ unsupported.status = NO_TESTS;
+ MockTestRunner supported = new MockTestRunner();
+ supported.status = SUCCESS;
+ TestRunner runner = AggregateTestRunner.of(List.of(unsupported, supported));
CompletableFuture<?> future = runner.test(null, null);
assertFalse(future.isDone());
- assertNull(unsupported.future);
- assertNotNull(suppported.future);
- suppported.future.complete(null);
+ assertNotNull(unsupported.future);
+ assertNull(supported.future);
+ unsupported.future.complete(null);
+ assertNotNull(supported.future);
+ supported.future.complete(null);
assertTrue(future.isDone());
}
@Test
void noTestsResultInFailure() {
- TestRunner runner = AggregateTestRunner.of(List.of(new MockTestRunner(false)));
- assertEquals("No tests were found", runner.getLog(-1).iterator().next().getMessage());
- assertSame(FAILURE, runner.getStatus());
+ TestRunner runner = AggregateTestRunner.of(List.of());
+ runner.test(null, null);
+ assertSame(NO_TESTS, runner.getStatus());
}
@Test
void chainedRunners() {
LogRecord record1 = new LogRecord(Level.INFO, "one");
LogRecord record2 = new LogRecord(Level.INFO, "two");
- MockTestRunner first = new MockTestRunner(true);
- MockTestRunner second = new MockTestRunner(true);
+ MockTestRunner first = new MockTestRunner();
+ MockTestRunner second = new MockTestRunner();
TestRunner runner = AggregateTestRunner.of(List.of(first, second));
assertSame(NOT_STARTED, runner.getStatus());
assertEquals(List.of(), runner.getLog(-1));
@@ -103,7 +108,7 @@ class AggregateTestRunnerTest {
assertFalse(first.future.isDone());
assertTrue(second.future.isDone());
assertEquals(List.of(record1), runner.getLog(-1));
- assertEquals(ERROR, runner.getStatus());
+ assertEquals(RUNNING, runner.getStatus());
// First wrapped runner completes exceptionally, but the second should be started as usual.
first.future.completeExceptionally(new RuntimeException("error"));
@@ -140,15 +145,10 @@ class AggregateTestRunnerTest {
static class MockTestRunner implements TestRunner {
final List<LogRecord> log = new ArrayList<>();
- final boolean supported;
CompletableFuture<?> future;
Status status = NOT_STARTED;
TestReport report;
- public MockTestRunner(boolean supported) {
- this.supported = supported;
- }
-
@Override
public Collection<LogRecord> getLog(long after) {
return log.stream().filter(record -> record.getSequenceNumber() > after).collect(toList());
@@ -165,11 +165,6 @@ class AggregateTestRunnerTest {
}
@Override
- public boolean isSupported() {
- return supported;
- }
-
- @Override
public TestReport getReport() {
return report;
}
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 37ab8550357..9b08e398564 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
@@ -83,7 +83,6 @@ class TestRunnerHandlerTest {
@Test
public void returnsEmptyResponsesWhenReportNotReady() throws IOException {
TestRunner testRunner = mock(TestRunner.class);
- when(testRunner.isSupported()).thenReturn(true);
when(testRunner.getReport()).thenReturn(null);
testRunnerHandler = new TestRunnerHandler(
Executors.newSingleThreadExecutor(),
@@ -104,24 +103,6 @@ class TestRunnerHandlerTest {
}
}
- @Test
- public void usesLegacyTestRunnerWhenNotSupported() throws IOException {
- TestRunner testRunner = mock(TestRunner.class);
- when(testRunner.isSupported()).thenReturn(false);
- TestRunner legacyTestRunner = mock(TestRunner.class);
- when(legacyTestRunner.isSupported()).thenReturn(true);
- when(legacyTestRunner.getLog(anyLong())).thenReturn(List.of(logRecord("Legacy log message")));
- TestRunner aggregate = AggregateTestRunner.of(List.of(testRunner, legacyTestRunner));
- testRunnerHandler = new TestRunnerHandler(Executors.newSingleThreadExecutor(), aggregate);
-
- // Prime the aggregate to check for logs in the wrapped runners.
- aggregate.test(TestRunner.Suite.PRODUCTION_TEST, new byte[0]);
- HttpResponse response = testRunnerHandler.handle(HttpRequest.createTestRequest("http://localhost:1234/tester/v1/log", GET));
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- response.render(out);
- 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 results. */
private static LogRecord logRecord(String logMessage) {
LogRecord logRecord = new LogRecord(Level.INFO, logMessage);
@@ -154,11 +135,6 @@ class TestRunnerHandlerTest {
}
@Override
- public boolean isSupported() {
- return true;
- }
-
- @Override
public TestRunner.Status getStatus() {
return status;
}
diff --git a/vespa-osgi-testrunner/src/test/java/com/yahoo/vespa/testrunner/VespaCliTestRunnerTest.java b/vespa-osgi-testrunner/src/test/java/com/yahoo/vespa/testrunner/VespaCliTestRunnerTest.java
index 46d7b78cdea..5fd73bb4494 100644
--- a/vespa-osgi-testrunner/src/test/java/com/yahoo/vespa/testrunner/VespaCliTestRunnerTest.java
+++ b/vespa-osgi-testrunner/src/test/java/com/yahoo/vespa/testrunner/VespaCliTestRunnerTest.java
@@ -2,7 +2,6 @@
package com.yahoo.vespa.testrunner;
import ai.vespa.hosted.api.TestConfig;
-import com.yahoo.vespa.testrunner.VespaCliTestRunner.NoTestsException;
import org.junit.jupiter.api.Test;
import java.io.IOException;
@@ -12,9 +11,7 @@ import java.nio.file.Path;
import java.util.List;
import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertNull;
/**
* @author jonmv
@@ -48,13 +45,9 @@ class VespaCliTestRunnerTest {
Path tests = Files.createDirectory(temp.resolve("tests"));
Path artifacts = Files.createDirectory(temp.resolve("artifacts"));
VespaCliTestRunner runner = new VespaCliTestRunner(artifacts, tests);
- assertFalse(runner.isSupported());
Path systemTests = Files.createDirectory(tests.resolve("system-test"));
- assertTrue(runner.isSupported());
- NoTestsException ise = assertThrows(NoTestsException.class,
- () -> runner.testRunProcessBuilder(TestRunner.Suite.STAGING_TEST, testConfig));
- assertEquals("No tests found, for suite 'STAGING_TEST'", ise.getMessage());
+ assertNull(runner.testRunProcessBuilder(TestRunner.Suite.STAGING_TEST, testConfig));
ProcessBuilder builder = runner.testRunProcessBuilder(TestRunner.Suite.SYSTEM_TEST, testConfig);
assertEquals(List.of("vespa", "test", systemTests.toAbsolutePath().toString(),