Author: Armin Rigo <[email protected]>
Branch:
Changeset: r91429:659988b39888
Date: 2017-05-28 16:42 +0200
http://bitbucket.org/pypy/pypy/changeset/659988b39888/
Log: Fix test
diff --git a/rpython/jit/backend/llsupport/test/test_gc_integration.py
b/rpython/jit/backend/llsupport/test/test_gc_integration.py
--- a/rpython/jit/backend/llsupport/test/test_gc_integration.py
+++ b/rpython/jit/backend/llsupport/test/test_gc_integration.py
@@ -463,6 +463,21 @@
def get_root_stack_top_addr(self):
return rffi.cast(lltype.Signed, self.stack_addr)
+ def getlength(self):
+ top = self.stack_addr[0]
+ base = rffi.cast(lltype.Signed, self.stack)
+ n = (top - base) // WORD
+ assert 0 <= n < 10
+ return n
+
+ def curtop(self):
+ n = self.getlength()
+ return self.stack[n - 1]
+
+ def settop(self, newvalue):
+ n = self.getlength()
+ self.stack[n - 1] = newvalue
+
class WriteBarrierDescr(AbstractDescr):
jit_wb_cards_set = 0
jit_wb_if_flag_singlebyte = 1
@@ -645,7 +660,7 @@
frames = []
def check(i):
- assert cpu.gc_ll_descr.gcrootmap.stack[0] == i
+ assert cpu.gc_ll_descr.gcrootmap.curtop() == i
frame = rffi.cast(JITFRAMEPTR, i)
assert len(frame.jf_frame) == self.cpu.JITFRAME_FIXED_SIZE + 4
# we "collect"
@@ -665,14 +680,14 @@
assert gcmap == [22, 23, 24]
for item, s in zip(gcmap, new_items):
new_frame.jf_frame[item] = rffi.cast(lltype.Signed, s)
- assert cpu.gc_ll_descr.gcrootmap.stack[0] ==
rffi.cast(lltype.Signed, frame)
- cpu.gc_ll_descr.gcrootmap.stack[0] = rffi.cast(lltype.Signed,
new_frame)
+ assert cpu.gc_ll_descr.gcrootmap.curtop() ==
rffi.cast(lltype.Signed, frame)
+ cpu.gc_ll_descr.gcrootmap.settop(rffi.cast(lltype.Signed,
new_frame))
print '"Collecting" moved the frame from %d to %d' % (
- i, cpu.gc_ll_descr.gcrootmap.stack[0])
+ i, cpu.gc_ll_descr.gcrootmap.curtop())
frames.append(new_frame)
def check2(i):
- assert cpu.gc_ll_descr.gcrootmap.stack[0] == i
+ assert cpu.gc_ll_descr.gcrootmap.curtop() == i
frame = rffi.cast(JITFRAMEPTR, i)
assert frame == frames[1]
assert frame != frames[0]
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit