< prev index next >

test/runtime/valhalla/valuetypes/ValueTypeGetField.java

Print this page

        

@@ -10,31 +10,62 @@
  * @run main/othervm -noverify -Xint runtime.valhalla.valuetypes.ValueTypeGetField
  * @run main/othervm -noverify -Xcomp runtime.valhalla.valuetypes.ValueTypeGetField
  */
 public class ValueTypeGetField {
 
-    static Point staticPoint;
-    Point myPoint;
+    static Point staticPoint0;
+    static Point staticPoint1;
+    Point instancePoint0;
+    Point instancePoint1;
+
+    static {
+        staticPoint0 = Point.createPoint(358, 406);
+        staticPoint1 = Point.createPoint(101, 2653);
+    }
+    
+    ValueTypeGetField() {
+        instancePoint0 = Point.createPoint(1890, 1918);
+        instancePoint1 = Point.createPoint(91, 102);
+    }
 
     public static void main(String[] args) {
         ValueTypeGetField valueTypeGetField = new ValueTypeGetField();
+        System.gc(); // check that VTs survive GC
         valueTypeGetField.run();
     }
 
     public void run() {
-        Point p = Point.createPoint(1, 2);
-        fieldTest(p);
-        System.gc(); // check that VTs survive GC
-        fieldTest(p);
-        System.gc(); // check that VTs survive GC
+        // testing initial configuration 
+        checkPoint(staticPoint0, 358, 406);
+        checkPoint(staticPoint1, 101, 2653);
+        checkPoint(instancePoint0, 1890, 1918);
+        checkPoint(instancePoint1, 91, 102);
+        // swapping static fields
+        Point p = staticPoint1;
+        staticPoint1 = staticPoint0;
+        staticPoint0 = p;
+        System.gc();
+        checkPoint(staticPoint0, 101, 2653);
+        checkPoint(staticPoint1, 358, 406);
+        //swapping instance fields
+        p = instancePoint1;
+        instancePoint1 = instancePoint0;
+        instancePoint0 = p;
+        System.gc();
+        checkPoint(instancePoint0, 91, 102);
+        checkPoint(instancePoint1, 1890, 1918);
+        // instance to static
+        staticPoint0 = instancePoint0;
+        System.gc();
+        checkPoint(staticPoint0, 91, 102);
+        // static to instance
+        instancePoint1 = staticPoint1;
+        System.gc();
+        checkPoint(instancePoint1, 358, 406);
     }
 
-    static void fieldTest(Point p) {
-        staticPoint = p;
-        Asserts.assertEquals(staticPoint.x, 1, "invalid staticPoint x value");
-        Asserts.assertEquals(staticPoint.y, 2, "invalid staticPoint y value");
-        ValueTypeGetField valueTypeGetField = new ValueTypeGetField();
-        valueTypeGetField.myPoint = Point.createPoint(5, 6);
-        Asserts.assertEquals(valueTypeGetField.myPoint.x, 5, "invalid myPoint x value");
-        Asserts.assertEquals(valueTypeGetField.myPoint.y, 6, "invalid myPoint y value");
+    static void checkPoint(Point p , int x, int y) {
+        Asserts.assertEquals(p.x, x, "invalid x value");
+        Asserts.assertEquals(p.y, y, "invalid y value");
     }
+    
 }
< prev index next >