7087947: Add regression test for 7068051
authorkvn
Thu, 08 Sep 2011 12:44:04 -0700
changeset 10541 d6e8b9d3d362
parent 10540 92d59dba2407
child 10542 93e6f995c75c
7087947: Add regression test for 7068051 Summary: Add regression test. Reviewed-by: never
hotspot/test/compiler/7068051/Test7068051.java
hotspot/test/compiler/7068051/Test7068051.sh
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/test/compiler/7068051/Test7068051.java	Thu Sep 08 12:44:04 2011 -0700
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 2011, 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.
+ *
+ */
+
+/**
+ * @test
+ * @bug 7068051
+ * @summary SIGSEGV in PhaseIdealLoop::build_loop_late_post on T5440
+ *
+ * @run shell/timeout=300 Test7068051.sh
+ */
+
+import java.io.*;
+import java.nio.*;
+import java.util.*;
+import java.util.zip.*;
+
+public class Test7068051 {
+
+    public static void main (String[] args) throws Throwable {
+
+        ZipFile zf = new ZipFile(args[0]);
+
+        Enumeration<? extends ZipEntry> entries = zf.entries();
+        ArrayList<String> names = new ArrayList<String>();
+        while (entries.hasMoreElements()) {
+            names.add(entries.nextElement().getName());
+        }
+
+        byte[] bytes = new byte[16];
+        for (String name : names) {
+            ZipEntry e = zf.getEntry(name);
+
+            if (e.isDirectory())
+                continue;
+
+            final InputStream is = zf.getInputStream(e);
+
+            try  {
+                while (is.read(bytes) >= 0) {
+                }
+                is.close();
+
+            } catch (IOException x) {
+                 System.out.println("..................................");
+                 System.out.println("          -->  is :" + is);
+                 System.out.println("          is.hash :" + is.hashCode());
+                 System.out.println();
+                 System.out.println("           e.name :" + e.getName());
+                 System.out.println("           e.hash :" + e.hashCode());
+                 System.out.println("         e.method :" + e.getMethod());
+                 System.out.println("           e.size :" + e.getSize());
+                 System.out.println("          e.csize :" + e.getCompressedSize());
+
+                 x.printStackTrace();
+                 System.out.println("..................................");
+                 System.exit(97);
+            }
+        }
+        zf.close();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/test/compiler/7068051/Test7068051.sh	Thu Sep 08 12:44:04 2011 -0700
@@ -0,0 +1,49 @@
+#!/bin/sh
+# 
+# Copyright (c) 2011, 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.
+# 
+# 
+
+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}"
+
+set -x
+
+${TESTJAVA}/bin/jar xf ${TESTJAVA}/jre/lib/javaws.jar
+${TESTJAVA}/bin/jar cf foo.jar *
+cp ${TESTSRC}/Test7068051.java ./
+${TESTJAVA}/bin/jar -uf0 foo.jar Test7068051.java
+
+${TESTJAVA}/bin/javac -d . Test7068051.java
+
+${TESTJAVA}/bin/java -showversion -Xbatch ${TESTVMOPTS} Test7068051 foo.jar
+