JavacTestpublic class JavacTest extends TestCase
Fields Summary |
---|
private org.apache.tools.ant.Project | project | private Javac | javac |
Constructors Summary |
---|
public JavacTest(String name)
super(name);
|
Methods Summary |
---|
public void | setUp()
project = new Project();
project.init();
javac = new Javac();
javac.setProject(project);
| public void | testCompilerAdapter()
if (JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_2)
|| JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_3)) {
javac.setCompiler("javac1.1");
} else {
javac.setCompiler("javac1.4");
}
javac.setDepend(true);
CompilerAdapter adapter =
CompilerAdapterFactory.getCompiler(javac.getCompiler(), javac);
if (JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_2)
|| JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_3)) {
assertTrue(adapter instanceof Javac12);
} else {
assertTrue(adapter instanceof Javac13);
}
javac.setFork(true);
adapter =
CompilerAdapterFactory.getCompiler(javac.getCompiler(), javac);
assertTrue(adapter instanceof JavacExternal);
| public void | testCompilerArg()Test nested compiler args.
String[] args = javac.getCurrentCompilerArgs();
assertNotNull(args);
assertEquals("no args", 0, args.length);
Javac.ImplementationSpecificArgument arg = javac.createCompilerArg();
String ford = "Ford";
String prefect = "Prefect";
String testArg = ford + " " + prefect;
arg.setValue(testArg);
args = javac.getCurrentCompilerArgs();
assertEquals("unconditional single arg", 1, args.length);
assertEquals(testArg, args[0]);
arg.setCompiler("jikes");
args = javac.getCurrentCompilerArgs();
assertNotNull(args);
assertEquals("implementation is jikes but build.compiler is null",
0, args.length);
project.setProperty("build.compiler", "jvc");
args = javac.getCurrentCompilerArgs();
assertNotNull(args);
assertEquals("implementation is jikes but build.compiler is jvc",
0, args.length);
project.setProperty("build.compiler", "jikes");
args = javac.getCurrentCompilerArgs();
assertEquals("both are jikes", 1, args.length);
assertEquals(testArg, args[0]);
arg.setLine(testArg);
args = javac.getCurrentCompilerArgs();
assertEquals("split at space", 2, args.length);
assertEquals(ford, args[0]);
assertEquals(prefect, args[1]);
| public void | testCompilerArgForForkAndExtJavac()Test nested compiler args in the fork="true" and
implementation="extJavac" case.
Javac.ImplementationSpecificArgument arg = javac.createCompilerArg();
String ford = "Ford";
String prefect = "Prefect";
String testArg = ford + " " + prefect;
arg.setValue(testArg);
arg.setCompiler("extJavac");
javac.setFork(true);
String[] args = javac.getCurrentCompilerArgs();
assertEquals("both are forked javac", 1, args.length);
assertEquals(testArg, args[0]);
| public void | testCompilerAttribute()Test compiler attribute.
// check defaults
String compiler = javac.getCompiler();
assertNotNull(compiler);
if (System.getProperty("build.compiler") != null) {
assertEquals(System.getProperty("build.compiler"),
compiler);
} else {
assertTrue("default value",
"javac1.1".equals(compiler)
|| "javac1.2".equals(compiler)
|| "javac1.3".equals(compiler)
|| "javac1.4".equals(compiler)
|| "javac1.5".equals(compiler)
|| "classic".equals(compiler));
}
javac.setFork(true);
assertNotNull(javac.getCompiler());
assertEquals("extJavac", javac.getCompiler());
assertEquals(compiler, javac.getCompilerVersion());
// check build.compiler provides defaults
javac = new Javac();
javac.setProject(project);
// setUserProperty to override system properties
project.setUserProperty("build.compiler", "jikes");
compiler = javac.getCompiler();
assertNotNull(compiler);
assertEquals("jikes", compiler);
javac.setFork(true);
compiler = javac.getCompiler();
assertNotNull(compiler);
assertEquals("jikes", compiler);
// check attribute overrides build.compiler
javac.setFork(false);
javac.setCompiler("jvc");
compiler = javac.getCompiler();
assertNotNull(compiler);
assertEquals("jvc", compiler);
javac.setFork(true);
compiler = javac.getCompiler();
assertNotNull(compiler);
assertEquals("jvc", compiler);
| public void | testForkedExecutableName()Test setting the name of the javac executable.
assertNull("no fork means no executable", javac.getJavacExecutable());
project.setProperty("build.compiler", "modern");
assertNull("no fork means no executable", javac.getJavacExecutable());
javac.setFork(true);
assertNotNull("normal fork", javac.getJavacExecutable());
assertTrue("name should contain \"javac\"",
javac.getJavacExecutable().indexOf("javac") > -1);
project.setProperty("build.compiler", "extJavac");
javac.setFork(false);
assertNotNull("fork via property", javac.getJavacExecutable());
assertTrue("name should contain \"javac\"",
javac.getJavacExecutable().indexOf("javac") > -1);
project.setProperty("build.compiler", "whatever");
assertNull("no fork and not extJavac means no executable",
javac.getJavacExecutable());
String myJavac = "Slartibartfast";
javac.setFork(true);
javac.setExecutable(myJavac);
assertEquals(myJavac, javac.getJavacExecutable());
| public void | testSourceNoDefault()
assertNull(javac.getSource());
| public void | testSourceOverridesDefault()
project.setNewProperty("ant.build.javac.source", "1.4");
javac.setSource("1.5");
assertEquals("1.5", javac.getSource());
| public void | testSourceWithDefault()
project.setNewProperty("ant.build.javac.source", "1.4");
assertEquals("1.4", javac.getSource());
| public void | testTargetNoDefault()
assertNull(javac.getTarget());
| public void | testTargetOverridesDefault()
project.setNewProperty("ant.build.javac.target", "1.4");
javac.setTarget("1.5");
assertEquals("1.5", javac.getTarget());
| public void | testTargetWithDefault()
project.setNewProperty("ant.build.javac.target", "1.4");
assertEquals("1.4", javac.getTarget());
|
|