Path: blob/aarch64-shenandoah-jdk8u272-b10/langtools/test/tools/javap/T4880672.java
32285 views
/*1* Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation.7*8* This code is distributed in the hope that it will be useful, but WITHOUT9* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or10* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License11* version 2 for more details (a copy is included in the LICENSE file that12* accompanied this code).13*14* You should have received a copy of the GNU General Public License version15* 2 along with this work; if not, write to the Free Software Foundation,16* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.17*18* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA19* or visit www.oracle.com if you need additional information or have any20* questions.21*/222324/*25* @test26* @bug 4880672 703100527* @summary javap does not output inner interfaces of an interface28*/2930import java.io.*;31import java.util.*;3233public class T488067234{35public static void main(String... args) {36new T4880672().run();37}3839void run() {40verify("java.util.Map", "public interface java.util.Map$Entry");41verify("T4880672", "class T4880672$A$B");42verify("C", ""); // must not give error if no InnerClasses attribute43if (errors > 0)44throw new Error(errors + " found.");45}4647void verify(String className, String... expects) {48String output = javap(className);49for (String expect: expects) {50if (output.indexOf(expect)< 0)51error(expect + " not found");52}53}5455void error(String msg) {56System.err.println(msg);57errors++;58}5960int errors;6162String javap(String className) {63String testClasses = System.getProperty("test.classes", ".");64StringWriter sw = new StringWriter();65PrintWriter out = new PrintWriter(sw);66String[] args = { "-XDinner", "-classpath", testClasses, className };67int rc = com.sun.tools.javap.Main.run(args, out);68out.close();69String output = sw.toString();70System.out.println("class " + className);71System.out.println(output);72if (rc != 0)73throw new Error("javap failed. rc=" + rc);74if (output.indexOf("Error:") != -1)75throw new Error("javap reported error.");76return output;77}7879class A {80class B { }81}82}8384class C { }85868788