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