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