mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
mark root node as terminated if some nodes aren't final
This commit is contained in:
+16
-2
@@ -94,9 +94,10 @@ public class GeneralIdBasedToSMTRunnerEventsConvertor extends GeneralTestEventsP
|
||||
|
||||
// We don't know whether process was destroyed by user
|
||||
// or it finished after all tests have been run
|
||||
// Lets assume, if at finish all suites except root suite are passed
|
||||
// Lets assume, if at finish all nodes except root suite have final state (passed, failed or ignored),
|
||||
// then all is ok otherwise process was terminated by user
|
||||
if (myRunningTestNodes.isEmpty()) {
|
||||
boolean completeTree = isTreeComplete();
|
||||
if (completeTree) {
|
||||
myTestsRootProxy.setFinished();
|
||||
} else {
|
||||
logProblem("Unexpected running nodes: " + myRunningTestNodes);
|
||||
@@ -110,6 +111,19 @@ public class GeneralIdBasedToSMTRunnerEventsConvertor extends GeneralTestEventsP
|
||||
});
|
||||
}
|
||||
|
||||
private boolean isTreeComplete() {
|
||||
if (!myRunningTestNodes.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
List<? extends SMTestProxy> children = myTestsRootProxy.getChildren();
|
||||
for (SMTestProxy child : children) {
|
||||
if (!child.isFinal() || child.wasTerminated()) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setPrinterProvider(@NotNull TestProxyPrinterProvider printerProvider) {
|
||||
myTestProxyPrinterProvider = printerProvider;
|
||||
|
||||
@@ -143,6 +143,13 @@ public class SMTestProxy extends AbstractTestProxy {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return true if the state is final (PASSED, FAILED, IGNORED, TERMINATED)
|
||||
*/
|
||||
public boolean isFinal() {
|
||||
return myState.isFinal();
|
||||
}
|
||||
|
||||
private void setStacktraceIfNotSet(@Nullable String stacktrace) {
|
||||
if (myStacktrace == null) myStacktrace = stacktrace;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user