X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.tests.modelled%2Fsrc%2Forg%2Fsimantics%2Ftests%2Fmodelled%2Fjunit%2Fv2%2FModelledSTSRunner.java;h=31077a080d75d8e2c18352dab1a2dbdc264d70f4;hp=e77224b58c72caa59b1e290831e817803844368e;hb=2fb951a4a92e4a863a54c645bae18c2b9aa274bf;hpb=1ec0193a5a5b8f368b03adb24acd762838ddf8ea diff --git a/bundles/org.simantics.tests.modelled/src/org/simantics/tests/modelled/junit/v2/ModelledSTSRunner.java b/bundles/org.simantics.tests.modelled/src/org/simantics/tests/modelled/junit/v2/ModelledSTSRunner.java index e77224b58..31077a080 100644 --- a/bundles/org.simantics.tests.modelled/src/org/simantics/tests/modelled/junit/v2/ModelledSTSRunner.java +++ b/bundles/org.simantics.tests.modelled/src/org/simantics/tests/modelled/junit/v2/ModelledSTSRunner.java @@ -3,6 +3,7 @@ package org.simantics.tests.modelled.junit.v2; import java.util.ArrayList; import java.util.Collection; import java.util.List; +import java.util.stream.Collectors; import org.eclipse.core.runtime.NullProgressMonitor; import org.junit.runner.Description; @@ -18,6 +19,9 @@ import org.simantics.tests.modelled.utils.STSSuiteTestCollector; public class ModelledSTSRunner extends ParentRunner { + public static final String INCLUSION_FILTER = "org.simantics.tests.modelled.singleTestIncludeFilter"; + public static final String EXCLUSION_FILTER = "org.simantics.tests.modelled.excludeFilter"; + private final List children; public ModelledSTSRunner(Class testClass) throws InitializationError { @@ -25,8 +29,33 @@ public class ModelledSTSRunner extends ParentRunner { try { initialize0(); Collection suites = STSSuiteTestCollector.collectTests(); - children = new ArrayList<>(suites.size()); - for (ModelledSTSSuite suite : suites) { + + // Filter exclusions + String exclusionFilter = System.getProperty(EXCLUSION_FILTER); + Collection filtered; + if (exclusionFilter != null) { + String[] filters = exclusionFilter.split(","); + filtered = suites.stream().filter(s -> !startsWithAny(s, filters)).collect(Collectors.toList()); + } else { + filtered = suites; + } + // Filter inclusions +// String inclusionFilter = System.getProperty(INCLUSION_FILTER); +// Collection included; +// if (inclusionFilter != null) { +// String[] filters = inclusionFilter.split(","); +// included = filtered.stream().filter(s -> startsWithAny(s, filters)).collect(Collectors.toList()); +// } else { +// included = filtered; +// } + + // Sort by priority +// List sorted = included.stream().sorted((o1, o2) -> Integer.compare(o1.getPriority(), o2.getPriority())).collect(Collectors.toList()); + List sorted = filtered.stream().sorted((o1, o2) -> Integer.compare(o1.getPriority(), o2.getPriority())).collect(Collectors.toList()); + + + children = new ArrayList<>(sorted.size()); + for (ModelledSTSSuite suite : sorted) { children.add(new ModelledSTSSuiteRunner(suite)); } } catch (Exception e) { @@ -34,6 +63,15 @@ public class ModelledSTSRunner extends ParentRunner { } } + private static boolean startsWithAny(ModelledSTSSuite suite, String[] filters) { + for (String filter : filters) { + if (suite.getName().contains(filter)) { + return true; + } + } + return false; + } + @Override protected List getChildren() { return children; @@ -72,11 +110,13 @@ public class ModelledSTSRunner extends ParentRunner { private void initialize0() throws Exception { AcornTests.newSimanticsWorkspace(null, null); + org.simantics.debug.browser.internal.Activator.getDefault().startDebugServer(); initialize(); } private void deinitialize0() throws Exception { deinitialize(); + org.simantics.debug.browser.internal.Activator.getDefault().stopDebugServer(); Simantics.shutdown(new NullProgressMonitor()); } }