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