changeset in /hg/icedtea6: Backport newly Freed tests.
Andrew John Hughes
ahughes at redhat.com
Tue Feb 10 18:18:55 PST 2009
changeset 5d4d8012aa03 in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=5d4d8012aa03
description:
Backport newly Freed tests.
2009-02-11 Andrew John Hughes <ahughes at redhat.com>
* Makefile.am:
Add new patches.
* patches/openjdk/bidi-tests.patch,
* patches/openjdk/annotation-tests.patch:
New.
diffstat:
4 files changed, 6174 insertions(+), 1 deletion(-)
ChangeLog | 9
Makefile.am | 4
patches/openjdk/annotation-tests.patch | 5867 ++++++++++++++++++++++++++++++++
patches/openjdk/bidi-tests.patch | 295 +
diffs (truncated from 6201 to 500 lines):
diff -r 3b8dcbd3d44d -r 5d4d8012aa03 ChangeLog
--- a/ChangeLog Tue Feb 10 16:19:54 2009 -0500
+++ b/ChangeLog Wed Feb 11 02:18:27 2009 +0000
@@ -1,4 +1,13 @@ 2009-02-10 Deepak Bhole <dbhole at redhat.
+2009-02-11 Andrew John Hughes <ahughes at redhat.com>
+
+ * Makefile.am:
+ Add new patches.
+ * patches/openjdk/bidi-tests.patch,
+ * patches/openjdk/annotation-tests.patch:
+ New.
+
2009-02-10 Deepak Bhole <dbhole at redhat.com>
+
* plugin/icedtea/sun/applet/PluginAppletSecurityContext.java: Fix
exit permissions for applets.
* plugin/icedtea/sun/applet/PluginStreamHandler.java: Fix harmless, but
diff -r 3b8dcbd3d44d -r 5d4d8012aa03 Makefile.am
--- a/Makefile.am Tue Feb 10 16:19:54 2009 -0500
+++ b/Makefile.am Wed Feb 11 02:18:27 2009 +0000
@@ -563,7 +563,9 @@ ICEDTEA_PATCHES += \
patches/icedtea-io_util-overflow.patch \
patches/icedtea-cc-interp-jvmti.patch \
patches/icedtea-pr261.patch \
- patches/icedtea-doc-headers.patch
+ patches/icedtea-doc-headers.patch \
+ patches/openjdk/bidi-tests.patch \
+ patches/openjdk/annotation-tests.patch
if WITH_ALT_HSBUILD
ICEDTEA_PATCHES += \
diff -r 3b8dcbd3d44d -r 5d4d8012aa03 patches/openjdk/annotation-tests.patch
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/openjdk/annotation-tests.patch Wed Feb 11 02:18:27 2009 +0000
@@ -0,0 +1,5867 @@
+# HG changeset patch
+# User darcy
+# Date 1233028166 28800
+# Node ID f3ad2ee4600b102d50a18d83aa797e187819e072
+# Parent 175b6adf65b31782480878f5a65044b4c97fd7cf
+6740185: Move java/lang/annotations tests to open
+Reviewed-by: jjg
+
+diff -Nru openjdk.orig/jdk/test/java/lang/annotation/AnnotationTypeMismatchException/FoundType.java openjdk/jdk/test/java/lang/annotation/AnnotationTypeMismatchException/FoundType.java
+--- openjdk.orig/jdk/test/java/lang/annotation/AnnotationTypeMismatchException/FoundType.java 1970-01-01 01:00:00.000000000 +0100
++++ openjdk/jdk/test/java/lang/annotation/AnnotationTypeMismatchException/FoundType.java 2009-02-11 00:58:01.000000000 +0000
+@@ -0,0 +1,44 @@
++/*
++ * Copyright 2004 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.
++ */
++
++/*
++ * @test
++ * @bug 6179014
++ * @summary AnnotationTypeMismatchException.foundType method shouldn't loop.
++ * @author Scott Seligman
++ * @run main/timeout=30 FoundType
++ */
++
++import java.lang.annotation.*;
++
++public class FoundType {
++
++ private static final String TYPE = "a.halting.Problem";
++
++ public static void main(String[] args) {
++ AnnotationTypeMismatchException ex =
++ new AnnotationTypeMismatchException(null, TYPE);
++ if (!TYPE.equals(ex.foundType()))
++ throw new Error();
++ }
++}
+diff -Nru openjdk.orig/jdk/test/java/lang/annotation/loaderLeak/A.java openjdk/jdk/test/java/lang/annotation/loaderLeak/A.java
+--- openjdk.orig/jdk/test/java/lang/annotation/loaderLeak/A.java 1970-01-01 01:00:00.000000000 +0100
++++ openjdk/jdk/test/java/lang/annotation/loaderLeak/A.java 2009-02-11 00:58:01.000000000 +0000
+@@ -0,0 +1,28 @@
++/*
++ * Copyright 2004 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.
++ */
++
++public
++ at java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME)
++ at interface A {
++ B b();
++}
+diff -Nru openjdk.orig/jdk/test/java/lang/annotation/loaderLeak/B.java openjdk/jdk/test/java/lang/annotation/loaderLeak/B.java
+--- openjdk.orig/jdk/test/java/lang/annotation/loaderLeak/B.java 1970-01-01 01:00:00.000000000 +0100
++++ openjdk/jdk/test/java/lang/annotation/loaderLeak/B.java 2009-02-11 00:58:01.000000000 +0000
+@@ -0,0 +1,24 @@
++/*
++ * Copyright 2004 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.
++ */
++
++public @interface B {}
+diff -Nru openjdk.orig/jdk/test/java/lang/annotation/loaderLeak/C.java openjdk/jdk/test/java/lang/annotation/loaderLeak/C.java
+--- openjdk.orig/jdk/test/java/lang/annotation/loaderLeak/C.java 1970-01-01 01:00:00.000000000 +0100
++++ openjdk/jdk/test/java/lang/annotation/loaderLeak/C.java 2009-02-11 00:58:01.000000000 +0000
+@@ -0,0 +1,24 @@
++/*
++ * Copyright 2004 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.
++ */
++
++public @A(b=@B()) class C {}
+diff -Nru openjdk.orig/jdk/test/java/lang/annotation/loaderLeak/LoaderLeak.sh openjdk/jdk/test/java/lang/annotation/loaderLeak/LoaderLeak.sh
+--- openjdk.orig/jdk/test/java/lang/annotation/loaderLeak/LoaderLeak.sh 1970-01-01 01:00:00.000000000 +0100
++++ openjdk/jdk/test/java/lang/annotation/loaderLeak/LoaderLeak.sh 2009-02-05 08:45:04.000000000 +0000
+@@ -0,0 +1,84 @@
++#!/bin/sh
++
++# Copyright 2004 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* )
++ NULL=NUL
++ PS=";"
++ FS="\\"
++ ;;
++ * )
++ echo "Unrecognized system!"
++ exit 1;
++ ;;
++esac
++
++mkdir -p classes
++cp ${TESTSRC}${FS}*.java .
++${TESTJAVA}${FS}bin${FS}javac -d classes A.java B.java C.java
++${TESTJAVA}${FS}bin${FS}javac Main.java
++${TESTJAVA}${FS}bin${FS}java Main
++result=$?
++if [ $result -eq 0 ]
++then
++ echo "Passed 1 of 2"
++else
++ echo "Failed 1 of 2"
++ exit $result
++fi
++${TESTJAVA}${FS}bin${FS}java Main foo
++result=$?
++if [ $result -eq 0 ]
++then
++ echo "Passed 2 of 2"
++else
++ echo "Failed 2 of 2"
++fi
++exit $result
+diff -Nru openjdk.orig/jdk/test/java/lang/annotation/loaderLeak/Main.java openjdk/jdk/test/java/lang/annotation/loaderLeak/Main.java
+--- openjdk.orig/jdk/test/java/lang/annotation/loaderLeak/Main.java 1970-01-01 01:00:00.000000000 +0100
++++ openjdk/jdk/test/java/lang/annotation/loaderLeak/Main.java 2009-02-11 00:58:01.000000000 +0000
+@@ -0,0 +1,127 @@
++/*
++ * Copyright 2004 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.
++ */
++
++/*
++ * @test
++ * @bug 5040740
++ * @summary annotations cause memory leak
++ * @author gafter
++ *
++ * @run shell LoaderLeak.sh
++ */
++
++import java.net.*;
++import java.lang.ref.*;
++import java.util.*;
++import java.io.*;
++
++public class Main {
++ public static void main(String[] args) throws Exception {
++ for (int i=0; i<100; i++)
++ doTest(args.length != 0);
++ }
++
++ static void doTest(boolean readAnn) throws Exception {
++ // URL classes = new URL("file://" + System.getProperty("user.dir") + "/classes");
++ // URL[] path = { classes };
++ // URLClassLoader loader = new URLClassLoader(path);
++ ClassLoader loader = new SimpleClassLoader();
++ WeakReference<Class<?>> c = new WeakReference(loader.loadClass("C"));
++ if (c.get() == null) throw new AssertionError();
++ if (c.get().getClassLoader() != loader) throw new AssertionError();
++ if (readAnn) System.out.println(c.get().getAnnotations()[0]);
++ if (c.get() == null) throw new AssertionError();
++ System.gc();
++ System.gc();
++ if (c.get() == null) throw new AssertionError();
++ System.gc();
++ System.gc();
++ loader = null;
++ System.gc();
++ System.gc();
++ if (c.get() != null) throw new AssertionError();
++ }
++}
++
++class SimpleClassLoader extends ClassLoader {
++ private Hashtable classes = new Hashtable();
++
++ public SimpleClassLoader() {
++ }
++ private byte getClassImplFromDataBase(String className)[] {
++ byte result[];
++ try {
++ FileInputStream fi = new FileInputStream("classes/"+className+".class");
++ result = new byte[fi.available()];
++ fi.read(result);
++ return result;
++ } catch (Exception e) {
++
++ /*
++ * If we caught an exception, either the class wasnt found or it
++ * was unreadable by our process.
++ */
++ return null;
++ }
++ }
++ public Class loadClass(String className) throws ClassNotFoundException {
++ return (loadClass(className, true));
++ }
++ public synchronized Class loadClass(String className, boolean resolveIt)
++ throws ClassNotFoundException {
++ Class result;
++ byte classData[];
++
++ /* Check our local cache of classes */
++ result = (Class)classes.get(className);
++ if (result != null) {
++ return result;
++ }
++
++ /* Check with the primordial class loader */
++ try {
++ result = super.findSystemClass(className);
++ return result;
++ } catch (ClassNotFoundException e) {
++ }
++
++ /* Try to load it from our repository */
++ classData = getClassImplFromDataBase(className);
++ if (classData == null) {
++ throw new ClassNotFoundException();
++ }
++
++ /* Define it (parse the class file) */
++ result = defineClass(classData, 0, classData.length);
++ if (result == null) {
++ throw new ClassFormatError();
++ }
++
++ if (resolveIt) {
++ resolveClass(result);
++ }
++
++ classes.put(className, result);
++ return result;
++ }
++}
+diff -Nru openjdk.orig/jdk/test/java/lang/annotation/Missing/A.java openjdk/jdk/test/java/lang/annotation/Missing/A.java
+--- openjdk.orig/jdk/test/java/lang/annotation/Missing/A.java 1970-01-01 01:00:00.000000000 +0100
++++ openjdk/jdk/test/java/lang/annotation/Missing/A.java 2009-02-11 00:58:01.000000000 +0000
+@@ -0,0 +1,30 @@
++/*
++ * Copyright 2005 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.
++ */
++
++/**
++ * Class to have a missing annotation applied for running MissingTest.
++ */
++ at Missing
++ at Marker
++public class A {
++}
+diff -Nru openjdk.orig/jdk/test/java/lang/annotation/Missing/B.java openjdk/jdk/test/java/lang/annotation/Missing/B.java
+--- openjdk.orig/jdk/test/java/lang/annotation/Missing/B.java 1970-01-01 01:00:00.000000000 +0100
++++ openjdk/jdk/test/java/lang/annotation/Missing/B.java 2009-02-11 00:58:01.000000000 +0000
+@@ -0,0 +1,31 @@
++/*
++ * Copyright 2005 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.
++ */
++
++/**
++ * Class to have an indirectly missing annotation applied for for
++ * running MisssingTest.
++ */
++ at MissingWrapper(@Missing)
++ at Marker
++public class B {
++}
+diff -Nru openjdk.orig/jdk/test/java/lang/annotation/Missing/C.java openjdk/jdk/test/java/lang/annotation/Missing/C.java
+--- openjdk.orig/jdk/test/java/lang/annotation/Missing/C.java 1970-01-01 01:00:00.000000000 +0100
++++ openjdk/jdk/test/java/lang/annotation/Missing/C.java 2009-02-11 00:58:01.000000000 +0000
+@@ -0,0 +1,31 @@
++/*
++ * Copyright 2005 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.
++ */
++
++/**
++ * Class to have a missing annotation applied for running MissingTest.
++ */
++public class C {
++ public void method1(@Missing @Marker Object param1) {
++ return;
More information about the distro-pkg-dev
mailing list