X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=tests%2Forg.simantics.scl.compiler.tests%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Ftests%2FTestBase.java;h=fa90f524cb4364386de2d71ff13c64209877702a;hp=05ffd759fe19751e977668613d964e150644d94d;hb=172abed5dbf73c1304a7a95bb8504ea293556948;hpb=e67e00d01d30f362e7a4f599cbcf24770ce13e22 diff --git a/tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/TestBase.java b/tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/TestBase.java index 05ffd759f..fa90f524c 100644 --- a/tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/TestBase.java +++ b/tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/TestBase.java @@ -2,6 +2,7 @@ package org.simantics.scl.compiler.tests; import java.io.IOException; import java.io.InputStream; +import java.io.StringWriter; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.Arrays; @@ -12,14 +13,16 @@ import org.simantics.scl.compiler.errors.Failable; import org.simantics.scl.compiler.errors.Failure; import org.simantics.scl.compiler.module.ImportDeclaration; import org.simantics.scl.compiler.module.Module; +import org.simantics.scl.compiler.module.options.ModuleCompilationOptions; import org.simantics.scl.compiler.module.repository.ModuleRepository; import org.simantics.scl.compiler.module.repository.UpdateListener; import org.simantics.scl.compiler.source.ModuleSource; import org.simantics.scl.compiler.source.StringModuleSource; -import org.simantics.scl.compiler.source.repository.CompositeModuleSourceRepository; import org.simantics.scl.compiler.source.repository.MapModuleSourceRepository; -import org.simantics.scl.compiler.source.repository.SourceRepositories; import org.simantics.scl.compiler.top.ValueNotFound; +import org.simantics.scl.runtime.SCLContext; +import org.simantics.scl.runtime.reporting.SCLReportingHandler; +import org.simantics.scl.runtime.reporting.WriterSCLReportingHandler; public class TestBase { @@ -95,16 +98,25 @@ public class TestBase { return ImportDeclaration.ONLY_BUILTINS; } }; - ModuleRepository testEnvironment = new ModuleRepository( + ModuleRepository testRepository = new ModuleRepository( PRELUDE_MODULE_REPOSITORY, new MapModuleSourceRepository(moduleSources)); + testRepository.setAdvisor(moduleName -> ModuleCompilationOptions.SILENT); int lastId = moduleNames.length-1; - Failable result = testEnvironment.getModule(moduleNames[lastId]); + Failable result = testRepository.getModule(moduleNames[lastId]); if(!result.didSucceed()) return ((Failure)result).toString(moduleTexts[lastId]); else { - Object main = testEnvironment.getRuntimeModule(moduleNames[lastId]).getResult().getValue("main"); - return String.valueOf(main); + SCLContext context = SCLContext.getCurrent(); + StringWriter writer = new StringWriter(); + Object oldReportingHandler = context.put(SCLReportingHandler.REPORTING_HANDLER, new WriterSCLReportingHandler(writer)); + try { + Object main = testRepository.getRuntimeModule(moduleNames[lastId]).getResult().getValue("main"); + writer.write(String.valueOf(main)); + return writer.toString(); + } finally { + context.put(SCLReportingHandler.REPORTING_HANDLER, oldReportingHandler); + } } }