You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by tc...@apache.org on 2006/06/12 16:08:21 UTC

svn commit: r413659 - in /jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/bytecode/transformation: rewrite/SimpleSynchronized.java rewrite/SimpleTryCatch.java tests/AbstractSimpleTestCase.java

Author: tcurdt
Date: Mon Jun 12 07:08:21 2006
New Revision: 413659

URL: http://svn.apache.org/viewvc?rev=413659&view=rev
Log:
tests for the outstanding issues: try/catch/finally/synchronized

Added:
    jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/bytecode/transformation/rewrite/SimpleSynchronized.java   (with props)
    jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/bytecode/transformation/rewrite/SimpleTryCatch.java   (with props)
Modified:
    jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/bytecode/transformation/tests/AbstractSimpleTestCase.java

Added: jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/bytecode/transformation/rewrite/SimpleSynchronized.java
URL: http://svn.apache.org/viewvc/jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/bytecode/transformation/rewrite/SimpleSynchronized.java?rev=413659&view=auto
==============================================================================
--- jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/bytecode/transformation/rewrite/SimpleSynchronized.java (added)
+++ jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/bytecode/transformation/rewrite/SimpleSynchronized.java Mon Jun 12 07:08:21 2006
@@ -0,0 +1,30 @@
+package org.apache.commons.javaflow.bytecode.transformation.rewrite;
+
+import org.apache.commons.javaflow.Continuation;
+
+public final class SimpleSynchronized implements Runnable {
+
+	public boolean a = false;
+	public boolean b = false;
+	public boolean c = false;
+	public boolean d = false;
+	public boolean e = false;
+	public boolean f = false;
+
+	private Object o = new Object();
+	
+	public void run() {		
+		a = true;
+		Continuation.suspend();
+		b = true;
+		synchronized(o) {
+			c = true;
+			Continuation.suspend();
+			d = true;
+		}
+		e = true;
+		Continuation.suspend();
+		f = true;		
+    }
+
+}
\ No newline at end of file

Propchange: jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/bytecode/transformation/rewrite/SimpleSynchronized.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/bytecode/transformation/rewrite/SimpleSynchronized.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/bytecode/transformation/rewrite/SimpleTryCatch.java
URL: http://svn.apache.org/viewvc/jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/bytecode/transformation/rewrite/SimpleTryCatch.java?rev=413659&view=auto
==============================================================================
--- jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/bytecode/transformation/rewrite/SimpleTryCatch.java (added)
+++ jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/bytecode/transformation/rewrite/SimpleTryCatch.java Mon Jun 12 07:08:21 2006
@@ -0,0 +1,39 @@
+package org.apache.commons.javaflow.bytecode.transformation.rewrite;
+
+import org.apache.commons.javaflow.Continuation;
+
+public final class SimpleTryCatch implements Runnable {
+
+	public boolean a = false;
+	public boolean b = false;
+	public boolean c = false;
+	public boolean d = false;
+	public boolean e = false;
+	public boolean f = false;
+
+	private final boolean throwException;
+	
+	public SimpleTryCatch(final boolean pThrowException) {
+		throwException = pThrowException;
+	}
+	
+	public void run() {
+    	try {
+    		a = true;
+    		Continuation.suspend();
+    		if (throwException) {
+    			throw new Exception("exception");
+    		}
+    		b = true;
+    	} catch(Exception e) {
+    		c = true;
+    		Continuation.suspend();
+    		d = true;
+    	} finally {
+    		e = true;
+    		Continuation.suspend();
+    		f = true;
+    	}    	
+    }
+
+}
\ No newline at end of file

Propchange: jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/bytecode/transformation/rewrite/SimpleTryCatch.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/bytecode/transformation/rewrite/SimpleTryCatch.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/bytecode/transformation/tests/AbstractSimpleTestCase.java
URL: http://svn.apache.org/viewvc/jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/bytecode/transformation/tests/AbstractSimpleTestCase.java?rev=413659&r1=413658&r2=413659&view=diff
==============================================================================
--- jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/bytecode/transformation/tests/AbstractSimpleTestCase.java (original)
+++ jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/bytecode/transformation/tests/AbstractSimpleTestCase.java Mon Jun 12 07:08:21 2006
@@ -3,12 +3,119 @@
 import org.apache.commons.javaflow.Continuation;
 import org.apache.commons.javaflow.bytecode.transformation.AbstractTransformerTestCase;
 import org.apache.commons.javaflow.bytecode.transformation.rewrite.Simple;
