langtools/test/tools/apt/lib/Tester.java
changeset 12128 09f5d262e329
parent 12127 eab1e4be8495
parent 11872 c51754cddc03
child 12129 561811d8ba18
--- a/langtools/test/tools/apt/lib/Tester.java	Fri Feb 17 10:18:50 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,160 +0,0 @@
-/*
- * Copyright (c) 2004, 2007, 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.
- */
-
-
-/*
- * A utility used to invoke and test the apt tool.
- * Tests should subclass Tester, and invoke run().
- *
- * @author Scott Seligman
- */
-
-import java.io.*;
-import java.util.*;
-import com.sun.mirror.apt.*;
-import com.sun.mirror.declaration.*;
-
-
-public abstract class Tester {
-
-    /**
-     * The declaration corresponding to this tester's class.  Set by
-     * TestProcessorFactory after the constructor completes, and
-     * before init() is invoked.
-     */
-    ClassDeclaration thisClassDecl;
-
-    /**
-     * The environment for this apt run.  Set by TestProcessorFactory
-     * after the constructor completes, and before init() is invoked.
-     */
-    AnnotationProcessorEnvironment env;
-
-
-    // TestProcessorFactory looks here to find the tester that's running
-    // when it's invoked.
-    static Tester activeTester;
-
-    private static final String[] DEFAULT_ARGS = {
-        "-nocompile",
-        "-XPrintAptRounds",
-        "-XListDeclarations",
-    };
-    private static final String[] NO_STRINGS = {};
-
-    // Force processor and factory to be compiled
-    private static Class dummy = TestProcessorFactory.class;
-
-    private final String testSrc =     System.getProperty("test.src",     ".");
-    private final String testClasses = System.getProperty("test.classes", ".");
-
-    // apt command-line args
-    private String[] args;
-
-
-    static {
-        // Enable assertions in the unnamed package.
-        ClassLoader loader = Tester.class.getClassLoader();
-        if (loader != null) {
-            loader.setPackageAssertionStatus(null, true);
-        }
-    }
-
-
-    protected Tester(String... additionalArgs) {
-        String sourceFile = testSrc + File.separator +
-                            getClass().getName() + ".java";
-
-        ArrayList<String> as = new ArrayList<String>();
-        Collections.addAll(as, DEFAULT_ARGS);
-        as.add("-sourcepath");  as.add(testSrc);
-        as.add("-factory");     as.add(TestProcessorFactory.class.getName());
-        Collections.addAll(as, additionalArgs);
-        as.add(sourceFile);
-        args = as.toArray(NO_STRINGS);
-    }
-
-    /**
-     * Run apt.
-     */
-    protected void run() {
-        activeTester = this;
-        if (com.sun.tools.apt.Main.process(args) != 0) {
-            throw new Error("apt errors encountered.");
-        }
-    }
-
-    /**
-     * Called after thisClassDecl and env have been set, but before any
-     * tests are run, to allow the tester subclass to perform any
-     * needed initialization.
-     */
-    protected void init() {
-    }
-
-    /**
-     * Returns the declaration of a named method in this class.  If this
-     * method name is overloaded, one method is chosen arbitrarily.
-     * Returns null if no method is found.
-     */
-    protected MethodDeclaration getMethod(String methodName) {
-        for (MethodDeclaration m : thisClassDecl.getMethods()) {
-            if (methodName.equals(m.getSimpleName())) {
-                return m;
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Returns the declaration of a named field in this class.
-     * Returns null if no field is found.
-     */
-    protected FieldDeclaration getField(String fieldName) {
-        for (FieldDeclaration f : thisClassDecl.getFields()) {
-            if (fieldName.equals(f.getSimpleName())) {
-                return f;
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Returns the annotation mirror of a given type on a named method
-     * in this class.  If this method name is overloaded, one method is
-     * chosen arbitrarily.  Returns null if no appropriate annotation
-     * is found.
-     */
-    protected AnnotationMirror getAnno(String methodName, String annoType) {
-        MethodDeclaration m = getMethod(methodName);
-        if (m != null) {
-            TypeDeclaration at = env.getTypeDeclaration(annoType);
-            for (AnnotationMirror a : m.getAnnotationMirrors()) {
-                if (at == a.getAnnotationType().getDeclaration()) {
-                    return a;
-                }
-            }
-        }
-        return null;
-    }
-}