1 /*
2  * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
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
7  * published by the Free Software Foundation.
8  *
9  * This code is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12  * version 2 for more details (a copy is included in the LICENSE file that
13  * accompanied this code).
14  *
15  * You should have received a copy of the GNU General Public License version
16  * 2 along with this work; if not, write to the Free Software Foundation,
17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18  *
19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20  * or visit www.oracle.com if you need additional information or have any
21  * questions.
22  */
23 
24 /*
25  * @test
26  *
27  * @summary converted from VM Testbase jit/verifier/VerifyInitLocal.
28  * VM Testbase keywords: [jit, quick]
29  *
30  * @library /vmTestbase
31  *          /test/lib
32  * @run driver jdk.test.lib.FileInstaller . .
33  * @compile VerifyInitLocal1P.jasm
34  * @compile VerifyInitLocal2N.jasm
35  * @compile VerifyInitLocal3N.jasm
36  * @run main/othervm jit.verifier.VerifyInitLocal.VerifyInitLocal
37  */
38 
39 package jit.verifier.VerifyInitLocal;
40 
41 import nsk.share.TestFailure;
42 
43 /**
44  * @(#)VerifyInitLocal.java       1.1 01/03/15
45  * @bug 4408261
46  * @summary Make sure verifier allows initialization of local fields.
47  */
48 
49 public abstract class VerifyInitLocal {
50     static final boolean debug = true;
main(String[] args)51     public static void main(String[] args) throws Exception {
52         String[] classes = { "jit.verifier.VerifyInitLocal.VerifyInitLocal1P",
53                              "jit.verifier.VerifyInitLocal.VerifyInitLocal2N",
54                              "jit.verifier.VerifyInitLocal.VerifyInitLocal3N" };
55         for (int i = 0; i < classes.length; i++) {
56             boolean is_neg = classes[i].endsWith("N");
57             try {
58                 if (debug)  System.out.println(classes[i]);
59                 Class.forName(classes[i]).newInstance();
60                 if (is_neg) {
61                     throw new TestFailure("shouldn't successfully verify " +
62                                             classes[i]);
63                 }
64             } catch (VerifyError e) {
65                 if (!is_neg) {
66                     System.out.println(e);
67                     throw new TestFailure("should successfully verify " +
68                                             classes[i]);
69                 }
70                 if (debug)  System.out.println(e);
71             }
72         }
73     }
74 
75     // Superclass stuff for tests to inherit from:
76     protected boolean touch_me_not;
VerifyInitLocal()77     VerifyInitLocal() {
78         if (!verify()) {
79             throw new TestFailure("verify()==false in " + getClass());
80         }
81     }
verify()82     public abstract boolean verify();
83 }
84