Skip to content
Snippets Groups Projects
Commit 40f15638 authored by Ashwaq Abdullah M Alsaqer's avatar Ashwaq Abdullah M Alsaqer
Browse files

pushing all the changes for Test cases

parent a207f29f
No related branches found
No related tags found
No related merge requests found
...@@ -60,34 +60,161 @@ public class BoundaryTests ...@@ -60,34 +60,161 @@ public class BoundaryTests
throw new java.io.IOException(); throw new java.io.IOException();
} }
//This test should fail. // //This test should fail.
//To provide additional feedback when a test fails, an error message // //To provide additional feedback when a test fails, an error message
//can be included // //can be included
@Test public void aFailedTest() // @Test public void aFailedTest()
{ // {
//include a message for better feedback // //include a message for better feedback
final int expected = 2; // final int expected = 2;
final int actual = 1 + 2; // final int actual = 1 + 2;
assertEquals("Some failure message", expected, actual); // assertEquals("Some failure message", expected, actual);
// }
// Equivalance Class 1
@Test(expected = InvalidInstructionException.class)
public void partitionofInstructionsInvalid() {
// Invalid Instructions for MVO not in set of ADD,SUB...JMP,JZ
final List<String> lines = readInstructions("examples\\invalidInstructions.s");
Machine m = new Machine();
m.execute(lines);
}
@Test(expected = InvalidInstructionException.class)
public void registersNotInRange() {
// Register not in range of 0...31 -> selected value 33
final List<String> lines = readInstructions("examples\\registerNotInRage.s");
Machine m = new Machine();
m.execute(lines);
}
@Test(expected = InvalidInstructionException.class)
public void registersNotInRange2() {
// Register not in range of 0...31 -> selected value -2
final List<String> lines = readInstructions("examples\\registerNotInRage2.s");
Machine m = new Machine();
m.execute(lines);
} }
@Test(expected = InvalidInstructionException.class) @Test(expected = InvalidInstructionException.class)
public void InvalidInstructions() { public void valuesNotInRange() {
final List<String> lines = readInstructions("C:\\Users\\ASUS\\git\\SWEN90006-A1-2018\\examples\\array_copy.s");
// value not in range of -65536...65535 -> 70,000
final List<String> lines = readInstructions("examples\\valueNotInRage.s");
Machine m = new Machine();
m.execute(lines);
}
@Test(expected = InvalidInstructionException.class)
public void valuesNotInRange2() {
// value not in range of -65536...65535 -> -70,000
final List<String> lines = readInstructions("examples\\valueNotInRage2.s");
Machine m = new Machine();
m.execute(lines);
}
@Test(expected = InvalidInstructionException.class)
public void invalidInstructionlength() {
// Invalid Instruction length, less than original length
/*
* MOV R0 -> valid
* MOV -> selected value
*/
final List<String> lines = readInstructions("examples\\invalidInstrctuinLength.s");
Machine m = new Machine();
m.execute(lines);
}
@Test(expected = InvalidInstructionException.class)
public void invalidInstructionlength2() {
// Invalid Instruction length, Greater than original length
/*
* MOV R0 -> valid
* MOV R0 10 10 -> selected value
*/
final List<String> lines = readInstructions("examples\\invalidInstrctuinLength2.s");
Machine m = new Machine();
m.execute(lines);
}
@Test
public void programHaltsAtError() {
// pc does not move forward
final List<String> lines = readInstructions("examples\\invalidInstrctuinLength.s");
Machine m = new Machine(); Machine m = new Machine();
try {
m.execute(lines); m.execute(lines);
}catch(InvalidInstructionException e) {
// do nothing
}
assertTrue(m.getCount() < lines.size());
} }
@Test public void MultipuleRuternTest() { @Test public void MultipuleRuternTest() {
final List<String> lines = readInstructions("C:\\Users\\ASUS\\git\\SWEN90006-A1-2018\\examples\\multiReturn.s");
// Multiple return statements
final List<String> lines = readInstructions("examples\\multiReturn.s");
Machine m = new Machine(); Machine m = new Machine();
int val = m.execute(lines); int val = m.execute(lines);
assertEquals(val, 0); assertEquals(val, 0);
} }
@Test(expected = NoReturnValueException.class)
public void noReturnTest() {
// Multiple return statements
final List<String> lines = readInstructions("examples\\noReturn.s");
Machine m = new Machine();
m.execute(lines);
}
@Test(expected = NoReturnValueException.class)
public void invalidJMPTest() {
// Multiple return statements
final List<String> lines = readInstructions("examples\\invalidJMP.s");
Machine m = new Machine();
m.execute(lines);
}
@Test
public void validJMP1Test() {
// Multiple return statements
final List<String> lines = readInstructions("examples\\validJMP1.s");
Machine m = new Machine();
m.execute(lines);
assertTrue(m.getCount() == lines.size());
}
@Test(expected = NoReturnValueException.class)
public void invalidJZTest() {
// Multiple return statements
final List<String> lines = readInstructions("examples\\invalidJZ.s");
Machine m = new Machine();
m.execute(lines);
}
@Test public void NotExcuteWrongInstructions() { @Test public void NotExcuteWrongInstructions() {
final List<String> lines = readInstructions("C:\\Users\\ASUS\\git\\SWEN90006-A1-2018\\examples\\div_test.s");
final List<String> lines = readInstructions("examples\\div_test.s");
Machine m = new Machine(); Machine m = new Machine();
int val = m.execute(lines); int val = m.execute(lines);
......
...@@ -63,14 +63,122 @@ public class PartitioningTests ...@@ -63,14 +63,122 @@ public class PartitioningTests
//This test should fail. //This test should fail.
//To provide additional feedback when a test fails, an error message //To provide additional feedback when a test fails, an error message
//can be included //can be included
@Test public void aFailedTest() // @Test public void aFailedTest()
{ // {
//include a message for better feedback // //include a message for better feedback
final int expected = 2; // final int expected = 2;
final int actual = 1 + 2; // final int actual = 1 + 2;
assertEquals("Some failure message", expected, actual); // assertEquals("Some failure message", expected, actual);
// }
// Equivalance Class 1, Equivalance Class 2
@Test public void partitionOfInstructionsValid() {
// valid instructions
// valid registers
// valid values
// valid instructions length
// valid Jmp conditions
// valid Jz conditions
final List<String> lines = readInstructions("examples/array.s");
Machine m = new Machine();
assertEquals(m.execute(lines), 45);
}
// Equivalance Class 1
@Test(expected = InvalidInstructionException.class)
public void partitionofInstructionsInvalid() {
// Invalid Instruction
final List<String> lines = readInstructions("examples\\invalidInstructions.s");
Machine m = new Machine();
m.execute(lines);
}
@Test(expected = InvalidInstructionException.class)
public void registersNotInRange() {
// Register not in range of 0...31
final List<String> lines = readInstructions("examples\\registerNotInRage.s");
Machine m = new Machine();
m.execute(lines);
}
@Test(expected = InvalidInstructionException.class)
public void valuesNotInRange() {
// value not in range of -65536...65535 -> 70,000
final List<String> lines = readInstructions("examples\\valueNotInRage.s");
Machine m = new Machine();
m.execute(lines);
}
@Test(expected = InvalidInstructionException.class)
public void invalidInstructionlength() {
// Invalid Instruction length,
final List<String> lines = readInstructions("examples\\invalidInstrctuinLength.s");
Machine m = new Machine();
m.execute(lines);
}
@Test
public void programHaltsAtError() {
// pc does not move forward
final List<String> lines = readInstructions("examples\\invalidInstrctuinLength.s");
Machine m = new Machine();
try {
m.execute(lines);
}catch(InvalidInstructionException e) {
// do nothing
}
assertTrue(m.getCount() < lines.size());
}
@Test public void MultipuleRuternTest() {
// Multiple return statements
final List<String> lines = readInstructions("examples\\multiReturn.s");
Machine m = new Machine();
int val = m.execute(lines);
assertEquals(val, 0);
}
@Test(expected = NoReturnValueException.class)
public void noReturnTest() {
// Multiple return statements
final List<String> lines = readInstructions("examples\\noReturn.s");
Machine m = new Machine();
m.execute(lines);
}
@Test(expected = NoReturnValueException.class)
public void invalidJMPTest() {
// Multiple return statements
final List<String> lines = readInstructions("examples\\invalidJMP.s");
Machine m = new Machine();
m.execute(lines);
} }
@Test(expected = NoReturnValueException.class)
public void invalidJZTest() {
// Multiple return statements
final List<String> lines = readInstructions("examples\\invalidJZ.s");
Machine m = new Machine();
m.execute(lines);
}
//Read in a file containing a program and convert into a list of //Read in a file containing a program and convert into a list of
//string instructions //string instructions
private List<String> readInstructions(String file) private List<String> readInstructions(String file)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment