tests/GDBMIParserTests.st
changeset 97 b17c889076e4
parent 95 f417138e9c48
child 99 56b66436a713
--- a/tests/GDBMIParserTests.st	Fri Jan 26 22:08:31 2018 +0000
+++ b/tests/GDBMIParserTests.st	Thu Jan 25 12:01:22 2018 +0000
@@ -204,6 +204,58 @@
     "Modified: / 12-11-2017 / 20:18:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+test_command_data_read_memory_01
+    | parser events result |
+
+    parser := GDBMIParser 
+            on:('9^done,addr="0x00001390",nr-bytes="6",total-bytes="6",
+next-row="0x00001396",prev-row="0x0000138e",next-page="0x00001396",
+prev-page="0x0000138a",memory=[
+{addr="0x00001390",data=["0x00","0x01"]},
+{addr="0x00001392",data=["0x02","0x03"]},
+{addr="0x00001394",data=["0x04","0x05"]}]' asStringCollection asStringWith:'').
+    parser token2CommandMappingBlock:[:token | GDBMI_data_read_memory new ].
+    events := parser parseOutput.
+
+    self assert:events size == 1.
+    result := events first result.
+
+    self assert:((result value) isKindOf: GDBMemoryDump).
+    self assert: (result value) addr = '0x00001390'.
+    self assert: (result value) memory size = 3.
+
+    "Created: / 24-01-2018 / 08:55:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 25-01-2018 / 09:07:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_command_data_read_memory_02
+    | parser events result |
+
+    parser := GDBMIParser 
+            on:('4^done,addr="0x000013a0",nr-bytes="32",total-bytes="32",
+next-row="0x000013c0",prev-row="0x0000139c",
+next-page="0x000013c0",prev-page="0x00001380",memory=[
+{addr="0x000013a0",data=["0x10","0x11","0x12","0x13"],ascii="xxxx"},
+{addr="0x000013a4",data=["0x14","0x15","0x16","0x17"],ascii="xxxx"},
+{addr="0x000013a8",data=["0x18","0x19","0x1a","0x1b"],ascii="xxxx"},
+{addr="0x000013ac",data=["0x1c","0x1d","0x1e","0x1f"],ascii="xxxx"},
+{addr="0x000013b0",data=["0x20","0x21","0x22","0x23"],ascii=" !!\"#"},
+{addr="0x000013b4",data=["0x24","0x25","0x26","0x27"],ascii="$%&''"},
+{addr="0x000013b8",data=["0x28","0x29","0x2a","0x2b"],ascii="()*+"},
+{addr="0x000013bc",data=["0x2c","0x2d","0x2e","0x2f"],ascii=",-./"}]' asStringCollection asStringWith:'').
+    parser token2CommandMappingBlock:[:token | GDBMI_data_read_memory new ].
+    events := parser parseOutput.
+
+    self assert:events size == 1.
+    result := events first result.
+
+    self assert:((result value) isKindOf: GDBMemoryDump).
+    self assert: (result value) addr = '0x000013a0'.
+    self assert: (result value) memory size = 8.
+
+    "Created: / 25-01-2018 / 22:53:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 test_command_gdb_exit
     | parser events result |