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;fp=bundles%2Forg.simantics.tests.modelled%2Fsrc%2Forg%2Fsimantics%2Ftests%2Fmodelled%2Futils%2FModelledSTSTest.java;h=492f8d11aa31380a0a50e15862d56b5f4a21475c;hp=78964403f95057464a929d8ea81e0622dea54a8b;hb=013df68afa182f2c8d0b8a662437e3bcb889d61d;hpb=7704490bfa8dc36625615df61cfe18d01d86ff18 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 78964403f..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 @@ -28,18 +28,20 @@ public class ModelledSTSTest { 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 parentName, 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; @@ -97,14 +99,14 @@ public class ModelledSTSTest { return value; } } - + public List run(List vars) throws IOException { // 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 @@ -119,24 +121,28 @@ public class ModelledSTSTest { // return new ModuleCompilationOptions(coverage); // } // }); - + SCLReportingHandler handler = (SCLReportingHandler) SCLContext.getCurrent().get(SCLReportingHandler.REPORTING_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 @@ -149,11 +155,11 @@ public class ModelledSTSTest { public Set getDependencies() { return dependencies; } - + public Set getUnresolvedDependencies() { return unresolvedDependencies; } - + public boolean resolveDependency(String testDep) { return unresolvedDependencies.remove(testDep); } @@ -164,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()); @@ -192,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;