summaryrefslogtreecommitdiffstats
path: root/vespa-osgi-testrunner
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2022-06-02 10:30:18 +0200
committerjonmv <venstad@gmail.com>2022-06-02 10:30:18 +0200
commiteb4d4dbf892bdabd4b212aa0050b88e2a95114bb (patch)
treea0ec849ac3f12f99f808bf8177d92c34d4fbe4cb /vespa-osgi-testrunner
parent972d7ac82e62bb51c4e16d5b740eaa5ce45cdfa8 (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.java14
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);
}