Search in sources :

Example 6 with ErrorCollector

use of com.redhat.ceylon.compiler.java.test.ErrorCollector in project ceylon-compiler by ceylon.

the class CMRTests method testOverridesCeylonModuleVersionProducesJavaModule.

@Test
public void testOverridesCeylonModuleVersionProducesJavaModule() {
    setupBinaryModulesForOverridesCeylonModuleTests();
    ErrorCollector collector = new ErrorCollector();
    CeyloncTaskImpl compilerTask = getCompilerTask(Arrays.asList("-src", getPackagePath() + "/modules", "-overrides", getPackagePath() + "modules/overridesCeylonModule/overrides-b-version.xml"), collector, "modules/overridesCeylonModule/module.ceylon");
    ModulesRetriever modulesRetriever = new ModulesRetriever(compilerTask.getContext());
    compilerTask.setTaskListener(modulesRetriever);
    Boolean result = compilerTask.call();
    Assert.assertEquals(Boolean.TRUE, result);
    assert (modulesRetriever.modules != null);
    Module b = modulesRetriever.modules.get("b");
    assert (b != null);
    assertEquals("The Ceylon module 'b' is now seen as a Java module when a version override is applied", false, b.isJava());
}
Also used : ErrorCollector(com.redhat.ceylon.compiler.java.test.ErrorCollector) CeyloncTaskImpl(com.redhat.ceylon.compiler.java.tools.CeyloncTaskImpl) Module(com.redhat.ceylon.model.typechecker.model.Module) Test(org.junit.Test)

Example 7 with ErrorCollector

use of com.redhat.ceylon.compiler.java.test.ErrorCollector in project ceylon-compiler by ceylon.

the class CMRTests method testMdlOsgiManifestDisabled.

@Test
public void testMdlOsgiManifestDisabled() throws IOException {
    ErrorCollector c = new ErrorCollector();
    List<String> options = new ArrayList<String>(defaultOptions.size() + 1);
    options.addAll(defaultOptions);
    options.add("-noosgi");
    assertCompilesOk(c, getCompilerTask(options, c, "modules/osgi/a/module.ceylon", "modules/osgi/a/package.ceylon", "modules/osgi/a/A.ceylon").call2());
    final String moduleName = "com.redhat.ceylon.compiler.java.test.cmr.modules.osgi.a";
    final String moduleVersion = "1.1.0";
    File carFile = getModuleArchive(moduleName, moduleVersion);
    JarFile car = new JarFile(carFile);
    ZipEntry manifest = car.getEntry(OsgiManifest.MANIFEST_FILE_NAME);
    assertNull(manifest);
    car.close();
}
Also used : ZipEntry(java.util.zip.ZipEntry) ArrayList(java.util.ArrayList) ErrorCollector(com.redhat.ceylon.compiler.java.test.ErrorCollector) JarFile(java.util.jar.JarFile) JarFile(java.util.jar.JarFile) ZipFile(java.util.zip.ZipFile) File(java.io.File) Test(org.junit.Test)

Example 8 with ErrorCollector

use of com.redhat.ceylon.compiler.java.test.ErrorCollector in project ceylon-compiler by ceylon.

the class CMRTests method testMdlCeylonAetherDuplicateImports.

@Test
public void testMdlCeylonAetherDuplicateImports() throws IOException {
    // Try to compile the ceylon module
    ErrorCollector collector = new ErrorCollector();
    CeyloncTaskImpl ceylonTask = getCompilerTask(Arrays.asList("-out", destDir, "-verbose:cmr"), collector, "modules/ceylonAetherDuplicateImports/module.ceylon", "modules/ceylonAetherDuplicateImports/foo.ceylon");
    assertEquals(Boolean.FALSE, ceylonTask.call());
    compareErrors(collector.get(Diagnostic.Kind.ERROR), new CompilerError(23, "duplicate module import: 'org.apache.httpcomponents.httpclient'"), new CompilerError(25, "duplicate module import: 'org.apache.httpcomponents:httpclient'"));
}
Also used : ErrorCollector(com.redhat.ceylon.compiler.java.test.ErrorCollector) CompilerError(com.redhat.ceylon.compiler.java.test.CompilerError) CeyloncTaskImpl(com.redhat.ceylon.compiler.java.tools.CeyloncTaskImpl) Test(org.junit.Test)

Example 9 with ErrorCollector

