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=2dfaafee3660907b6b493e86e9ded837379ce17f;hb=00119bc6c509134e985c11ad4f6aff37801adc3f;hpb=fad36d463b75c3a9944d875fc627c3533f6da74d 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 2dfaafee3..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,12 +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.MapModuleSourceRepository; 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 { @@ -93,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); + } } }