Author: Armin Rigo <[email protected]>
Branch: 
Changeset: r69:a31993e9805a
Date: 2013-06-05 16:59 +0200
http://bitbucket.org/pypy/stmgc/changeset/a31993e9805a/

Log:    This test passes, but probably only because it's simple enough.

diff --git a/c3/test/test_et.py b/c3/test/test_et.py
--- a/c3/test/test_et.py
+++ b/c3/test/test_et.py
@@ -115,9 +115,8 @@
                                        GCFLAG_PREBUILT_ORIGINAL)
     assert classify(p) == "public"
 
-def test_change_prebuilt_object():
-    p = palloc(HDR + WORD)
-    lib.rawsetlong(p, 0, 28971289)
+def test_prebuilt_object_to_private():
+    p = palloc(HDR)
     flags = p.h_tid
     assert (flags & GCFLAG_PUBLIC_TO_PRIVATE) == 0
     assert classify(p) == "public"
@@ -126,3 +125,17 @@
     assert classify(p) == "public"
     assert classify(p2) == "private"
     assert p.h_tid == flags | GCFLAG_PUBLIC_TO_PRIVATE
+
+def test_commit_change_to_prebuilt_object():
+    p = palloc(HDR + WORD)
+    lib.rawsetlong(p, 0, 28971289)
+    p2 = lib.stm_write_barrier(p)
+    assert p2 != p
+    assert classify(p) == "public"
+    assert classify(p2) == "private"
+    lib.rawsetlong(p, 0, 1289222)
+    lib.stm_commit_transaction()
+    lib.stm_begin_inevitable_transaction()
+    assert classify(p) == "public"
+    assert classify(p2) == "protected"
+    assert p.h_revision == int(ffi.cast("revision_t", p2)) + 2
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to