test/jdk/com/sun/jdi/UnpreparedClasses.java
changeset 49009 1ecb986334cb
parent 47216 71c04702a3d5
equal deleted inserted replaced
49008:d777541fceba 49009:1ecb986334cb
     1 /*
     1 /*
     2  * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
    26  * @bug 4368402
    26  * @bug 4368402
    27  * @summary UnpreparedClasses verifies that all the classes in the
    27  * @summary UnpreparedClasses verifies that all the classes in the
    28  * loaded class list are prepared classes.
    28  * loaded class list are prepared classes.
    29  * @author Robert Field
    29  * @author Robert Field
    30  *
    30  *
    31  * @run build JDIScaffold VMConnection
    31  * @run build TestScaffold VMConnection
    32  * @run compile -g InnerTarg.java
    32  * @run compile -g InnerTarg.java
    33  * @run build UnpreparedClasses
    33  * @run build UnpreparedClasses
    34  *
    34  *
    35  * @run driver UnpreparedClasses InnerTarg
    35  * @run driver UnpreparedClasses InnerTarg
    36  */
    36  */
    39 import com.sun.jdi.request.*;
    39 import com.sun.jdi.request.*;
    40 
    40 
    41 import java.util.List;
    41 import java.util.List;
    42 import java.util.Iterator;
    42 import java.util.Iterator;
    43 
    43 
    44 public class UnpreparedClasses extends JDIScaffold {
    44 public class UnpreparedClasses extends TestScaffold {
    45     final String[] args;
       
    46 
    45 
    47     public static void main(String args[]) throws Exception {
    46     public static void main(String args[]) throws Exception {
    48         new UnpreparedClasses(args).startTests();
    47         new UnpreparedClasses(args).startTests();
    49     }
    48     }
    50 
    49 
    51     UnpreparedClasses(String args[]) throws Exception {
    50     UnpreparedClasses(String args[]) throws Exception {
    52         super();
    51         super(args);
    53         this.args = args;
       
    54     }
    52     }
    55 
    53 
    56     protected void runTests() throws Exception {
    54     protected void runTests() throws Exception {
    57         connect(args);
    55         startTo("InnerTarg", "go", "()V");
    58         waitForVMStart();
       
    59         resumeTo("InnerTarg", "go", "()V");
       
    60 
    56 
    61         List all = vm().allClasses();
    57         List all = vm().allClasses();
    62         for (Iterator it = all.iterator(); it.hasNext(); ) {
    58         for (Iterator it = all.iterator(); it.hasNext(); ) {
    63             ReferenceType cls = (ReferenceType)it.next();
    59             ReferenceType cls = (ReferenceType)it.next();
    64             boolean preped = cls.isPrepared() || (cls instanceof ArrayReference);
    60             boolean preped = cls.isPrepared() || (cls instanceof ArrayReference);
    71                 throw new Exception("Class not prepared: " + cls);
    67                 throw new Exception("Class not prepared: " + cls);
    72             }
    68             }
    73         }
    69         }
    74 
    70 
    75         // Allow application to complete
    71         // Allow application to complete
    76         resumeToVMDeath();
    72         resumeToVMDisconnect();
    77     }
    73     }
    78 }
    74 }