[pypy-commit] stmgc default: A test that fails. Maybe should fail, waiting for arigato's OK
Raemi
noreply at buildbot.pypy.org
Mon Jul 8 14:37:39 CEST 2013
Author: Remi Meier <meierrem at student.ethz.ch>
Branch:
Changeset: r374:ef8442a75174
Date: 2013-07-08 14:37 +0200
http://bitbucket.org/pypy/stmgc/changeset/ef8442a75174/
Log: A test that fails. Maybe should fail, waiting for arigato's OK
diff --git a/c4/test/test_et.py b/c4/test/test_et.py
--- a/c4/test/test_et.py
+++ b/c4/test/test_et.py
@@ -204,6 +204,36 @@
assert p4 == p2
assert list_of_read_objects() == [p2]
+def test_write_barrier_after_minor_collect():
+ # maybe should fail. not sure.
+ p = oalloc_refs(1)
+ pw = lib.stm_write_barrier(p)
+
+ lib.stm_push_root(pw)
+ minor_collect()
+ r = nalloc(HDR)
+ pw = lib.stm_pop_root()
+
+ assert pw.h_tid & GCFLAG_OLD
+ rawsetptr(pw, 0, r)
+
+ # pw not in old_objects_to_trace. A
+ # repeated write_barrier before
+ # rawsetptr() would fix that
+
+ lib.stm_push_root(r)
+ minor_collect()
+ r2 = lib.stm_pop_root()
+ check_nursery_free(r)
+
+ pr = lib.stm_read_barrier(p)
+ assert r != r2
+ # these will fail because pw/pr was
+ # not traced in the last minor_collect,
+ # because they were not registered in
+ # old_objects_to_trace.
+ assert getptr(pr, 0) != r
+ assert getptr(pr, 0) == r2
def test_id_young_to_old():
# move out of nursery with shadow original
More information about the pypy-commit
mailing list