[pypy-commit] stmgc c8-small-uniform: add test showing a bug in stm_validate()

Raemi noreply at buildbot.pypy.org
Wed Dec 3 08:31:13 CET 2014


Author: Remi Meier <remi.meier at gmail.com>
Branch: c8-small-uniform
Changeset: r1511:c849b169bc4e
Date: 2014-12-02 15:56 +0100
http://bitbucket.org/pypy/stmgc/changeset/c849b169bc4e/

Log:	add test showing a bug in stm_validate()

diff --git a/c8/stm/gcpage.c b/c8/stm/gcpage.c
--- a/c8/stm/gcpage.c
+++ b/c8/stm/gcpage.c
@@ -5,7 +5,6 @@
 
 static void setup_gcpage(void)
 {
-    /* XXXXXXX should use stm_file_pages, no? */
     uninitialized_page_start = stm_file_pages;
     uninitialized_page_stop  = stm_file_pages + NB_SHARED_PAGES * 4096UL;
 }
diff --git a/c8/test/test_basic.py b/c8/test/test_basic.py
--- a/c8/test/test_basic.py
+++ b/c8/test/test_basic.py
@@ -811,6 +811,33 @@
 
         assert stm_get_char(lp_char_5, 384 - 1) == 'o'
 
+    def test_bug3(self):
+        lp_char_5 = stm_allocate_old(384)
+
+        for i in range(NB_SEGMENTS):
+            self.start_transaction()
+            stm_set_char(lp_char_5, '\0', HDR, False)
+            self.commit_transaction()
+            
+        #
+        self.switch(2)
+        self.start_transaction()
+        stm_set_char(lp_char_5, 'i', HDR, False)
+        self.commit_transaction()
+
+        self.start_transaction()
+        stm_set_char(lp_char_5, 'x', HDR, False)
+
+        self.switch(1)
+        self.start_transaction()
+        stm_set_char(lp_char_5, 'a', HDR, False)
+        self.commit_transaction()
+        
+        self.switch(0)
+        self.start_transaction()
+        assert stm_get_char(lp_char_5, HDR) == 'a'
+
+        
     def test_repeated_wb(self):
         lp_char_5 = stm_allocate_old(384)
 


More information about the pypy-commit mailing list