1 package org.simantics.scl.osgi.tests;
\r
3 import java.util.ArrayList;
\r
4 import java.util.concurrent.atomic.AtomicInteger;
\r
6 import org.eclipse.core.runtime.IProgressMonitor;
\r
7 import org.eclipse.core.runtime.NullProgressMonitor;
\r
8 import org.junit.AfterClass;
\r
9 import org.junit.Assert;
\r
10 import org.junit.BeforeClass;
\r
11 import org.junit.Test;
\r
12 import org.simantics.PlatformException;
\r
13 import org.simantics.Simantics;
\r
14 import org.simantics.application.arguments.Arguments;
\r
15 import org.simantics.application.arguments.IArgumentFactory;
\r
16 import org.simantics.application.arguments.IArguments;
\r
17 import org.simantics.application.arguments.SimanticsArguments;
\r
18 import org.simantics.scl.compiler.errors.DoesNotExist;
\r
19 import org.simantics.scl.compiler.errors.Failable;
\r
20 import org.simantics.scl.compiler.module.Module;
\r
21 import org.simantics.scl.osgi.SCLOsgi;
\r
23 import gnu.trove.procedure.TObjectProcedure;
\r
26 public class TestSCLOsgi {
\r
27 private static IProgressMonitor progress = new NullProgressMonitor();
\r
30 public static void setupDatabase() throws PlatformException {
\r
31 String[] args = new String[0];
\r
32 IArgumentFactory<?>[] accepted = {
\r
33 SimanticsArguments.RECOVERY_POLICY_FIX_ERRORS,
\r
34 SimanticsArguments.ONTOLOGY_RECOVERY_POLICY_REINSTALL,
\r
35 SimanticsArguments.SERVER,
\r
36 SimanticsArguments.LOCAL_SERVER_PORT,
\r
38 IArguments arguments = Arguments.parse(args, accepted);
\r
39 Simantics.startUpHeadless(arguments, progress);
\r
43 public static void teardownDatabase() throws PlatformException {
\r
44 Simantics.shutdown(progress);
\r
48 public void testDataJsonExists() {
\r
49 ArrayList<String> modulesWithErrors = new ArrayList<String>();
\r
50 SCLOsgi.SOURCE_REPOSITORY.forAllModules(new TObjectProcedure<String>() {
\r
52 public boolean execute(String moduleName) {
\r
53 System.out.print(moduleName);
\r
54 System.out.print(" - ");
\r
55 Failable<Module> module = SCLOsgi.MODULE_REPOSITORY.getModule(moduleName);
\r
56 if(module.didSucceed())
\r
57 System.out.println("succeeded");
\r
58 else if(module == DoesNotExist.INSTANCE)
\r
59 System.out.println("does not exist"); // should not happen
\r
61 System.out.println("error");
\r
62 modulesWithErrors.add(moduleName);
\r
67 if(!modulesWithErrors.isEmpty()) {
\r
68 StringBuilder b = new StringBuilder();
\r
69 b.append("Some SCL modules failed to compile:");
\r
70 for(String module : modulesWithErrors)
\r
71 b.append(' ').append(module);
\r
72 Assert.fail(b.toString());
\r