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/main/java/com/yahoo/vespa/testrunner/AggregateTestRunner.java | |
parent | dac253d8882407898cbeb0e57339e18135c8defd (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.java | 31 |
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); |