|
Java example source code file (T6430241.java)
The T6430241.java Java example source code/* * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ /* * @test * @bug 6430241 * @summary Hard to disable symbol file feature through API */ import java.io.*; import java.util.*; import javax.tools.*; import com.sun.source.util.JavacTask; import com.sun.tools.javac.api.JavacTool; public class T6430241 { public static void main(String... args) throws Exception { new T6430241().run(); } void run() throws Exception { setup(); testCommandLine(); testSimpleAPI(); testTaskAPI(); if (errors > 0) throw new Exception(errors + " errors found"); } void setup() throws Exception { classesDir = new File("classes"); classesDir.mkdirs(); emptyDir = new File("empty"); emptyDir.mkdirs(); bootClassPath = System.getProperty("sun.boot.class.path"); File srcDir = new File("src"); String test = "import sun.misc.Unsafe; class Test { }"; testFile = writeFile(srcDir, "Test.java", test); } //----- tests for command line invocation void testCommandLine() throws Exception { testCommandLine(true); testCommandLine(true, "-Xbootclasspath/p:" + emptyDir); testCommandLine(false, "-Xbootclasspath:" + bootClassPath); testCommandLine(true, "-Xbootclasspath/a:" + emptyDir); testCommandLine(false, "-XDignore.symbol.file"); System.err.println(); } void testCommandLine(boolean expectWarnings, String... opts) throws Exception { System.err.println("test command line: " + Arrays.asList(opts)); String[] args = initArgs(opts); StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); int rc = com.sun.tools.javac.Main.compile(args, pw); String out = showOutput(sw.toString()); checkCompilationOK(rc); checkOutput(out, expectWarnings); } //----- tests for simple API invocation void testSimpleAPI() { testSimpleAPI(true); testSimpleAPI(true, "-Xbootclasspath/p:" + emptyDir); testSimpleAPI(false, "-Xbootclasspath:" + bootClassPath); testSimpleAPI(true, "-Xbootclasspath/a:" + emptyDir); testSimpleAPI(false, "-XDignore.symbol.file"); System.err.println(); } void testSimpleAPI(boolean expectWarnings, String... opts) { System.err.println("test simple API: " + Arrays.asList(opts)); String[] args = initArgs(opts); ByteArrayOutputStream baos = new ByteArrayOutputStream(); PrintStream ps = new PrintStream(baos); JavacTool tool = JavacTool.create(); int rc = tool.run(null, null, ps, args); String out = showOutput(baos.toString()); checkCompilationOK(rc); checkOutput(out, expectWarnings); } //----- tests for CompilationTask API invocation void testTaskAPI() throws Exception { List<File> bcp = new ArrayList Other Java examples (source code examples)Here is a short list of links related to this Java T6430241.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.