]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - tests/org.simantics.scl.osgi.tests/src/org/simantics/scl/osgi/tests/TestSCLOsgi.java
Export all platform SCL documentation into HTML during test build
[simantics/platform.git] / tests / org.simantics.scl.osgi.tests / src / org / simantics / scl / osgi / tests / TestSCLOsgi.java
index 4554294272ae1b0b07f356477cb44a5d92e06183..227381147552c8889994835de885bc6bee584eb4 100644 (file)
@@ -1,7 +1,9 @@
 package org.simantics.scl.osgi.tests;
 
-import java.util.ArrayList;
-import java.util.concurrent.atomic.AtomicInteger;
+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;
@@ -15,14 +17,9 @@ 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.compiler.markdown.html.GenerateAllHtmlDocumentation;
 import org.simantics.scl.osgi.SCLOsgi;
 
-import gnu.trove.procedure.TObjectProcedure;
-
-
 public class TestSCLOsgi {
     private static IProgressMonitor progress = new NullProgressMonitor();
     
@@ -47,30 +44,17 @@ public class TestSCLOsgi {
     
     @Test
     public void testDataJsonExists() {
-        ArrayList<String> modulesWithErrors = new ArrayList<String>(); 
-        SCLOsgi.SOURCE_REPOSITORY.forAllModules(new TObjectProcedure<String>() {
-            @Override
-            public boolean execute(String moduleName) {
-                System.out.print(moduleName);
-                System.out.print(" - ");
-                Failable<Module> 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());
+        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);
+    }
 }