X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.tests.modelled%2Fsrc%2Forg%2Fsimantics%2Ftests%2Fmodelled%2Futils%2FModelledSTSTest.java;h=492f8d11aa31380a0a50e15862d56b5f4a21475c;hb=HEAD;hp=33e4c25e2fc6b2f121bd3e6264a1ede8b3f09068;hpb=674fafd9fc3c75e46cbb73dc3c413e0cbc83b187;p=simantics%2Fplatform.git 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 33e4c25e2..492f8d11a 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 @@ -11,9 +11,9 @@ import java.util.Set; import org.simantics.scl.compiler.commands.CommandSession; import org.simantics.scl.compiler.commands.TestScriptExecutor; +import org.simantics.scl.compiler.elaboration.java.Builtins; +import org.simantics.scl.compiler.elaboration.java.JavaModule; import org.simantics.scl.compiler.module.coverage.CombinedCoverage; -import org.simantics.scl.compiler.module.options.ModuleCompilationOptions; -import org.simantics.scl.compiler.module.options.ModuleCompilationOptionsAdvisor; import org.simantics.scl.compiler.module.repository.ModuleRepository; import org.simantics.scl.compiler.types.Type; import org.simantics.scl.compiler.types.Types; @@ -24,20 +24,24 @@ import org.simantics.scl.runtime.reporting.SCLReportingHandler; public class ModelledSTSTest { private final String name; + private final String parentName; private final String code; private final int priority; private final boolean ignored; + private Set imports; private Set dependencies; private Set unresolvedDependencies; - + private CombinedCoverage coverage; private Map variables; - ModelledSTSTest(String name, String code, int priority, boolean ignored, Set dependencies, Map variables) { + ModelledSTSTest(String name, String parentName, String code, int priority, boolean ignored, Set imports, Set dependencies, Map variables) { this.name = name; + this.parentName = parentName; this.code = code; this.priority = priority; this.ignored = ignored; + this.imports = imports; this.dependencies = dependencies; this.unresolvedDependencies = new HashSet<>(dependencies); this.variables = variables; @@ -47,6 +51,10 @@ public class ModelledSTSTest { return name; } + public String getParentName() { + return parentName; + } + public String getCode() { return code; } @@ -91,59 +99,67 @@ public class ModelledSTSTest { return value; } } - + public List run(List vars) throws IOException { - ModuleRepository repo = new ModuleRepository(SCLOsgi.SOURCE_REPOSITORY); +// ModuleRepository repo = new ModuleRepository(SCLOsgi.SOURCE_REPOSITORY); + ModuleRepository repo = SCLOsgi.MODULE_REPOSITORY; + 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; +// 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); // } - // } - return new ModuleCompilationOptions(coverage); - } - }); - +// }); + SCLReportingHandler handler = (SCLReportingHandler) SCLContext.getCurrent().get(SCLReportingHandler.REPORTING_HANDLER); - CommandSession session = new CommandSession(repo, handler); - + session = new CommandSession(repo, handler); + + for(String imp : imports) { + session.execute("import \"" + imp + "\""); + } + 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(); + + new TestScriptExecutor(session, new BufferedReader(new StringReader(code)), handler, false).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(); +// repo.flush(); + Builtins.flush(); + JavaModule.flush(); } } public Set getDependencies() { return dependencies; } - + public Set getUnresolvedDependencies() { return unresolvedDependencies; } - + public boolean resolveDependency(String testDep) { return unresolvedDependencies.remove(testDep); } @@ -154,6 +170,7 @@ public class ModelledSTSTest { int result = 1; result = prime * result + ((code == null) ? 0 : code.hashCode()); result = prime * result + ((coverage == null) ? 0 : coverage.hashCode()); + result = prime * result + ((imports == null) ? 0 : imports.hashCode()); result = prime * result + ((dependencies == null) ? 0 : dependencies.hashCode()); result = prime * result + (ignored ? 1231 : 1237); result = prime * result + ((name == null) ? 0 : name.hashCode()); @@ -182,6 +199,11 @@ public class ModelledSTSTest { return false; } else if (!coverage.equals(other.coverage)) return false; + if (imports== null) { + if (other.imports != null) + return false; + } else if (!imports.equals(other.imports)) + return false; if (dependencies == null) { if (other.dependencies != null) return false;