Browse Source

Added unit test for excludes in multi module compilation.

master
Tomas Zezula Stefan Bodewig 9 years ago
parent
commit
ea99177eb2
1 changed files with 50 additions and 0 deletions
  1. +50
    -0
      src/tests/junit/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapterTest.java

+ 50
- 0
src/tests/junit/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapterTest.java View File

@@ -306,6 +306,56 @@ public class DefaultCompilerAdapterTest {
}
}

@Test
public void testMultiModuleCompilationWithExcludes() throws IOException {
final File workDir = createWorkDir("testMMCWE");
try {
final File src = new File(workDir, "src");
src.mkdir();
final File java1 = createFile(src,"main/m1/lin/classes/org/apache/ant/tests/J1.java");
final File java2 = createFile(src,"main/m3/sol/classes/org/apache/ant/tests/J2.java");
final File java3 = createFile(src,"main/m3/sol/classes/org/apache/ant/invisible/J3.java");
final File build = new File(workDir, "build");
build.mkdirs();
final Project prj = new Project();
prj.setBaseDir(workDir);
final LogCapturingJavac javac = new LogCapturingJavac();
javac.setProject(prj);
final DefaultCompilerAdapter impl = new DefaultCompilerAdapter() {
@Override
public boolean execute() throws BuildException {
setupModernJavacCommand();
return true;
}
};
final String moduleSrcPathStr = "src/main/*/{lin,sol}/classes";
final Path moduleSourcePath = new Path(prj);
moduleSourcePath.setPath(moduleSrcPathStr);
javac.setModulesourcepath(moduleSourcePath);
javac.setSource("9");
javac.setTarget("9");
javac.setDestdir(build);
javac.setIncludeantruntime(false);
javac.createExclude().setName("org/**/invisible/**");
javac.add(impl);
javac.execute();
final File[] compileList = impl.compileList;
Assert.assertNotNull(compileList);
//J1.java, J2.java has to be in files list but not J3.java
final Set<String> expectedFiles = new TreeSet<String>();
Collections.addAll(expectedFiles,
java1.getAbsolutePath(),
java2.getAbsolutePath());
final Set<String> actualFiles = new TreeSet<String>();
for (File compileFile : compileList) {
actualFiles.add(compileFile.getAbsolutePath());
}
assertEquals(expectedFiles, actualFiles);
} finally {
delete(workDir);
}
}

private void commonSourceDowngrades(String javaVersion) {
testSource("1.3", javaVersion,
"If you specify -target 1.1 you now must also specify"


Loading…
Cancel
Save