diff options
Diffstat (limited to 'chapter29/src/test/java/com/seaofnodes/simple/Chapter28bTest.java')
| -rw-r--r-- | chapter29/src/test/java/com/seaofnodes/simple/Chapter28bTest.java | 29 |
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)); + } + +} |
