aboutsummaryrefslogtreecommitdiffstats
path: root/vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/AggregateTestRunner.java
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/main/java/com/yahoo/vespa/testrunner/AggregateTestRunner.java
parentdac253d8882407898cbeb0e57339e18135c8defd (diff)
Add NO_TESTS status to simplify detecting that no tests are available
Diffstat (limited to 'vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/AggregateTestRunner.java')
-rw-r--r--vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/AggregateTestRunner.java31
1 files changed, 5 insertions, 26 deletions
diff --git a/vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/AggregateTestRunner.java b/vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/AggregateTestRunner.java
index 5637d25df71..bc4b776568a 100644
--- a/vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/AggregateTestRunner.java
+++ b/vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/AggregateTestRunner.java
@@ -7,24 +7,13 @@ import java.util.List;
import java.util.Objects;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.atomic.AtomicInteger;
-import java.util.logging.Level;
import java.util.logging.LogRecord;
-import static java.util.stream.Collectors.toUnmodifiableList;
-
/**
* @author jonmv
*/
public class AggregateTestRunner implements TestRunner {
- static final TestRunner noRunner = new TestRunner() {
- final LogRecord record = new LogRecord(Level.WARNING, "No tests were found");
- @Override public Collection<LogRecord> getLog(long after) { return List.of(record); }
- @Override public Status getStatus() { return Status.FAILURE; }
- @Override public CompletableFuture<?> test(Suite suite, byte[] config) { return CompletableFuture.completedFuture(null); }
- @Override public boolean isSupported() { return true; }
- };
-
private final List<TestRunner> wrapped;
private final AtomicInteger current = new AtomicInteger(-1);
@@ -33,8 +22,7 @@ public class AggregateTestRunner implements TestRunner {
}
public static TestRunner of(Collection<TestRunner> testRunners) {
- List<TestRunner> supported = testRunners.stream().filter(TestRunner::isSupported).collect(toUnmodifiableList());
- return supported.isEmpty() ? noRunner : new AggregateTestRunner(supported);
+ return new AggregateTestRunner(List.copyOf(testRunners));
}
@Override
@@ -51,17 +39,13 @@ public class AggregateTestRunner implements TestRunner {
if (current.get() == -1)
return Status.NOT_STARTED;
- boolean failed = false;
- boolean inconclusive = false;
+ Status status = Status.NO_TESTS;
for (int i = 0; i <= current.get(); i++) {
if (i == wrapped.size())
- return failed ? Status.FAILURE : inconclusive ? Status.INCONCLUSIVE : Status.SUCCESS;
+ return status;
- switch (wrapped.get(i).getStatus()) {
- case ERROR: return Status.ERROR;
- case INCONCLUSIVE: inconclusive = true; break;
- case FAILURE: failed = true;
- }
+ Status next = wrapped.get(i).getStatus();
+ status = status.ordinal() < next.ordinal() ? status : next;
}
return Status.RUNNING;
}
@@ -89,11 +73,6 @@ public class AggregateTestRunner implements TestRunner {
}
@Override
- public boolean isSupported() {
- return wrapped.stream().anyMatch(TestRunner::isSupported);
- }
-
- @Override
public TestReport getReport() {
return wrapped.stream().map(TestRunner::getReport).filter(Objects::nonNull)
.reduce(AggregateTestRunner::merge).orElse(null);