From 6390b47c96175cb91927ef3e197a5e8e9732153f Mon Sep 17 00:00:00 2001 From: XUJIAZHU <43055837+XUJIAZHU@users.noreply.github.com> Date: Sun, 16 Sep 2018 16:39:56 +1000 Subject: [PATCH] val --- examples/EC22.s | 6 ++++++ mutants/mutant-2/swen90006/machine/Machine.java | 4 ++-- mutants/mutant-3/swen90006/machine/Machine.java | 4 ++-- mutants/mutant-4/swen90006/machine/Machine.java | 4 ++-- mutants/mutant-5/swen90006/machine/Machine.java | 4 ++-- test/swen90006/machine/BoundaryTests.java | 7 +++++++ test/swen90006/machine/PartitioningTests.java | 7 +++++++ 7 files changed, 28 insertions(+), 8 deletions(-) create mode 100644 examples/EC22.s diff --git a/examples/EC22.s b/examples/EC22.s new file mode 100644 index 0000000..023976a --- /dev/null +++ b/examples/EC22.s @@ -0,0 +1,6 @@ + MOV R1 0 + MOV R2 2 + MOV R3 3 + DIV R3 R1 R2 + RET R3 + diff --git a/mutants/mutant-2/swen90006/machine/Machine.java b/mutants/mutant-2/swen90006/machine/Machine.java index 1ff5cbf..8ba0f38 100644 --- a/mutants/mutant-2/swen90006/machine/Machine.java +++ b/mutants/mutant-2/swen90006/machine/Machine.java @@ -211,7 +211,7 @@ public class Machine int rs2 = parseReg(toks[3]); do_add(rd,rs1,rs2); } else if (toks[0].equals(INSTRUCTION_SUBTRACT)){ - if (toks.length == 4){ + if (toks.length != 4){ throw new InvalidInstructionException(); } int rd = parseReg(toks[1]); @@ -275,7 +275,7 @@ public class Machine } int ra = parseReg(toks[1]); int offs = parseOffset(toks[2]); - if (regs[ra] == 0){ + if (regs[ra] != 0){ pc = pc + offs; }else{ pc = pc + 1; diff --git a/mutants/mutant-3/swen90006/machine/Machine.java b/mutants/mutant-3/swen90006/machine/Machine.java index ea9d43b..70f63e0 100644 --- a/mutants/mutant-3/swen90006/machine/Machine.java +++ b/mutants/mutant-3/swen90006/machine/Machine.java @@ -91,9 +91,9 @@ public class Machine } private void do_store(int a, int offs, int b) { - if (regs[a] + offs < MAX_ADDR){ + if (regs[b] + offs > MAX_ADDR){ /* no op */ - }else if(regs[a] + offs > 0){ + }else if(regs[a] + offs < 0){ /* no op */ }else{ memory[regs[a] + offs] = regs[b]; diff --git a/mutants/mutant-4/swen90006/machine/Machine.java b/mutants/mutant-4/swen90006/machine/Machine.java index f3d8622..7c95d0b 100644 --- a/mutants/mutant-4/swen90006/machine/Machine.java +++ b/mutants/mutant-4/swen90006/machine/Machine.java @@ -58,7 +58,7 @@ public class Machine private void do_add(int dest, int src1, int src2) { - regs[dest] = regs[src1] = regs[src2]; + regs[dest] = regs[src1] + regs[src2]; } private void do_sub(int dest, int src1, int src2) @@ -73,7 +73,7 @@ public class Machine private void do_div(int dest, int src1, int src2) { - if (regs[src2] == 0){ + if (regs[src1] == 0){ /* no op */ }else{ regs[dest] = regs[src1] / regs[src2]; diff --git a/mutants/mutant-5/swen90006/machine/Machine.java b/mutants/mutant-5/swen90006/machine/Machine.java index e0c1ba7..4b87d94 100644 --- a/mutants/mutant-5/swen90006/machine/Machine.java +++ b/mutants/mutant-5/swen90006/machine/Machine.java @@ -188,7 +188,7 @@ public class Machine /* check for blank lines */ if (inst.equals("")){ - pc = pc + 1; + pc = pc + 2; count++; continue; } @@ -266,7 +266,7 @@ public class Machine throw new InvalidInstructionException(); } int offs = parseOffset(toks[1]); - pc = pc = offs; + pc = pc + offs; count++; continue; /* avoid default increment of pc below */ } else if (toks[0].equals(INSTRUCTION_JZ)){ diff --git a/test/swen90006/machine/BoundaryTests.java b/test/swen90006/machine/BoundaryTests.java index 8d55d19..7dbe22a 100644 --- a/test/swen90006/machine/BoundaryTests.java +++ b/test/swen90006/machine/BoundaryTests.java @@ -240,6 +240,13 @@ public class BoundaryTests Machine m = new Machine(); m.execute(lines); } + + @Test public void EC22() + { + final List<String> lines = readInstructions("examples/EC22.s"); + Machine m = new Machine(); + assertEquals(m.execute(lines), 0); + } //To test an exception, specify the expected exception after the @Test /* @Test(expected = java.io.IOException.class) public void anExceptionTest() diff --git a/test/swen90006/machine/PartitioningTests.java b/test/swen90006/machine/PartitioningTests.java index 676b17f..2761b22 100644 --- a/test/swen90006/machine/PartitioningTests.java +++ b/test/swen90006/machine/PartitioningTests.java @@ -240,6 +240,13 @@ public class PartitioningTests Machine m = new Machine(); m.execute(lines); } + + @Test public void EC22() + { + final List<String> lines = readInstructions("examples/EC22.s"); + Machine m = new Machine(); + assertEquals(m.execute(lines), 0); + } //To test an exception, specify the expected exception after the @Test /*@Test(expected = java.io.IOException.class) public void anExceptionTest() -- GitLab