[pypy-commit] stmgc copy-over-original: test current approach
Raemi
noreply at buildbot.pypy.org
Wed Jul 10 08:59:36 CEST 2013
Author: Remi Meier <meierrem at student.ethz.ch>
Branch: copy-over-original
Changeset: r380:f6e27ee66d12
Date: 2013-07-10 07:54 +0200
http://bitbucket.org/pypy/stmgc/changeset/f6e27ee66d12/
Log: test current approach
diff --git a/c4/test/test_gcpage.py b/c4/test/test_gcpage.py
--- a/c4/test/test_gcpage.py
+++ b/c4/test/test_gcpage.py
@@ -308,6 +308,23 @@
check_free_old(p2)
check_not_free(p3) # XXX replace with p1
+def test_prebuilt_version_2_copy_over_prebuilt():
+ p1 = lib.pseudoprebuilt(HDR, 42 + HDR)
+ p2 = oalloc(HDR); make_public(p2)
+ p3 = oalloc(HDR); make_public(p3)
+ delegate(p1, p2)
+ delegate_original(p1, p2)
+ delegate(p2, p3)
+ delegate_original(p1, p3)
+ major_collect()
+ # XXX: current approach requires 2 major collections.
+ # the first to compress the path
+ # the second to do the copy
+ major_collect()
+ check_prebuilt(p1)
+ check_free_old(p2)
+ check_free_old(p3)
+
def test_prebuilt_version_to_protected():
p1 = lib.pseudoprebuilt(HDR, 42 + HDR)
p2 = lib.stm_write_barrier(p1)
@@ -321,6 +338,24 @@
check_prebuilt(p1)
check_not_free(p2) # XXX replace with p1
+def test_prebuilt_version_to_protected_copy_over_prebuilt():
+ py.test.skip("""current copy-over-prebuilt-original approach
+ does not work with public_prebuilt->protected""")
+ p1 = lib.pseudoprebuilt(HDR, 42 + HDR)
+ p2 = lib.stm_write_barrier(p1)
+ lib.stm_commit_transaction()
+ lib.stm_begin_inevitable_transaction()
+ minor_collect()
+ p2 = lib.stm_read_barrier(p1)
+ assert p2 != p1
+ minor_collect()
+ major_collect()
+ major_collect()
+ print classify(p2)
+ check_prebuilt(p1)
+ check_free_old(p2)
+
+
def test_private():
p1 = nalloc(HDR)
lib.stm_push_root(p1)
More information about the pypy-commit
mailing list