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%2Futils%2FModelledSTSTest.java;h=c0ed9b191420604d49cfc73edd636d9f00928920;hp=3430696b81456e5959d35b001da7319df906baac;hb=2fb951a4a92e4a863a54c645bae18c2b9aa274bf;hpb=1ec0193a5a5b8f368b03adb24acd762838ddf8ea diff --git a/bundles/org.simantics.tests.modelled/src/org/simantics/tests/modelled/utils/ModelledSTSTest.java b/bundles/org.simantics.tests.modelled/src/org/simantics/tests/modelled/utils/ModelledSTSTest.java index 3430696b8..c0ed9b191 100644 --- a/bundles/org.simantics.tests.modelled/src/org/simantics/tests/modelled/utils/ModelledSTSTest.java +++ b/bundles/org.simantics.tests.modelled/src/org/simantics/tests/modelled/utils/ModelledSTSTest.java @@ -8,7 +8,6 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; -import java.util.regex.Pattern; import org.simantics.scl.compiler.commands.CommandSession; import org.simantics.scl.compiler.commands.TestScriptExecutor; @@ -95,41 +94,47 @@ public class ModelledSTSTest { public List run(List vars) throws IOException { ModuleRepository repo = new ModuleRepository(SCLOsgi.SOURCE_REPOSITORY); - repo.setAdvisor(new ModuleCompilationOptionsAdvisor() { + CommandSession session = null; + try { + repo.setAdvisor(new ModuleCompilationOptionsAdvisor() { + + @Override + public ModuleCompilationOptions getOptions(String moduleName) { + // TODO: default to false + boolean coverage = true; + // TODO: add moduleName filters back + // for (Pattern p : getModuleNameFilterPatterns()) { + // if (p.matcher(moduleName.toLowerCase()).find()) { + // coverage = true; + // break; + // } + // } + return new ModuleCompilationOptions(coverage); + } + }); - @Override - public ModuleCompilationOptions getOptions(String moduleName) { - // TODO: default to false - boolean coverage = true; - // TODO: add moduleName filters back -// for (Pattern p : getModuleNameFilterPatterns()) { -// if (p.matcher(moduleName.toLowerCase()).find()) { -// coverage = true; -// break; -// } -// } - return new ModuleCompilationOptions(coverage); - } - }); - - SCLReportingHandler handler = (SCLReportingHandler) SCLContext.getCurrent().get(SCLReportingHandler.REPORTING_HANDLER); - CommandSession session = new CommandSession(repo, handler); - - for (CommandSessionVariable var : vars) - session.setVariable(var.getName(), var.getType(), var.getValue()); - - for (Map.Entry entry : variables.entrySet()) - session.setVariable(entry.getKey(), Types.STRING, entry.getValue()); - - new TestScriptExecutor(session, new BufferedReader(new StringReader(code)), handler, true).execute(); - STSSuiteTestCollector.setTestCoverage(this, session); - - // Return variables from this session - List result = new ArrayList<>(); - for (String var : session.getVariables()) - result.add(new CommandSessionVariable(var, session.getVariableType(var), session.getVariableValue(var))); - - return result; + SCLReportingHandler handler = (SCLReportingHandler) SCLContext.getCurrent().get(SCLReportingHandler.REPORTING_HANDLER); + session = new CommandSession(repo, handler); + + for (CommandSessionVariable var : vars) + session.setVariable(var.getName(), var.getType(), var.getValue()); + + for (Map.Entry entry : variables.entrySet()) + session.setVariable(entry.getKey(), Types.STRING, entry.getValue()); + + new TestScriptExecutor(session, new BufferedReader(new StringReader(code)), handler, true).execute(); + STSSuiteTestCollector.setTestCoverage(this, session); + + // Return variables from this session + List result = new ArrayList<>(); + for (String var : session.getVariables()) + result.add(new CommandSessionVariable(var, session.getVariableType(var), session.getVariableValue(var))); + + return result; + } finally { + // remember to flush this repository + repo.flush(); + } } public Set getDependencies() { @@ -143,4 +148,65 @@ public class ModelledSTSTest { public boolean resolveDependency(String testDep) { return unresolvedDependencies.remove(testDep); } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((code == null) ? 0 : code.hashCode()); + result = prime * result + ((coverage == null) ? 0 : coverage.hashCode()); + result = prime * result + ((dependencies == null) ? 0 : dependencies.hashCode()); + result = prime * result + (ignored ? 1231 : 1237); + result = prime * result + ((name == null) ? 0 : name.hashCode()); + result = prime * result + priority; + result = prime * result + ((unresolvedDependencies == null) ? 0 : unresolvedDependencies.hashCode()); + result = prime * result + ((variables == null) ? 0 : variables.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + ModelledSTSTest other = (ModelledSTSTest) obj; + if (code == null) { + if (other.code != null) + return false; + } else if (!code.equals(other.code)) + return false; + if (coverage == null) { + if (other.coverage != null) + return false; + } else if (!coverage.equals(other.coverage)) + return false; + if (dependencies == null) { + if (other.dependencies != null) + return false; + } else if (!dependencies.equals(other.dependencies)) + return false; + if (ignored != other.ignored) + return false; + if (name == null) { + if (other.name != null) + return false; + } else if (!name.equals(other.name)) + return false; + if (priority != other.priority) + return false; + if (unresolvedDependencies == null) { + if (other.unresolvedDependencies != null) + return false; + } else if (!unresolvedDependencies.equals(other.unresolvedDependencies)) + return false; + if (variables == null) { + if (other.variables != null) + return false; + } else if (!variables.equals(other.variables)) + return false; + return true; + } }