test/tools/javac/T6358166.java

Fri, 04 Jul 2008 15:06:27 -0700

author
tbell
date
Fri, 04 Jul 2008 15:06:27 -0700
changeset 62
07c916ecfc71
parent 58
8bc2ca2a3b0a
parent 54
eaf608c64fec
child 554
9d9f26857129
permissions
-rw-r--r--

Merge

duke@1 1 /*
xdono@54 2 * Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved.
duke@1 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
duke@1 4 *
duke@1 5 * This code is free software; you can redistribute it and/or modify it
duke@1 6 * under the terms of the GNU General Public License version 2 only, as
duke@1 7 * published by the Free Software Foundation.
duke@1 8 *
duke@1 9 * This code is distributed in the hope that it will be useful, but WITHOUT
duke@1 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
duke@1 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
duke@1 12 * version 2 for more details (a copy is included in the LICENSE file that
duke@1 13 * accompanied this code).
duke@1 14 *
duke@1 15 * You should have received a copy of the GNU General Public License version
duke@1 16 * 2 along with this work; if not, write to the Free Software Foundation,
duke@1 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
duke@1 18 *
duke@1 19 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
duke@1 20 * CA 95054 USA or visit www.sun.com if you need additional information or
duke@1 21 * have any questions.
duke@1 22 */
duke@1 23
duke@1 24 /*
duke@1 25 * @test
duke@1 26 * @bug 6358166
duke@1 27 * @summary -verbose reports absurd times when annotation processing involved
duke@1 28 */
duke@1 29
duke@1 30 import java.io.*;
duke@1 31 import java.util.*;
duke@1 32 import javax.annotation.processing.*;
duke@1 33 import javax.lang.model.element.*;
duke@1 34 import javax.tools.*;
jjg@50 35 import com.sun.tools.javac.file.*;
jjg@58 36 import com.sun.tools.javac.file.JavacFileManager; // disambiguate
duke@1 37 import com.sun.tools.javac.main.JavaCompiler;
duke@1 38 import com.sun.tools.javac.main.*;
duke@1 39 import com.sun.tools.javac.util.*;
duke@1 40 import com.sun.tools.javac.util.List; // disambiguate
duke@1 41
duke@1 42
duke@1 43 @SupportedAnnotationTypes("*")
duke@1 44 public class T6358166 extends AbstractProcessor {
duke@1 45 public static void main(String... args) throws Throwable {
duke@1 46 String self = T6358166.class.getName();
duke@1 47
duke@1 48 String testSrc = System.getProperty("test.src");
duke@1 49
duke@1 50 JavacFileManager fm = new JavacFileManager(new Context(), false, null);
duke@1 51 JavaFileObject f = fm.getFileForInput(testSrc + File.separatorChar + self + ".java");
duke@1 52
duke@1 53 test(fm, f, "-verbose", "-d", ".");
duke@1 54
duke@1 55 test(fm, f, "-verbose", "-d", ".", "-XprintRounds", "-processorpath", ".", "-processor", self);
duke@1 56 }
duke@1 57
duke@1 58 static void test(JavacFileManager fm, JavaFileObject f, String... args) throws Throwable {
duke@1 59 Context context = new Context();
duke@1 60 fm.setContext(context);
duke@1 61
duke@1 62 Main compilerMain = new Main("javac", new PrintWriter(System.err, true));
duke@1 63 compilerMain.setOptions(Options.instance(context));
duke@1 64 compilerMain.filenames = new ListBuffer<File>();
duke@1 65 compilerMain.processArgs(args);
duke@1 66
duke@1 67 JavaCompiler c = JavaCompiler.instance(context);
duke@1 68
duke@1 69 c.compile(List.of(f));
duke@1 70
duke@1 71 if (c.errorCount() != 0)
duke@1 72 throw new AssertionError("compilation failed");
duke@1 73
duke@1 74 long msec = c.elapsed_msec;
duke@1 75 if (msec < 0 || msec > 5 * 60 * 1000) // allow test 5 mins to execute, should be more than enough!
duke@1 76 throw new AssertionError("elapsed time is suspect: " + msec);
duke@1 77 }
duke@1 78
duke@1 79 public boolean process(Set<? extends TypeElement> tes, RoundEnvironment renv) {
duke@1 80 return true;
duke@1 81 }
duke@1 82 }

mercurial