diff options
Diffstat (limited to 'src/test/java/com/seaofnodes/simple/PhaseTest.java')
| -rw-r--r-- | src/test/java/com/seaofnodes/simple/PhaseTest.java | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/test/java/com/seaofnodes/simple/PhaseTest.java b/src/test/java/com/seaofnodes/simple/PhaseTest.java index 885889a8..899f42fe 100644 --- a/src/test/java/com/seaofnodes/simple/PhaseTest.java +++ b/src/test/java/com/seaofnodes/simple/PhaseTest.java @@ -27,7 +27,7 @@ public class PhaseTest { code.driver(Phase.LoopTree); assertEquals(Phase.LoopTree,code._phase); code.driver(Phase.LocalSched); - assertEquals("Parse Iter FinalizeIR TypeCheck LoopTree Schedule LocalSched",String.join(" ",phases)); + assertEquals("Parse Iter Opto IterPostOpto FinalizeIR TypeCheck LoopTree Schedule LocalSched",String.join(" ",phases)); assertEquals("45",Eval2.eval(code,10)); } @@ -39,4 +39,18 @@ public class PhaseTest { CodeGen direct = new CodeGen(SRC).driver(Phase.Encoding,"x86_64_v2","SystemV"); assertArrayEquals(bits,direct._encoding._bits.toByteArray()); } + + @Test public void testOptoRequiresIter() { + CodeGen code = new CodeGen(SRC).parse(); + try { + code.opto(); + fail("Opto must not implicitly run Iter"); + } catch( AssertionError expected ) { + assertEquals("Cannot run Opto after Parse",expected.getMessage()); + } + code.iter().opto(); + assertEquals(Phase.Opto,code._phase); + code.driver(Phase.LocalSched); + assertEquals("45",Eval2.eval(code,10)); + } } |
