Initial import
[jpf-core.git] / src / tests / gov / nasa / jpf / test / vm / basic / ClassInitTest.java
1 /*
2  * Copyright (C) 2015, United States Government, as represented by the
3  * Administrator of the National Aeronautics and Space Administration.
4  * All rights reserved.
5  *
6  * The Java Pathfinder core (jpf-core) platform is licensed under the
7  * Apache License, Version 2.0 (the "License"); you may not use this file except
8  * in compliance with the License. You may obtain a copy of the License at
9  *
10  *        http://www.apache.org/licenses/LICENSE-2.0.
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */
18 package gov.nasa.jpf.test.vm.basic;
19
20 import gov.nasa.jpf.util.test.TestJPF;
21 import org.junit.Test;
22
23 /**
24  * basic regression test for class initialization
25  */
26 public class ClassInitTest extends TestJPF {
27
28     static class Root {
29         static int data;
30         static {
31             System.out.println("in Root.<clinit>()");
32             data = 42;
33         }
34     }
35
36     static class Base extends Root {
37         static int data;
38         static {
39             System.out.println("in Base.<clinit>()");
40             data = Root.data + 1;
41         }
42     }
43
44     static class Derived extends Base {
45         static int data;
46         static {
47             System.out.println("in Derived.<clinit>()");
48             data = Base.data + 1;
49         }
50     }
51
52     @Test
53     public void testClinits (){
54         if (verifyNoPropertyViolation()){
55             int n = Derived.data;
56             assertTrue(n == 44);
57         }
58     }
59 }