test/tools/javac/constDebug/ConstDebugTest.java

Tue, 11 Jun 2013 09:59:34 +0100

author
vromero
date
Tue, 11 Jun 2013 09:59:34 +0100
changeset 1819
7fe655cad9b1
parent 1591
dc8b7aa7cef3
child 2525
2eb010b6cb22
permissions
-rw-r--r--

8007907: javap, method com.sun.tools.javap.Main.run returns 0 even in case of class not found error
Reviewed-by: jjg

vromero@1591 1 /*
vromero@1591 2 * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
vromero@1591 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
vromero@1591 4 *
vromero@1591 5 * This code is free software; you can redistribute it and/or modify it
vromero@1591 6 * under the terms of the GNU General Public License version 2 only, as
vromero@1591 7 * published by the Free Software Foundation.
vromero@1591 8 *
vromero@1591 9 * This code is distributed in the hope that it will be useful, but WITHOUT
vromero@1591 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
vromero@1591 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
vromero@1591 12 * version 2 for more details (a copy is included in the LICENSE file that
vromero@1591 13 * accompanied this code).
vromero@1591 14 *
vromero@1591 15 * You should have received a copy of the GNU General Public License version
vromero@1591 16 * 2 along with this work; if not, write to the Free Software Foundation,
vromero@1591 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
vromero@1591 18 *
vromero@1591 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
vromero@1591 20 * or visit www.oracle.com if you need additional information or have any
vromero@1591 21 * questions.
vromero@1591 22 */
vromero@1591 23
vromero@1591 24 /*
vromero@1591 25 * @test
vromero@1591 26 * @bug 4645152 4785453
vromero@1591 27 * @summary javac compiler incorrectly inserts <clinit> when -g is specified
vromero@1591 28 * @run compile -g ConstDebugTest.java
vromero@1591 29 * @run main ConstDebugTest
vromero@1591 30 */
vromero@1819 31 import java.nio.file.Paths;
vromero@1819 32 import com.sun.tools.classfile.ClassFile;
vromero@1819 33 import com.sun.tools.classfile.Method;
vromero@1591 34
vromero@1591 35 public class ConstDebugTest {
vromero@1591 36
vromero@1591 37 public static final long l = 12;
vromero@1591 38
vromero@1591 39 public static void main(String args[]) throws Exception {
vromero@1819 40 ClassFile classFile = ClassFile.read(Paths.get(System.getProperty("test.classes"),
vromero@1819 41 ConstDebugTest.class.getSimpleName() + ".class"));
vromero@1819 42 for (Method method: classFile.methods) {
vromero@1819 43 if (method.getName(classFile.constant_pool).equals("<clinit>")) {
vromero@1819 44 throw new AssertionError(
vromero@1819 45 "javac should not create a <clinit> method for ConstDebugTest class");
vromero@1819 46 }
vromero@1591 47 }
vromero@1591 48 }
vromero@1591 49
vromero@1591 50 }

mercurial