1 #!/bin/sh 2 3 # 4 # Copyright (c) 2002, 2014 Oracle and/or its affiliates. All rights reserved. 5 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 6 # 7 # This code is free software; you can redistribute it and/or modify it 8 # under the terms of the GNU General Public License version 2 only, as 9 # published by the Free Software Foundation. 10 # 11 # This code is distributed in the hope that it will be useful, but WITHOUT 12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 # version 2 for more details (a copy is included in the LICENSE file that 15 # accompanied this code). 16 # 17 # You should have received a copy of the GNU General Public License version 18 # 2 along with this work; if not, write to the Free Software Foundation, 19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 # 21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 # or visit www.oracle.com if you need additional information or have any 23 # questions. 24 # 25 26 # @test 27 # @bug 4525714 28 # @key intermittent 29 # @summary jtreg test PopAsynchronousTest fails in build 85 with -Xcomp 30 # @author Jim Holmlund/Swamy Venkataramanappa 31 # @run shell DeoptimizeWalk.sh 32 33 # This is another test of the same bug. The bug occurs when trying 34 # to walk the stack of a deoptimized thread. We can do this 35 # by running in -Xcomp mode and by doing a step which causes deopt, 36 # and then a 'where'. This will cause not all the frames to be shown. 37 38 compileOptions=-g 39 40 echo "*********** This test only fails with -Xcomp ***************" 41 createJavaFile() 42 { 43 cat <<EOF > $1.java.1 44 45 public class $1 { 46 static public void main(String[] args) { 47 $1 mine = new $1(); 48 mine.a1(89); 49 } 50 51 public void a1(int p1) { 52 int v1 = 89; 53 System.out.println("a1" + v1); 54 a2(89); 55 } 56 57 58 public void a2(int pp) { 59 int v2 = 89; 60 System.out.println("a2" + v2); 61 a3(89); 62 } 63 64 public void a3(int pp) { 65 int v3 = 89; 66 System.out.println("a3"); //@ 1 breakpoint 67 a4(22); // it passes if this line is commented out 68 System.out.println("jj"); 69 } 70 71 public void a4(int pp) { 72 int v4 = 90; 73 System.out.println("a4: @1 breakpoint here"); 74 } 75 } 76 EOF 77 } 78 79 # This is called to feed cmds to jdb. 80 dojdbCmds() 81 { 82 setBkpts @1 83 runToBkpt @1 84 cmd where 85 #cmd next 86 cmd step 87 cmd where 88 } 89 90 91 mysetup() 92 { 93 if [ -z "$TESTSRC" ] ; then 94 TESTSRC=. 95 fi 96 97 for ii in . $TESTSRC $TESTSRC/.. ; do 98 if [ -r "$ii/ShellScaffold.sh" ] ; then 99 . $ii/ShellScaffold.sh 100 break 101 fi 102 done 103 } 104 105 # You could replace this next line with the contents 106 # of ShellScaffold.sh and this script will run just the same. 107 mysetup 108 109 runit 110 jdbFailIfNotPresent "shtest\.main" 3 111 debuggeeFailIfPresent "Internal exception:" 112 pass