Capturing tests before making big changes to ownership analysis.
authorjjenista <jjenista>
Tue, 5 Feb 2008 22:13:21 +0000 (22:13 +0000)
committerjjenista <jjenista>
Tue, 5 Feb 2008 22:13:21 +0000 (22:13 +0000)
Robust/src/Tests/OwnershipAnalysisTest/test01/makefile
Robust/src/Tests/OwnershipAnalysisTest/test01/test01.java
Robust/src/Tests/OwnershipAnalysisTest/testGraphs/Main.java

index b312633c211dab93acfc6fa39f73771e84e4c28c..0df41740e54babc14290c6f724d2cdce880c4170 100644 (file)
@@ -14,7 +14,7 @@ view: PNGs
 
 PNGs: DOTs
        rm -f *Startup*.dot
-       #rm -f *FN*Method*.dot
+       rm -f *FN*Method*.dot
        rm -f *FN*Op*.dot
        rm -f *FN*Field*.dot
        rm -f *FN*SetField*.dot
index dccb32237ea6deb056d2b63bc61b80f9bdd41684..9910cd5ba0156d67462385f6dfd49e8721d810e7 100644 (file)
@@ -13,6 +13,7 @@ task Startup( StartupObject s{ initialstate } ) {
     taskexit( s{ !initialstate } );
 }
 
