Author: Remi Meier
Branch: c7
Changeset: r659:754f18d24407
Date: 2014-01-21 15:09 +0100
http://bitbucket.org/pypy/stmgc/changeset/754f18d24407/

Log:    change test, still failing

diff --git a/c7/test/test_basic.py b/c7/test/test_basic.py
--- a/c7/test/test_basic.py
+++ b/c7/test/test_basic.py
@@ -398,12 +398,27 @@
         stm_minor_collect()
         new = stm_pop_root()
         assert stm_get_page_flag(stm_get_obj_pages(new)[0]) == 
lib.UNCOMMITTED_SHARED_PAGE
-        assert stm_get_flags(new) & lib.GCFLAG_NOT_COMMITTED
+        assert not (stm_get_flags(new) & lib.GCFLAG_NOT_COMMITTED)
 
         stm_stop_transaction()
         assert stm_get_page_flag(stm_get_obj_pages(new)[0]) == lib.SHARED_PAGE
         assert not (stm_get_flags(new) & lib.GCFLAG_NOT_COMMITTED)
 
+        stm_start_transaction()
+        newer = stm_allocate(16)
+        stm_push_root(newer)
+        stm_minor_collect()
+        newer = stm_pop_root()
+        # 'new' is still in shared_page and committed
+        assert stm_get_page_flag(stm_get_obj_pages(new)[0]) == lib.SHARED_PAGE
+        assert not (stm_get_flags(new) & lib.GCFLAG_NOT_COMMITTED)
+        # 'newer' is now part of the SHARED page with 'new', but
+        # marked as UNCOMMITTED, so no privatization has to take place:
+        assert stm_get_obj_pages(new) == stm_get_obj_pages(newer)
+        assert stm_get_flags(newer) & lib.GCFLAG_NOT_COMMITTED
+        stm_write(newer) # does not privatize
+        assert stm_get_page_flag(stm_get_obj_pages(newer)[0]) == 
lib.SHARED_PAGE
+
 
     # def test_resolve_write_write_no_conflict(self):
     #     stm_start_transaction()
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to