projects
/
riscv-tests.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
46352a7
)
Make MemTestBlock output a more descriptive error.
author
Tim Newsome
<tim@sifive.com>
Sun, 13 Aug 2017 20:56:44 +0000
(13:56 -0700)
committer
Tim Newsome
<tim@sifive.com>
Mon, 28 Aug 2017 19:16:39 +0000
(12:16 -0700)
debug/gdbserver.py
patch
|
blob
|
history
diff --git
a/debug/gdbserver.py
b/debug/gdbserver.py
index 3fa67df4d48f0fe3faa3c670f07bc358ee1f88b5..78ac9aaebb5403bc3644ccc3eb0cf80c032b46a4 100755
(executable)
--- a/
debug/gdbserver.py
+++ b/
debug/gdbserver.py
@@
-12,7
+12,7
@@
import targets
import testlib
from testlib import assertEqual, assertNotEqual, assertIn, assertNotIn
from testlib import assertGreater, assertRegexpMatches, assertLess
import testlib
from testlib import assertEqual, assertNotEqual, assertIn, assertNotIn
from testlib import assertGreater, assertRegexpMatches, assertLess
-from testlib import GdbTest, GdbSingleHartTest
+from testlib import GdbTest, GdbSingleHartTest
, TestFailed
MSTATUS_UIE = 0x00000001
MSTATUS_SIE = 0x00000002
MSTATUS_UIE = 0x00000001
MSTATUS_SIE = 0x00000002
@@
-171,20
+171,21
@@
class MemTest64(SimpleMemoryTest):
# self.gdb.p("*((int*)0x%x)=6874742" % self.hart.ram)
class MemTestBlock(GdbTest):
# self.gdb.p("*((int*)0x%x)=6874742" % self.hart.ram)
class MemTestBlock(GdbTest):
+ length = 1024
+ line_length = 16
+
def test(self):
def test(self):
- length = 1024
- line_length = 16
a = tempfile.NamedTemporaryFile(suffix=".ihex")
data = ""
a = tempfile.NamedTemporaryFile(suffix=".ihex")
data = ""
- for i in range(
length /
line_length):
+ for i in range(
self.length / self.
line_length):
line_data = "".join(["%c" % random.randrange(256)
line_data = "".join(["%c" % random.randrange(256)
- for _ in range(line_length)])
+ for _ in range(
self.
line_length)])
data += line_data
data += line_data
- a.write(ihex_line(i * line_length, 0, line_data))
+ a.write(ihex_line(i *
self.
line_length, 0, line_data))
a.flush()
self.gdb.command("restore %s 0x%x" % (a.name, self.hart.ram))
a.flush()
self.gdb.command("restore %s 0x%x" % (a.name, self.hart.ram))
- for offset in range(0,
length, 19*4) + [
length-4]:
+ for offset in range(0,
self.length, 19*4) + [self.
length-4]:
value = self.gdb.p("*((int*)0x%x)" % (self.hart.ram + offset))
written = ord(data[offset]) | \
(ord(data[offset+1]) << 8) | \
value = self.gdb.p("*((int*)0x%x)" % (self.hart.ram + offset))
written = ord(data[offset]) | \
(ord(data[offset+1]) << 8) | \
@@
-194,13
+195,16
@@
class MemTestBlock(GdbTest):
b = tempfile.NamedTemporaryFile(suffix=".ihex")
self.gdb.command("dump ihex memory %s 0x%x 0x%x" % (b.name,
b = tempfile.NamedTemporaryFile(suffix=".ihex")
self.gdb.command("dump ihex memory %s 0x%x 0x%x" % (b.name,
- self.hart.ram, self.hart.ram + length))
+ self.hart.ram, self.hart.ram +
self.
length))
for line in b:
record_type, address, line_data = ihex_parse(line)
if record_type == 0:
for line in b:
record_type, address, line_data = ihex_parse(line)
if record_type == 0:
- assertEqual(readable_binary_string(line_data),
- readable_binary_string(
- data[address:address+len(line_data)]))
+ written_data = data[address:address+len(line_data)]
+ if line_data != written_data:
+ raise TestFailed(
+ "Data mismatch at 0x%x; wrote %s but read %s" % (
+ address, readable_binary_string(written_data),
+ readable_binary_string(line_data)))
class InstantHaltTest(GdbTest):
def test(self):
class InstantHaltTest(GdbTest):
def test(self):