diff options
Diffstat (limited to 'vespa-testrunner-components')
2 files changed, 14 insertions, 15 deletions
diff --git a/vespa-testrunner-components/src/main/java/com/yahoo/vespa/hosted/testrunner/TestRunner.java b/vespa-testrunner-components/src/main/java/com/yahoo/vespa/hosted/testrunner/TestRunner.java index 69296c23fa0..0823c2b4037 100644 --- a/vespa-testrunner-components/src/main/java/com/yahoo/vespa/hosted/testrunner/TestRunner.java +++ b/vespa-testrunner-components/src/main/java/com/yahoo/vespa/hosted/testrunner/TestRunner.java @@ -109,8 +109,13 @@ public class TestRunner implements com.yahoo.vespa.testrunner.TestRunner { throw new IllegalArgumentException("Tests are already running; should not receive this request now."); log.clear(); - status = Status.RUNNING; + if ( ! hasTestsJar()) { + status = Status.NO_TESTS; + return CompletableFuture.completedFuture(null); + } + + status = Status.RUNNING; return CompletableFuture.runAsync(() -> runTests(toProfile(suite), testConfig)); } @@ -124,8 +129,7 @@ public class TestRunner implements com.yahoo.vespa.testrunner.TestRunner { return status; } - @Override - public boolean isSupported() { + private boolean hasTestsJar() { return listFiles(artifactsPath).stream().anyMatch(file -> file.toString().endsWith("tests.jar")); } @@ -163,7 +167,7 @@ public class TestRunner implements com.yahoo.vespa.testrunner.TestRunner { record.setThrown(exception); logger.log(record); log.put(record.getSequenceNumber(), record); - status = exception instanceof NoTestsException ? Status.FAILURE : Status.ERROR; + status = Status.ERROR; return; } status = success ? Status.SUCCESS : Status.FAILURE; diff --git a/vespa-testrunner-components/src/test/java/com/yahoo/vespa/hosted/testrunner/TestRunnerTest.java b/vespa-testrunner-components/src/test/java/com/yahoo/vespa/hosted/testrunner/TestRunnerTest.java index 2b2c30790c9..8529f01de78 100644 --- a/vespa-testrunner-components/src/test/java/com/yahoo/vespa/hosted/testrunner/TestRunnerTest.java +++ b/vespa-testrunner-components/src/test/java/com/yahoo/vespa/hosted/testrunner/TestRunnerTest.java @@ -11,11 +11,13 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.Iterator; +import java.util.concurrent.ExecutionException; import java.util.logging.LogRecord; import static com.yahoo.vespa.testrunner.TestRunner.Suite.STAGING_TEST; import static com.yahoo.vespa.testrunner.TestRunner.Suite.SYSTEM_TEST; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; /** @@ -44,20 +46,13 @@ public class TestRunnerTest { } @Test - public void noTestJarIsAFailure() throws InterruptedException, IOException { + public void noTestJarIsANoTests() throws InterruptedException, IOException, ExecutionException { Files.delete(artifactsPath.resolve("my-tests.jar")); TestRunner runner = new TestRunner(artifactsPath, testPath, configFile, settingsFile, __ -> new ProcessBuilder("This is a command that doesn't exist, for sure!")); - runner.test(SYSTEM_TEST, new byte[0]); - while (runner.getStatus() == TestRunner.Status.RUNNING) { - Thread.sleep(10); - } - Iterator<LogRecord> log = runner.getLog(-1).iterator(); - log.next(); - LogRecord record = log.next(); - assertEquals("Failed to execute maven command: This is a command that doesn't exist, for sure!", record.getMessage()); - assertTrue(record.getThrown() instanceof TestRunner.NoTestsException); - assertEquals(TestRunner.Status.FAILURE, runner.getStatus()); + runner.test(SYSTEM_TEST, new byte[0]).get(); + assertFalse(runner.getLog(-1).iterator().hasNext()); + assertEquals(TestRunner.Status.NO_TESTS, runner.getStatus()); } @Test |