Fixing exclude filter bug & adding query cache flushing
[simantics/platform.git] / bundles / org.simantics.tests.modelled / src / org / simantics / tests / modelled / junit / v2 / ModelledSTSRunner.java
index 31077a080d75d8e2c18352dab1a2dbdc264d70f4..393174906afeb46e7530a71cdef4091c818507ec 100644 (file)
@@ -13,12 +13,17 @@ import org.junit.runner.notification.RunNotifier;
 import org.junit.runners.ParentRunner;
 import org.junit.runners.model.InitializationError;
 import org.simantics.Simantics;
+import org.simantics.db.layer0.util.Layer0Utils;
 import org.simantics.db.testing.common.AcornTests;
 import org.simantics.tests.modelled.utils.ModelledSTSSuite;
 import org.simantics.tests.modelled.utils.STSSuiteTestCollector;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class ModelledSTSRunner extends ParentRunner<ModelledSTSSuiteRunner> {
 
+    private static final Logger LOGGER = LoggerFactory.getLogger(ModelledSTSRunner.class);
+    
     public static final String INCLUSION_FILTER = "org.simantics.tests.modelled.singleTestIncludeFilter";
     public static final String EXCLUSION_FILTER = "org.simantics.tests.modelled.excludeFilter";
     
@@ -26,6 +31,7 @@ public class ModelledSTSRunner extends ParentRunner<ModelledSTSSuiteRunner> {
 
     public ModelledSTSRunner(Class<?> testClass) throws InitializationError {
         super(testClass);
+
         try {
             initialize0();
             Collection<ModelledSTSSuite> suites = STSSuiteTestCollector.collectTests();
@@ -96,7 +102,12 @@ public class ModelledSTSRunner extends ParentRunner<ModelledSTSSuiteRunner> {
 
     @Override
     protected void runChild(ModelledSTSSuiteRunner child, RunNotifier notifier) {
-        child.run(notifier);
+        try {
+            child.run(notifier);
+        } finally {
+            // Clear query cache
+            Layer0Utils.queryDebugSupport("QueryControl.flush");
+        }
         // TODO: Add coverage reporting to ModelledSTSRunner
 //        CombinedCoverage cover = child.getCoverage();
 //        CoverageBuilder b = new CoverageBuilder();