+/*
 task aliasFromObjectAssignment
     ( Parameter p1{!w}, Parameter p2{!w} ) {
     
@@ -74,3 +75,74 @@ task possibleAliasConditional
 
     taskexit( p1{w}, p2{w} );
 }
+
+task bunchOfPaths
+    ( Parameter p1{!w}, Parameter p2{!w} ) {
+
+    Parameter y;
+
+    for( int i =0; i < 100; ++i ) {
+
+       if( y == p1 ) {
+           Parameter z;
+
+           for( int j = 0; i < 50; ++j ) {
+               if( z == y ) {
+                   p1.f = y;
+               } else {
+                   z = p2.g;
+               }
+
+               p1.f = z;
+           }
+
+           y = p1.g;
+       } else {
+
+           p2.f = y;
+       }
+    }
+
+    p1.f = p2.g;
+
+
+    taskexit( p1{w}, p2{w} );
+}
+
+task literalTest( Parameter p1{!w} ) {
+    Parameter x = null;
+    int y = 5;
+    String s = "Dude";
+
+    taskexit( p1{w} );
+}
+*/
+
+task newNoAlias
+    ( Parameter p1{!w}, Parameter p2{!w} ) {
+
+    for( int i = 0; i < 1; ++i ) {
+       p1.f = new Parameter();
+    }
+
+    taskexit( p1{w}, p2{w} );
+}
+
+task newPossibleAlias
+    ( Parameter p1{!w}, Parameter p2{!w} ) {
+
+    Parameter x, y;
+
+    for( int i = 0; i < 1; ++i ) {
+       p1.f = new Parameter();
+       if( true ) {
+           x = p1.f;
+       } else {
+           y = p1.f;
+       }
+    }
+
+    p2.f = y;
+
+    taskexit( p1{w}, p2{w} );
+}
index 76c84fa2d34a3d71cd2f2aa53813024af06f21de..0df31d60a13ee0c88f8c01cb478fcde627b53ac4 100644 (file)
@@ -7,43 +7,68 @@ import java.io.*;
 
 public class Main {
 
+    protected static void test( String test,
+                               boolean expected,
+                               boolean result ) {
+
+       String outcome = "...\tFAILED";
+       if( expected == result ) {
+           outcome = "...\tpassed";
+       }
+       
+       System.out.println( test+" expected "+expected+outcome );
+    }
+
     public static void main(String args[]) throws Exception {
 
+       /*
+       OwnershipNode n0 = new OwnershipNode( new Integer( 1 ) );
+       OwnershipNode n1 = new OwnershipNode( new Integer( 1 ) );
+       OwnershipNode n2 = new OwnershipNode( new Integer( 2 ) );
+       
+       test( "n0 equals n1?", true,  n0.equals( n1 ) );
+       test( "n0 equals n2?", false, n0.equals( n2 ) );
+       test( "n1 equals n2?", false, n1.equals( n2 ) );
+       */
+
+
+
        // ownership graphs g3 and g4 are equivalent
        // graphs as specified in OwnershipGraph.java, 
        // just built different objects that contain the
        // equivalent values and merged in a different
        // order
+       int newDepthK = 3;
 
-       OwnershipGraph g0     = new OwnershipGraph();
+       OwnershipGraph g0     = new OwnershipGraph( newDepthK );
        TempDescriptor g0tdp1 = new TempDescriptor( "p1" );
        TempDescriptor g0tdx  = new TempDescriptor( "x" );
-       g0.newHeapRegion   ( g0tdp1 );
-       g0.assignTempToTemp( g0tdx, g0tdp1 );
+       g0.parameterAllocation( g0tdp1 );
+       g0.assignTempToTemp   ( g0tdx, g0tdp1 );
 
-       OwnershipGraph g1     = new OwnershipGraph();
+       OwnershipGraph g1     = new OwnershipGraph( newDepthK );
        TempDescriptor g1tdp2 = new TempDescriptor( "p2" );
        TempDescriptor g1tdy  = new TempDescriptor( "y" );
        TempDescriptor g1tdz  = new TempDescriptor( "z" );
-       g1.newHeapRegion    ( g1tdp2 );
-       g1.assignTempToTemp ( g1tdy, g1tdp2 );
-       g1.assignTempToField( g1tdz, g1tdp2, null );
+       g1.parameterAllocation( g1tdp2 );
+       g1.assignTempToTemp   ( g1tdy, g1tdp2 );
+       g1.assignTempToField  ( g1tdz, g1tdp2, null );
 
-       OwnershipGraph g2     = new OwnershipGraph();
+       OwnershipGraph g2     = new OwnershipGraph( newDepthK );
        TempDescriptor g2tdp3 = new TempDescriptor( "p3" );
        TempDescriptor g2tdp4 = new TempDescriptor( "p4" );
        TempDescriptor g2tdw  = new TempDescriptor( "w" );
-       g2.newHeapRegion    ( g2tdp3 );
-       g2.newHeapRegion    ( g2tdp4 );
-       g2.assignTempToTemp ( g2tdw,  g2tdp4 );
-       g2.assignFieldToTemp( g2tdp3, g2tdw, null );
+       g2.parameterAllocation( g2tdp3 );
+       g2.parameterAllocation( g2tdp4 );
+       g2.assignTempToTemp   ( g2tdw,  g2tdp4 );
+       g2.assignFieldToTemp  ( g2tdp3, g2tdw, null );
 
-       OwnershipGraph g3 = new OwnershipGraph();
+       OwnershipGraph g3 = new OwnershipGraph( newDepthK );
        g3.merge( g0 );
        g3.merge( g1 );
        g3.merge( g2 );
 
-       OwnershipGraph g4 = new OwnershipGraph();
+       OwnershipGraph g4 = new OwnershipGraph( newDepthK );
        g4.merge( g1 );
        g4.merge( g2 );
        g4.merge( g0 );
@@ -51,39 +76,24 @@ public class Main {
        test( "4 == 5?", false, 4 == 5 );
        test( "3 == 3?", true,  3 == 3 );
 
-       test( "g0 equivalent to g1?", false, g0.equivalent( g1 ) );
-       test( "g1 equivalent to g0?", false, g1.equivalent( g0 ) );
-
-       test( "g0 equivalent to g2?", false, g0.equivalent( g2 ) );
-       test( "g2 equivalent to g0?", false, g2.equivalent( g0 ) );
+       test( "g0 equals to g1?", false, g0.equals( g1 ) );
+       test( "g1 equals to g0?", false, g1.equals( g0 ) );
 
-       test( "g1 equivalent to g2?", false, g1.equivalent( g2 ) );
-       test( "g2 equivalent to g1?", false, g2.equivalent( g1 ) );
+       test( "g0 equals to g2?", false, g0.equals( g2 ) );
+       test( "g2 equals to g0?", false, g2.equals( g0 ) );
 
-       test( "g3 equivalent to g0?", false, g3.equivalent( g0 ) );
-       test( "g3 equivalent to g1?", false, g3.equivalent( g1 ) );
-       test( "g3 equivalent to g2?", false, g3.equivalent( g2 ) );
+       test( "g1 equals to g2?", false, g1.equals( g2 ) );
+       test( "g2 equals to g1?", false, g2.equals( g1 ) );
 
-       test( "g4 equivalent to g0?", false, g4.equivalent( g0 ) );
-       test( "g4 equivalent to g1?", false, g4.equivalent( g1 ) );
-       test( "g4 equivalent to g2?", false, g4.equivalent( g2 ) );
-       
-       test( "g3 equivalent to g4?", true,  g3.equivalent( g4 ) );
-       test( "g4 equivalent to g3?", true,  g4.equivalent( g3 ) );
-    }
+       test( "g3 equals to g0?", false, g3.equals( g0 ) );
+       test( "g3 equals to g1?", false, g3.equals( g1 ) );
+       test( "g3 equals to g2?", false, g3.equals( g2 ) );
 
-    protected static void test( String test,
-                               boolean expected,
-                               boolean result ) {
-
-       String outcome = "... FAILED";
-       if( expected == result ) {
-           outcome = "... passed";
-       }
+       test( "g4 equals to g0?", false, g4.equals( g0 ) );
+       test( "g4 equals to g1?", false, g4.equals( g1 ) );
+       test( "g4 equals to g2?", false, g4.equals( g2 ) );
        
-       System.out.println( test + 
-                           " expected " + 
-                           expected + 
-                           outcome );
+       test( "g3 equals to g4?", true,  g3.equals( g4 ) );
+       test( "g4 equals to g3?", true,  g4.equals( g3 ) );
     }
 }
\ No newline at end of file