--- a/langtools/test/tools/javac/T6405099.java Wed May 27 22:34:43 2009 -0700
+++ b/langtools/test/tools/javac/T6405099.java Thu May 28 09:49:56 2009 -0700
@@ -25,20 +25,39 @@
* @test
* @bug 6405099
* @summary Compiler crashes when javac encounters /usr/jdk/packges/lib/ext with no 777 permissions
- *
- * @ignore causes NPE in Java Test
- * @run main T6405099
- * @compile -extdirs bad T6405099.java
*/
-import java.io.File;
+import java.io.*;
public class T6405099
{
public static void main(String[] args) {
File bad = new File("bad");
- bad.mkdir();
- bad.setReadable(false);
- bad.setExecutable(false);
+ try {
+ bad.mkdir();
+ bad.setReadable(false);
+ bad.setExecutable(false);
+
+ test(bad);
+
+ } finally {
+ bad.setExecutable(true);
+ bad.setReadable(true);
+ }
+ }
+
+ static void test(File dir) {
+ String[] args = {
+ "-extdirs", dir.getPath(), "-d", ".",
+ new File(System.getProperty("test.src", "."), "T6405099.java").getPath()
+ };
+
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw);
+ int rc = com.sun.tools.javac.Main.compile(args, pw);
+ if (rc != 0)
+ throw new Error("compilation failed");
+
+ System.out.println(sw);
}
}
--- a/langtools/test/tools/javac/api/6431257/T6431257.java Wed May 27 22:34:43 2009 -0700
+++ b/langtools/test/tools/javac/api/6431257/T6431257.java Thu May 28 09:49:56 2009 -0700
@@ -27,7 +27,6 @@
* @summary JSR 199: Changes to JavaFileManager to support JSR 269 Filer API
* @author Peter von der Ah\u00e9
* @library ../lib
- * @ignore Need to fix this test when 6508981 is fixed.
* @compile T6431257.java package-info.java
* @run main T6431257 foo.bar.baz foo/bar/baz
*/
--- a/langtools/test/tools/javac/api/TestJavacTaskScanner.java Wed May 27 22:34:43 2009 -0700
+++ b/langtools/test/tools/javac/api/TestJavacTaskScanner.java Thu May 28 09:49:56 2009 -0700
@@ -26,7 +26,7 @@
* @bug 4813736
* @summary Additional functionality test of task and JSR 269
* @author Peter von der Ah\u00e9
- * @ignore "misuse" of context breaks with 6358786
+ * @library ./lib
* @run main TestJavacTaskScanner TestJavacTaskScanner.java
*/
@@ -42,16 +42,23 @@
import javax.lang.model.util.Elements;
import javax.lang.model.util.Types;
import javax.tools.*;
-import javax.tools.JavaFileManager;
-public class TestJavacTaskScanner implements Runnable {
+public class TestJavacTaskScanner extends ToolTester {
final JavacTaskImpl task;
final Elements elements;
final Types types;
- TestJavacTaskScanner(JavacTaskImpl task) {
- this.task = task;
+ int numTokens;
+ int numParseTypeElements;
+ int numAllMembers;
+
+ TestJavacTaskScanner(File file) {
+ final Iterable<? extends JavaFileObject> compilationUnits =
+ fm.getJavaFileObjects(new File[] {file});
+ task = (JavacTaskImpl)tool.getTask(null, fm, null, null, null, compilationUnits);
+ task.getContext().put(Scanner.Factory.scannerFactoryKey,
+ new MyScanner.Factory(task.getContext(), this));
elements = task.getElements();
types = task.getTypes();
}
@@ -71,6 +78,23 @@
System.out.println();
System.out.println();
}
+
+ System.out.println("#tokens: " + numTokens);
+ System.out.println("#parseTypeElements: " + numParseTypeElements);
+ System.out.println("#allMembers: " + numAllMembers);
+
+ check(numTokens, "#Tokens", 891);
+ check(numParseTypeElements, "#parseTypeElements", 136);
+ check(numAllMembers, "#allMembers", 67);
+ }
+
+ void check(int value, String name, int expected) {
+ // allow some slop in the comparison to allow for minor edits in the
+ // test and in the platform
+ if (value < expected * 9 / 10)
+ throw new Error(name + " lower than expected; expected " + expected + "; found: " + value);
+ if (value > expected * 11 / 10)
+ throw new Error(name + " higher than expected; expected " + expected + "; found: " + value);
}
void testParseType(TypeElement clazz) {
@@ -78,23 +102,19 @@
for (Element member : elements.getAllMembers((TypeElement)type.asElement())) {
TypeMirror mt = types.asMemberOf(type, member);
System.out.format("%s : %s -> %s%n", member.getSimpleName(), member.asType(), mt);
+ numParseTypeElements++;
}
}
public static void main(String... args) throws IOException {
- JavaCompilerTool tool = ToolProvider.defaultJavaCompiler();
- JavaFileManager fm = tool.getStandardFileManager();
String srcdir = System.getProperty("test.src");
- File file = new File(srcdir, args[0]);
- JavacTaskImpl task = (JavacTaskImpl)tool.run(null, fm.getFileForInput(file.toString()));
- MyScanner.Factory.preRegister(task.getContext());
- TestJavacTaskScanner tester = new TestJavacTaskScanner(task);
- tester.run();
+ new TestJavacTaskScanner(new File(srcdir, args[0])).run();
}
private void testGetAllMembers(TypeElement clazz) {
for (Element member : elements.getAllMembers(clazz)) {
- System.out.format("%s : %s", member.getSimpleName(), member.asType());
+ System.out.format("%s : %s%n", member.getSimpleName(), member.asType());
+ numAllMembers++;
}
}
}
@@ -102,21 +122,15 @@
class MyScanner extends Scanner {
public static class Factory extends Scanner.Factory {
- public static void preRegister(final Context context) {
- context.put(scannerFactoryKey, new Context.Factory<Scanner.Factory>() {
- public Factory make() {
- return new Factory(context);
- }
- });
- }
- public Factory(Context context) {
+ public Factory(Context context, TestJavacTaskScanner test) {
super(context);
+ this.test = test;
}
@Override
public Scanner newScanner(CharSequence input) {
if (input instanceof CharBuffer) {
- return new MyScanner(this, (CharBuffer)input);
+ return new MyScanner(this, (CharBuffer)input, test);
} else {
char[] array = input.toString().toCharArray();
return newScanner(array, array.length);
@@ -125,18 +139,26 @@
@Override
public Scanner newScanner(char[] input, int inputLength) {
- return new MyScanner(this, input, inputLength);
+ return new MyScanner(this, input, inputLength, test);
}
+
+ private TestJavacTaskScanner test;
}
- protected MyScanner(Factory fac, CharBuffer buffer) {
+ protected MyScanner(Factory fac, CharBuffer buffer, TestJavacTaskScanner test) {
super(fac, buffer);
+ this.test = test;
}
- protected MyScanner(Factory fac, char[] input, int inputLength) {
+ protected MyScanner(Factory fac, char[] input, int inputLength, TestJavacTaskScanner test) {
super(fac, input, inputLength);
+ this.test = test;
}
public void nextToken() {
super.nextToken();
System.err.format("Saw token %s (%s)%n", token(), name());
+ test.numTokens++;
}
+
+ private TestJavacTaskScanner test;
+
}
--- a/langtools/test/tools/javac/code/ArrayClone.java Wed May 27 22:34:43 2009 -0700
+++ b/langtools/test/tools/javac/code/ArrayClone.java Thu May 28 09:49:56 2009 -0700
@@ -25,15 +25,38 @@
* @test
* @bug 4329886
* @summary Clone() on arrays compiled incorrectly
- * @author gafter
- *
- * @ignore Waiting for javap bug 4650860 to be fixed.
- *
- * @run shell ArrayClone.sh
+ * @author gafter jjg
*/
+import java.io.*;
+
/** The qualifying type in the code for array.clone() should be the array type. */
-class ArrayClone {
+public class ArrayClone {
+ public static void main(String[] args) {
+ new ArrayClone().run();
+ }
+
+ public void run() {
+ String[] args = { "-classpath", System.getProperty("test.classes", "."), "-v", "Test" };
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw);
+ int rc = com.sun.tools.javap.Main.run(args, pw);
+ if (rc != 0)
+ throw new Error("javap failed; exit " + rc);
+
+ String out = sw.toString();
+ System.out.println(out);
+
+ for (String line: out.split("\n")) {
+ String match = "[ \t]+[0-9]+:[ \t]+invokevirtual[ \t]+#[0-9]+; //Method \"\\[Ljava/lang/String;\".clone:\\(\\)Ljava/lang/Object;";
+ if (line.matches(match))
+ return;
+ }
+ throw new Error("expected string not found in javap output");
+ }
+}
+
+class Test {
public static void main(String[] args) {
args.clone();
}
--- a/langtools/test/tools/javac/code/ArrayClone.sh Wed May 27 22:34:43 2009 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-#!/bin/sh
-
-#
-# Copyright 2002 Sun Microsystems, Inc. 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
-# CA 95054 USA or visit www.sun.com if you need additional information or
-# have any questions.
-#
-
-
-if [ "${TESTSRC}" = "" ]
-then
- echo "TESTSRC not set. Test cannot execute. Failed."
- exit 1
-fi
-echo "TESTSRC=${TESTSRC}"
-if [ "${TESTJAVA}" = "" ]
-then
- echo "TESTJAVA not set. Test cannot execute. Failed."
- exit 1
-fi
-echo "TESTJAVA=${TESTJAVA}"
-if [ "${TESTCLASSES}" = "" ]
-then
- echo "TESTCLASSES not set. Test cannot execute. Failed."
- exit 1
-fi
-echo "TESTCLASSES=${TESTCLASSES}"
-echo "CLASSPATH=${CLASSPATH}"
-
-# set platform-dependent variables
-OS=`uname -s`
-case "$OS" in
- SunOS | Linux )
- NULL=/dev/null
- PS=":"
- FS="/"
- ;;
- Windows_95 | Windows_98 | Windows_NT )
- NULL=NUL
- PS=";"
- FS="\\"
- ;;
- * )
- echo "Unrecognized system!"
- exit 1;
- ;;
-esac
-
-TMP1=OUTPUT.txt
-
-cp "${TESTSRC}${FS}ArrayClone.java" .
-"${TESTJAVA}${FS}bin${FS}javac" ${TESTTOOLVMOPTS} -target 1.5 ArrayClone.java
-result=$?
-if [ $result -ne 0 ]
-then
- exit $result
-fi
-
-"${TESTJAVA}${FS}bin${FS}javap" ${TESTTOOLVMOPTS} -c ArrayClone > ${TMP1}
-grep WHAT_SHOULD_WE_LOOK_FOR ${TMP1}
-result=$?
-
-if [ $result -eq 0 ]
-then
- echo "Passed"
-else
- echo "Failed"
-fi
-exit $result
--- a/langtools/test/tools/javac/generics/inference/6365166/NewTest.java Wed May 27 22:34:43 2009 -0700
+++ b/langtools/test/tools/javac/generics/inference/6365166/NewTest.java Thu May 28 09:49:56 2009 -0700
@@ -25,7 +25,6 @@
* @test
* @bug 6365166
* @summary javac (generic) unable to resolve methods
- * @ignore waiting for 6365166
* @compile NewTest.java
*/