]> gerrit.simantics Code Review - simantics/platform.git/blob - tests/org.simantics.scl.osgi.tests/src/org/simantics/scl/osgi/tests/TestSCLOsgi.java
Merge commit 'bf75fd9'
[simantics/platform.git] / tests / org.simantics.scl.osgi.tests / src / org / simantics / scl / osgi / tests / TestSCLOsgi.java
1 package org.simantics.scl.osgi.tests;
2
3 import java.util.ArrayList;
4 import java.util.concurrent.atomic.AtomicInteger;
5
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;
22
23 import gnu.trove.procedure.TObjectProcedure;
24
25
26 public class TestSCLOsgi {
27     private static IProgressMonitor progress = new NullProgressMonitor();
28     
29     @BeforeClass
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,
37         };
38         IArguments arguments = Arguments.parse(args, accepted);
39         Simantics.setDefaultDatabaseDriver("acorn");
40         Simantics.startUpHeadless(arguments, progress);
41     }
42     
43     @AfterClass
44     public static void teardownDatabase() throws PlatformException {
45         Simantics.shutdown(progress);
46     }
47     
48     @Test
49     public void testDataJsonExists() {
50         ArrayList<String> modulesWithErrors = new ArrayList<String>(); 
51         SCLOsgi.SOURCE_REPOSITORY.forAllModules(new TObjectProcedure<String>() {
52             @Override
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
61                 else {
62                     System.out.println("error");
63                     modulesWithErrors.add(moduleName);
64                 }
65                 return true;
66             }
67         });
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());
74         }
75     }
76 }