add testcase for invalid pagetable
authorTobias Platen <tplaten@posteo.de>
Thu, 25 Nov 2021 16:07:05 +0000 (17:07 +0100)
committerTobias Platen <tplaten@posteo.de>
Thu, 25 Nov 2021 16:07:05 +0000 (17:07 +0100)
src/soc/experiment/test/test_loadstore1.py

index 9c646b876bb1d951a8028ae105daf9c42a56779a..10d6a14d619d2495895894d12b9f8e3b392bf714 100644 (file)
@@ -100,6 +100,7 @@ def setup_mmu():
     return m, cmpi
 
 test_exceptions = True
+test_invalid = False
 
 def _test_loadstore1(dut, mem):
     mmu = dut.submodules.mmu
@@ -107,6 +108,19 @@ def _test_loadstore1(dut, mem):
     global stop
     stop = False
 
+    if test_invalid:
+        print("=== test invalid ===")
+        # no process table for this test
+        yield mmu.rin.prtbl.eq(0) # set process table
+        yield
+        addr = 0
+        ld_data, exc = yield from pi_ld(pi, addr, 8, msr_pr=1)
+        print("ld_data",ld_data,exc)
+        assert(exc=="slow")
+        invalid = yield pi.exc_o.invalid
+        assert(invalid==1)
+        print("=== test invalid done ===")
+
     yield mmu.rin.prtbl.eq(0x1000000) # set process table
     yield