diff -r a6dc784b18a8 -r b5015f742ba6 jdk/test/java/lang/StackWalker/CountLocalSlots.java --- a/jdk/test/java/lang/StackWalker/CountLocalSlots.java Thu Feb 16 14:47:39 2017 -0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,62 +0,0 @@ -/* - * Copyright (c) 2016, 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 8147039 - * @summary Confirm locals[] always has expected length, even for "dead" locals - * @modules java.base/java.lang:open - * @compile LocalsAndOperands.java - * @run testng/othervm -Xcomp CountLocalSlots - */ - -import org.testng.annotations.Test; -import java.lang.StackWalker.StackFrame; - -public class CountLocalSlots { - final static boolean debug = true; - - @Test(dataProvider = "provider", dataProviderClass = LocalsAndOperands.class) - public void countLocalSlots(StackFrame... frames) { - for (StackFrame frame : frames) { - if (debug) { - System.out.println("Running countLocalSlots"); - LocalsAndOperands.dumpStackWithLocals(frames); - } - // Confirm expected number of locals - String methodName = frame.getMethodName(); - Integer expectedObj = (Integer) LocalsAndOperands.Tester.NUM_LOCALS.get(methodName); - if (expectedObj == null) { - if (!debug) { LocalsAndOperands.dumpStackWithLocals(frames); } - throw new RuntimeException("No NUM_LOCALS entry for " + - methodName + "(). Update test?"); - } - Object[] locals = (Object[]) LocalsAndOperands.invokeGetLocals(frame); - if (locals.length != expectedObj) { - if (!debug) { LocalsAndOperands.dumpStackWithLocals(frames); } - throw new RuntimeException(methodName + "(): number of locals (" + - locals.length + ") did not match expected (" + expectedObj + ")"); - } - } - } -}