--- /dev/null
+package org.simantics.scl.osgi.tests;\r
+\r
+import java.util.ArrayList;\r
+import java.util.concurrent.atomic.AtomicInteger;\r
+\r
+import org.eclipse.core.runtime.IProgressMonitor;\r
+import org.eclipse.core.runtime.NullProgressMonitor;\r
+import org.junit.AfterClass;\r
+import org.junit.Assert;\r
+import org.junit.BeforeClass;\r
+import org.junit.Test;\r
+import org.simantics.PlatformException;\r
+import org.simantics.Simantics;\r
+import org.simantics.application.arguments.Arguments;\r
+import org.simantics.application.arguments.IArgumentFactory;\r
+import org.simantics.application.arguments.IArguments;\r
+import org.simantics.application.arguments.SimanticsArguments;\r
+import org.simantics.scl.compiler.errors.DoesNotExist;\r
+import org.simantics.scl.compiler.errors.Failable;\r
+import org.simantics.scl.compiler.module.Module;\r
+import org.simantics.scl.osgi.SCLOsgi;\r
+\r
+import gnu.trove.procedure.TObjectProcedure;\r
+\r
+\r
+public class TestSCLOsgi {\r
+ private static IProgressMonitor progress = new NullProgressMonitor();\r
+ \r
+ @BeforeClass\r
+ public static void setupDatabase() throws PlatformException {\r
+ String[] args = new String[0];\r
+ IArgumentFactory<?>[] accepted = {\r
+ SimanticsArguments.RECOVERY_POLICY_FIX_ERRORS,\r
+ SimanticsArguments.ONTOLOGY_RECOVERY_POLICY_REINSTALL,\r
+ SimanticsArguments.SERVER,\r
+ SimanticsArguments.LOCAL_SERVER_PORT,\r
+ };\r
+ IArguments arguments = Arguments.parse(args, accepted);\r
+ Simantics.startUpHeadless(arguments, progress);\r
+ }\r
+ \r
+ @AfterClass\r
+ public static void teardownDatabase() throws PlatformException {\r
+ Simantics.shutdown(progress);\r
+ }\r
+ \r
+ @Test\r
+ public void testDataJsonExists() {\r
+ ArrayList<String> modulesWithErrors = new ArrayList<String>(); \r
+ SCLOsgi.SOURCE_REPOSITORY.forAllModules(new TObjectProcedure<String>() {\r
+ @Override\r
+ public boolean execute(String moduleName) {\r
+ System.out.print(moduleName);\r
+ System.out.print(" - ");\r
+ Failable<Module> module = SCLOsgi.MODULE_REPOSITORY.getModule(moduleName);\r
+ if(module.didSucceed())\r
+ System.out.println("succeeded");\r
+ else if(module == DoesNotExist.INSTANCE)\r
+ System.out.println("does not exist"); // should not happen\r
+ else {\r
+ System.out.println("error");\r
+ modulesWithErrors.add(moduleName);\r
+ }\r
+ return true;\r
+ }\r
+ });\r
+ if(!modulesWithErrors.isEmpty()) {\r
+ StringBuilder b = new StringBuilder();\r
+ b.append("Some SCL modules failed to compile:");\r
+ for(String module : modulesWithErrors)\r
+ b.append(' ').append(module);\r
+ Assert.fail(b.toString());\r
+ }\r
+ }\r
+}\r