diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2022-02-22 16:04:16 +0100 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2022-02-22 16:04:16 +0100 |
commit | 5d606e1287e754b427cca21c6e5565cb78a36ba0 (patch) | |
tree | 50c06b3465312e3ccdc37fbf9b0c43cf1bfd2633 /vespa-osgi-testrunner/src/test | |
parent | dac253d8882407898cbeb0e57339e18135c8defd (diff) |
Add NO_TESTS status to simplify detecting that no tests are available
Diffstat (limited to 'vespa-osgi-testrunner/src/test')
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(), |