diff options
author | jonmv <venstad@gmail.com> | 2022-06-02 10:30:18 +0200 |
---|---|---|
committer | jonmv <venstad@gmail.com> | 2022-06-02 10:30:18 +0200 |
commit | eb4d4dbf892bdabd4b212aa0050b88e2a95114bb (patch) | |
tree | a0ec849ac3f12f99f808bf8177d92c34d4fbe4cb /vespa-osgi-testrunner | |
parent | 972d7ac82e62bb51c4e16d5b740eaa5ce45cdfa8 (diff) |
Debug test runner failures
Diffstat (limited to 'vespa-osgi-testrunner')
-rw-r--r-- | vespa-osgi-testrunner/src/main/java/com/yahoo/vespa/testrunner/AggregateTestRunner.java | 14 |
1 files changed, 13 insertions, 1 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 15aeef18013..d00184f8b04 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 @@ -5,15 +5,20 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.concurrent.CompletableFuture; +import java.util.logging.Level; import java.util.logging.LogRecord; +import java.util.logging.Logger; /** * @author jonmv */ public class AggregateTestRunner implements TestRunner { + private static final Logger log = Logger.getLogger(AggregateTestRunner.class.getName()); + private final List<TestRunner> wrapped; private int current = -1; + private boolean error = false; private final Object monitor = new Object(); private AggregateTestRunner(List<TestRunner> testRunners) { @@ -36,6 +41,7 @@ public class AggregateTestRunner implements TestRunner { @Override public Status getStatus() { + if (error) return Status.ERROR; synchronized (monitor) { if (current == -1) return Status.NOT_STARTED; @@ -70,7 +76,13 @@ public class AggregateTestRunner implements TestRunner { vessel.whenComplete((__, ___) -> { synchronized (monitor) { if (++current < wrapped.size()) - runNext(suite, config, wrapped.get(current).test(suite, config), aggregate); + try { + runNext(suite, config, wrapped.get(current).test(suite, config), aggregate); + } + catch (Throwable t) { + log.log(Level.SEVERE, "Failed running next suite (" + wrapped.get(current) + ")", t); + error = true; + } else aggregate.complete(null); } |