summaryrefslogtreecommitdiff
path: root/chapter29/src/test/java/com/seaofnodes/simple/Chapter28bTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'chapter29/src/test/java/com/seaofnodes/simple/Chapter28bTest.java')
-rw-r--r--chapter29/src/test/java/com/seaofnodes/simple/Chapter28bTest.java29
1 files changed, 29 insertions, 0 deletions
diff --git a/chapter29/src/test/java/com/seaofnodes/simple/Chapter28bTest.java b/chapter29/src/test/java/com/seaofnodes/simple/Chapter28bTest.java
new file mode 100644
index 00000000..e0424573
--- /dev/null
+++ b/chapter29/src/test/java/com/seaofnodes/simple/Chapter28bTest.java
@@ -0,0 +1,29 @@
+package com.seaofnodes.simple;
+
+import com.seaofnodes.simple.codegen.CodeGen;
+import org.junit.Ignore;
+import org.junit.Test;
+//
+import static org.junit.Assert.*;
+
+public class Chapter28bTest {
+
+ @Ignore
+ @Test
+ public void testJig() {
+ String src = """
+struct C {
+ int x;
+ new C = { int n ->
+ while(n--)
+ if(n) x=1;
+ };
+};
+return new C(arg).x;
+""";
+ CodeGen code = new CodeGen(src).driver(CodeGen.Phase.TypeCheck);
+ assertEquals("Stop[ return Phi(Loop,0,Phi(Region,1,Phi_x)); return MEM[ 2:___ 3:.x=Phi(Loop,0,Phi(Region,1,Phi_x));]; return MEM[ 2:___ 3:.x=0;]; return Test.C; ]", code.print());
+ assertEquals("1",Eval2.eval(code,3));
+ }
+
+}