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

Log:    Add a passing test

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
@@ -84,3 +84,24 @@
     assert classify(p) == "protected"
     assert classify(pback) == "backup"
     assert ffi.cast("revision_t *", p.h_revision) == pback
+
+def test_protected_backup_reused():
+    p = nalloc(HDR + WORD)
+    lib.setlong(p, 0, 78927812)
+    lib.stm_commit_transaction()
+    lib.stm_begin_inevitable_transaction()
+    lib.setlong(p, 0, 927122)
+    pback = lib.stm_get_backup_copy(p)
+    assert pback != p
+    lib.stm_commit_transaction()
+    lib.stm_begin_inevitable_transaction()
+    assert lib.stm_get_backup_copy(p) == ffi.NULL
+    assert classify(p) == "protected"
+    assert classify(pback) == "backup"
+    assert lib.rawgetlong(p, 0) == 927122
+    assert lib.rawgetlong(pback, 0) == 78927812    # but should not be used
+    lib.setlong(p, 0, 43891)
+    assert p.h_revision == lib.get_private_rev_num()
+    assert pback == lib.stm_get_backup_copy(p)
+    assert lib.rawgetlong(p, 0) == 43891
+    assert lib.rawgetlong(pback, 0) == 927122
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to