⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 javactest.java

📁 Use the links below to download a source distribution of Ant from one of our mirrors. It is good pra
💻 JAVA
字号:
/* *  Licensed to the Apache Software Foundation (ASF) under one or more *  contributor license agreements.  See the NOTICE file distributed with *  this work for additional information regarding copyright ownership. *  The ASF licenses this file to You under the Apache License, Version 2.0 *  (the "License"); you may not use this file except in compliance with *  the License.  You may obtain a copy of the License at * *      http://www.apache.org/licenses/LICENSE-2.0 * *  Unless required by applicable law or agreed to in writing, software *  distributed under the License is distributed on an "AS IS" BASIS, *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *  See the License for the specific language governing permissions and *  limitations under the License. * */package org.apache.tools.ant.taskdefs;import org.apache.tools.ant.Project;import org.apache.tools.ant.taskdefs.compilers.CompilerAdapter;import org.apache.tools.ant.taskdefs.compilers.CompilerAdapterFactory;import org.apache.tools.ant.taskdefs.compilers.Javac12;import org.apache.tools.ant.taskdefs.compilers.Javac13;import org.apache.tools.ant.taskdefs.compilers.JavacExternal;import org.apache.tools.ant.util.JavaEnvUtils;import junit.framework.TestCase;/** * Testcase for <javac>. * */public class JavacTest extends TestCase {    private Project project;    private Javac javac;    public JavacTest(String name) {        super(name);    }    public void setUp() {        project = new Project();        project.init();        javac = new Javac();        javac.setProject(project);    }    /**     * Test setting the name of the javac executable.     */    public void testForkedExecutableName() {        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());    }    /**     * Test nested compiler args.     */    public void testCompilerArg() {        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]);    }    /**     * Test nested compiler args in the fork="true" and     * implementation="extJavac" case.     */    public void testCompilerArgForForkAndExtJavac() {        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]);    }    /**     * Test compiler attribute.     */    public void testCompilerAttribute() {        // 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 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 testSourceNoDefault() {        assertNull(javac.getSource());    }    public void testSourceWithDefault() {        project.setNewProperty("ant.build.javac.source", "1.4");        assertEquals("1.4", javac.getSource());    }    public void testSourceOverridesDefault() {        project.setNewProperty("ant.build.javac.source", "1.4");        javac.setSource("1.5");        assertEquals("1.5", javac.getSource());    }    public void testTargetNoDefault() {        assertNull(javac.getTarget());    }    public void testTargetWithDefault() {        project.setNewProperty("ant.build.javac.target", "1.4");        assertEquals("1.4", javac.getTarget());    }    public void testTargetOverridesDefault() {        project.setNewProperty("ant.build.javac.target", "1.4");        javac.setTarget("1.5");        assertEquals("1.5", javac.getTarget());    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -