summaryrefslogtreecommitdiff
path: root/chapter24/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'chapter24/src/test')
-rw-r--r--chapter24/src/test/java/com/seaofnodes/simple/Chapter24Test.java22
1 files changed, 13 insertions, 9 deletions
diff --git a/chapter24/src/test/java/com/seaofnodes/simple/Chapter24Test.java b/chapter24/src/test/java/com/seaofnodes/simple/Chapter24Test.java
index bb89aa16..9a657855 100644
--- a/chapter24/src/test/java/com/seaofnodes/simple/Chapter24Test.java
+++ b/chapter24/src/test/java/com/seaofnodes/simple/Chapter24Test.java
@@ -585,17 +585,21 @@ return 0 < arg < arg+1 < 4;
""";
TestC.run(src, "stacked_r_13x", null, stack12,0);
- // Evaluate on RISC5 emulator
+ // Compile once per target, then check false, true and negative inputs.
EvalRisc5 R5 = TestRisc5.build("stacked_r_13", src2, 1, 0, false);
- int trap = R5.step(100);
- assertEquals(0,trap);
- assertEquals(1,R5.regs[riscv.A0]);
-
- // Evaluate on ARM emulator
+ for( int arg : new int[]{-1,0,1} ) {
+ R5._pc = 0;
+ R5.regs[riscv.A0] = arg;
+ assertEquals(0,R5.step(100));
+ assertEquals(arg==0 ? 1 : 0,R5.regs[riscv.A0]);
+ }
EvalArm64 arm = TestArm64.build("stacked_r_13", src2, 1, 0, false);
- trap = arm.step(100);
- assertEquals(0,trap);
- assertEquals(1,arm.regs[0]);
+ for( int arg : new int[]{-1,0,1} ) {
+ arm._pc = 0;
+ arm.regs[0] = arg;
+ assertEquals(0,arm.step(100));
+ assertEquals(arg==0 ? 1 : 0,arm.regs[0]);
+ }
}
@Test