|
@@ -4,23 +4,28 @@ import static org.junit.Assert.fail;
|
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
|
import static org.junit.jupiter.api.Assertions.assertThrows;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
import org.junit.jupiter.api.BeforeEach;
|
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
|
|
+import de.mcs.tools.sps.EmulatorInternals;
|
|
|
+import de.mcs.tools.sps.EmulatorOutput;
|
|
|
import de.mcs.tools.sps.SPSCommand;
|
|
|
import de.mcs.tools.sps.SPSCommandData;
|
|
|
import de.mcs.tools.sps.SPSEmulator;
|
|
|
+import de.mcs.tools.sps.TOutputCallback;
|
|
|
import de.mcs.tools.sps.exceptions.WrongProgramSizeException;
|
|
|
|
|
|
-class TestHoltecEmualtor {
|
|
|
+class TestHoltecEmualtor implements TOutputCallback {
|
|
|
|
|
|
private SPSEmulator holtectEmulator;
|
|
|
|
|
|
@BeforeEach
|
|
|
void setUp() throws Exception {
|
|
|
holtectEmulator = new HoltecEmulator();
|
|
|
+ holtectEmulator.addCallback(this);
|
|
|
}
|
|
|
|
|
|
@Test
|
|
@@ -53,9 +58,12 @@ class TestHoltecEmualtor {
|
|
|
@Test
|
|
|
void testCommandArray() {
|
|
|
List<SPSCommand> commands = holtectEmulator.getCommands();
|
|
|
- assertEquals(14, commands.size());
|
|
|
+ assertEquals(15, commands.size());
|
|
|
for (SPSCommand spsCommand : commands) {
|
|
|
switch (spsCommand.getCommandByte()) {
|
|
|
+ case 0x00:
|
|
|
+ assertEquals(1, spsCommand.getCommandDatas().size());
|
|
|
+ break;
|
|
|
case 0x10:
|
|
|
assertEquals(16, spsCommand.getCommandDatas().size());
|
|
|
break;
|
|
@@ -104,4 +112,28 @@ class TestHoltecEmualtor {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void testNOP() throws WrongProgramSizeException {
|
|
|
+ outputList.clear();
|
|
|
+ internalList.clear();
|
|
|
+ byte[] prg = new byte[] { 0x00, 0x00, 0x00 };
|
|
|
+ holtectEmulator.loadProgram(prg);
|
|
|
+ holtectEmulator.startProgram(true);
|
|
|
+ holtectEmulator.nextStep();
|
|
|
+ holtectEmulator.nextStep();
|
|
|
+ holtectEmulator.nextStep();
|
|
|
+
|
|
|
+ assertEquals(4, outputList.size());
|
|
|
+ assertEquals(4, internalList.size());
|
|
|
+ }
|
|
|
+
|
|
|
+ List<EmulatorOutput> outputList = new ArrayList();
|
|
|
+ List<EmulatorInternals> internalList = new ArrayList<>();
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onOutput(EmulatorOutput output) {
|
|
|
+ outputList.add(output);
|
|
|
+ internalList.add(holtectEmulator.getInternals());
|
|
|
+ }
|
|
|
}
|