+import org.apache.commons.javaflow.bytecode.transformation.rewrite.SimpleSynchronized;
+import org.apache.commons.javaflow.bytecode.transformation.rewrite.SimpleTryCatch;
 
 public abstract class AbstractSimpleTestCase extends AbstractTransformerTestCase {
 
     public void testSimpleSuspend() throws Exception {
-        final Runnable r = new Simple();
+        final Simple r = new Simple();
         final Continuation c = Continuation.startWith(r);
         assertTrue(c != null);
+    }
+
+    public void testSimpleTryCatchWithoutException() throws Exception {
+        final SimpleTryCatch r = new SimpleTryCatch(false);
+        Continuation c;
+
+        c = Continuation.startWith(r);
+        assertTrue(c != null);
+        assertTrue(r.a);
+        assertFalse(r.b);
+        assertFalse(r.c);
+        assertFalse(r.d);
+        assertFalse(r.e);
+        assertFalse(r.f);
+
+        c = Continuation.continueWith(c);
+        assertTrue(c != null);
+        assertTrue(r.a);
+        assertTrue(r.b);
+        assertFalse(r.c);
+        assertFalse(r.d);
+        assertTrue(r.e);
+        assertFalse(r.f);
+
+        c = Continuation.continueWith(c);
+        assertTrue(c != null);
+        assertTrue(r.a);
+        assertTrue(r.b);
+        assertFalse(r.c);
+        assertFalse(r.d);
+        assertTrue(r.e);
+        assertTrue(r.f);    
+    }
+
+    public void testSimpleTryCatchWithException() throws Exception {
+        final SimpleTryCatch r = new SimpleTryCatch(true);
+        Continuation c;
+
+        c = Continuation.startWith(r);
+        assertTrue(c != null);
+        assertTrue(r.a);
+        assertFalse(r.b);
+        assertFalse(r.c);
+        assertFalse(r.d);
+        assertFalse(r.e);
+        assertFalse(r.f);
+
+        c = Continuation.continueWith(c);
+        assertTrue(c != null);
+        assertTrue(r.a);
+        assertFalse(r.b);
+        assertTrue(r.c);
+        assertFalse(r.d);
+        assertFalse(r.e);
+        assertFalse(r.f);
+
+        c = Continuation.continueWith(c);
+        assertTrue(c != null);
+        assertTrue(r.a);
+        assertTrue(r.b);
+        assertFalse(r.c);
+        assertFalse(r.d);
+        assertTrue(r.e);
+        assertTrue(r.f);    
+    }
+
+    public void testSimpleSynchronized() throws Exception {
+        final SimpleSynchronized r = new SimpleSynchronized();
+        Continuation c;
+
+        c = Continuation.startWith(r);
+        assertTrue(c != null);
+        assertTrue(r.a);
+        assertFalse(r.b);
+        assertFalse(r.c);
+        assertFalse(r.d);
+        assertFalse(r.e);
+        assertFalse(r.f);
+
+        c = Continuation.continueWith(c);
+        assertTrue(c != null);
+        assertTrue(r.a);
+        assertTrue(r.b);
+        assertTrue(r.c);
+        assertFalse(r.d);
+        assertFalse(r.e);
+        assertFalse(r.f);
+
+        c = Continuation.continueWith(c);
+        assertTrue(c != null);
+        assertTrue(r.a);
+        assertTrue(r.b);
+        assertTrue(r.c);
+        assertTrue(r.d);
+        assertTrue(r.e);
+        assertFalse(r.f);
+
+        c = Continuation.continueWith(c);
+        assertTrue(c != null);
+        assertTrue(r.a);
+        assertTrue(r.b);
+        assertTrue(r.c);
+        assertTrue(r.d);
+        assertTrue(r.e);
+        assertTrue(r.f);
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org