X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=tests%2Forg.simantics.scl.osgi.tests%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fosgi%2Ftests%2FTestSCLOsgi.java;h=227381147552c8889994835de885bc6bee584eb4;hp=35a74c4f62c9189ed6712606ad7247de16d04f07;hb=887c3c2fc31f3a4fe806c0f59c7b16ba87021636;hpb=0364f8f54b009e9e5de482d5c9d1cb7efb023141 diff --git a/tests/org.simantics.scl.osgi.tests/src/org/simantics/scl/osgi/tests/TestSCLOsgi.java b/tests/org.simantics.scl.osgi.tests/src/org/simantics/scl/osgi/tests/TestSCLOsgi.java index 35a74c4f6..227381147 100644 --- a/tests/org.simantics.scl.osgi.tests/src/org/simantics/scl/osgi/tests/TestSCLOsgi.java +++ b/tests/org.simantics.scl.osgi.tests/src/org/simantics/scl/osgi/tests/TestSCLOsgi.java @@ -1,75 +1,60 @@ -package org.simantics.scl.osgi.tests; - -import java.util.ArrayList; -import java.util.concurrent.atomic.AtomicInteger; - -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.NullProgressMonitor; -import org.junit.AfterClass; -import org.junit.Assert; -import org.junit.BeforeClass; -import org.junit.Test; -import org.simantics.PlatformException; -import org.simantics.Simantics; -import org.simantics.application.arguments.Arguments; -import org.simantics.application.arguments.IArgumentFactory; -import org.simantics.application.arguments.IArguments; -import org.simantics.application.arguments.SimanticsArguments; -import org.simantics.scl.compiler.errors.DoesNotExist; -import org.simantics.scl.compiler.errors.Failable; -import org.simantics.scl.compiler.module.Module; -import org.simantics.scl.osgi.SCLOsgi; - -import gnu.trove.procedure.TObjectProcedure; - - -public class TestSCLOsgi { - private static IProgressMonitor progress = new NullProgressMonitor(); - - @BeforeClass - public static void setupDatabase() throws PlatformException { - String[] args = new String[0]; - IArgumentFactory[] accepted = { - SimanticsArguments.RECOVERY_POLICY_FIX_ERRORS, - SimanticsArguments.ONTOLOGY_RECOVERY_POLICY_REINSTALL, - SimanticsArguments.SERVER, - SimanticsArguments.LOCAL_SERVER_PORT, - }; - IArguments arguments = Arguments.parse(args, accepted); - Simantics.startUpHeadless(arguments, progress); - } - - @AfterClass - public static void teardownDatabase() throws PlatformException { - Simantics.shutdown(progress); - } - - @Test - public void testDataJsonExists() { - ArrayList modulesWithErrors = new ArrayList(); - SCLOsgi.SOURCE_REPOSITORY.forAllModules(new TObjectProcedure() { - @Override - public boolean execute(String moduleName) { - System.out.print(moduleName); - System.out.print(" - "); - Failable module = SCLOsgi.MODULE_REPOSITORY.getModule(moduleName); - if(module.didSucceed()) - System.out.println("succeeded"); - else if(module == DoesNotExist.INSTANCE) - System.out.println("does not exist"); // should not happen - else { - System.out.println("error"); - modulesWithErrors.add(moduleName); - } - return true; - } - }); - if(!modulesWithErrors.isEmpty()) { - StringBuilder b = new StringBuilder(); - b.append("Some SCL modules failed to compile:"); - for(String module : modulesWithErrors) - b.append(' ').append(module); - Assert.fail(b.toString()); - } - } -} +package org.simantics.scl.osgi.tests; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; +import org.simantics.PlatformException; +import org.simantics.Simantics; +import org.simantics.application.arguments.Arguments; +import org.simantics.application.arguments.IArgumentFactory; +import org.simantics.application.arguments.IArguments; +import org.simantics.application.arguments.SimanticsArguments; +import org.simantics.scl.compiler.markdown.html.GenerateAllHtmlDocumentation; +import org.simantics.scl.osgi.SCLOsgi; + +public class TestSCLOsgi { + private static IProgressMonitor progress = new NullProgressMonitor(); + + @BeforeClass + public static void setupDatabase() throws PlatformException { + String[] args = new String[0]; + IArgumentFactory[] accepted = { + SimanticsArguments.RECOVERY_POLICY_FIX_ERRORS, + SimanticsArguments.ONTOLOGY_RECOVERY_POLICY_REINSTALL, + SimanticsArguments.SERVER, + SimanticsArguments.LOCAL_SERVER_PORT, + }; + IArguments arguments = Arguments.parse(args, accepted); + Simantics.setDefaultDatabaseDriver("acorn"); + Simantics.startUpHeadless(arguments, progress); + } + + @AfterClass + public static void teardownDatabase() throws PlatformException { + Simantics.shutdown(progress); + } + + @Test + public void testDataJsonExists() { + String possibleError = SCLOsgi.compileAllModules(); + if(possibleError != null) { + Assert.fail(possibleError); + } + } + + @Test + public void exportAllSCLDocumentation() throws IOException { + // "./scldoc" evaluates to "tests/org.simantics.scl.osgi.tests/scldoc" when these tests are ran with Tycho/Maven + Path dir = Paths.get("./scldoc"); + Files.createDirectories(dir); + GenerateAllHtmlDocumentation.generate(SCLOsgi.MODULE_REPOSITORY, dir); + } +}