use of com.redhat.ceylon.compiler.java.test.ErrorCollector in project ceylon-compiler by ceylon.

the class CMRTests method testMdlNoPomManifest.

@Test
public void testMdlNoPomManifest() throws IOException {
    ErrorCollector c = new ErrorCollector();
    assertCompilesOk(c, getCompilerTask(Arrays.asList("-nopom", "-out", destDir), c, "modules/pom/a/module.ceylon", "modules/pom/b/module.ceylon").call2());
    final String moduleName = "com.redhat.ceylon.compiler.java.test.cmr.modules.pom.b";
    final String moduleVersion = "1";
    File carFile = getModuleArchive(moduleName, moduleVersion);
    assertTrue(carFile.exists());
    JarFile car = new JarFile(carFile);
    ZipEntry pomFile = car.getEntry("META-INF/maven/com.redhat.ceylon.compiler.java.test.cmr.modules.pom/b/pom.xml");
    assertNull(pomFile);
    ZipEntry propertiesFile = car.getEntry("META-INF/maven/com.redhat.ceylon.compiler.java.test.cmr.modules.pom/b/pom.properties");
    assertNull(propertiesFile);
    car.close();
}
Also used : ZipEntry(java.util.zip.ZipEntry) ErrorCollector(com.redhat.ceylon.compiler.java.test.ErrorCollector) JarFile(java.util.jar.JarFile) JarFile(java.util.jar.JarFile) ZipFile(java.util.zip.ZipFile) File(java.io.File) Test(org.junit.Test)

Example 10 with ErrorCollector

use of com.redhat.ceylon.compiler.java.test.ErrorCollector in project ceylon-compiler by ceylon.

the class CMRTests method testMdlMultipleVersionsOnSameCompilation.

@Test
public void testMdlMultipleVersionsOnSameCompilation() {
    // Compile module A/1
    Boolean result = getCompilerTask(Arrays.asList("-src", getPackagePath() + "/modules/multiversion/a1"), "modules/multiversion/a1/a/module.ceylon", "modules/multiversion/a1/a/package.ceylon", "modules/multiversion/a1/a/A.ceylon").call();
    Assert.assertEquals(Boolean.TRUE, result);
    ErrorCollector collector = new ErrorCollector();
    // Compile module A/2 with B importing A/1
    result = getCompilerTask(Arrays.asList("-src", getPackagePath() + "/modules/multiversion/a2" + File.pathSeparator + getPackagePath() + "/modules/multiversion/b"), collector, "modules/multiversion/a2/a/module.ceylon", "modules/multiversion/a2/a/package.ceylon", "modules/multiversion/a2/a/A.ceylon", "modules/multiversion/b/b/module.ceylon", "modules/multiversion/b/b/B.ceylon").call();
    Assert.assertEquals(Boolean.FALSE, result);
    compareErrors(collector.get(Diagnostic.Kind.ERROR), new CompilerError(20, "source code imports two different versions of module 'a': version '1' and version '2'"));
}
Also used : ErrorCollector(com.redhat.ceylon.compiler.java.test.ErrorCollector) CompilerError(com.redhat.ceylon.compiler.java.test.CompilerError) Test(org.junit.Test)

Aggregations

ErrorCollector (com.redhat.ceylon.compiler.java.test.ErrorCollector)26 Test (org.junit.Test)23 CeyloncTaskImpl (com.redhat.ceylon.compiler.java.tools.CeyloncTaskImpl)18 CompilerError (com.redhat.ceylon.compiler.java.test.CompilerError)15 File (java.io.File)10 JarFile (java.util.jar.JarFile)7 LinkedList (java.util.LinkedList)6 ZipEntry (java.util.zip.ZipEntry)6 ArrayList (java.util.ArrayList)4 ExitState (com.redhat.ceylon.compiler.java.launcher.Main.ExitState)3 CeyloncFileManager (com.redhat.ceylon.compiler.java.tools.CeyloncFileManager)3 CeyloncTool (com.redhat.ceylon.compiler.java.tools.CeyloncTool)3 Module (com.redhat.ceylon.model.typechecker.model.Module)3 ZipFile (java.util.zip.ZipFile)2 Ignore (org.junit.Ignore)2 ModuleImport (com.redhat.ceylon.model.typechecker.model.ModuleImport)1 StringWriter (java.io.StringWriter)1