summaryrefslogtreecommitdiffstats
path: root/vespa-testrunner-components
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-testrunner-components
parentdac253d8882407898cbeb0e57339e18135c8defd (diff)
Add NO_TESTS status to simplify detecting that no tests are available
Diffstat (limited to 'vespa-testrunner-components')
-rw-r--r--vespa-testrunner-components/src/main/java/com/yahoo/vespa/hosted/testrunner/TestRunner.java12
-rw-r--r--vespa-testrunner-components/src/test/java/com/yahoo/vespa/hosted/testrunner/TestRunnerTest.java17
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