[pypy-svn] r74505 - pypy/branch/chunked-list/pypy/rpython/lltypesystem/test

fijal at codespeak.net fijal at codespeak.net
Wed May 12 18:59:30 CEST 2010


Author: fijal
Date: Wed May 12 18:59:28 2010
New Revision: 74505

Added:
   pypy/branch/chunked-list/pypy/rpython/lltypesystem/test/test_rlist.py   (contents, props changed)
Log:
Start writing direct tests for rlist. Implementation is quickly getting more
complex, so it might be a good idea


Added: pypy/branch/chunked-list/pypy/rpython/lltypesystem/test/test_rlist.py
==============================================================================
--- (empty file)
+++ pypy/branch/chunked-list/pypy/rpython/lltypesystem/test/test_rlist.py	Wed May 12 18:59:28 2010
@@ -0,0 +1,38 @@
+
+from pypy.rpython.lltypesystem import rlist as ll_rlist
+from pypy.rpython.rlist import ADTIList
+from pypy.rpython.lltypesystem import lltype
+from pypy.rpython.lltypesystem.lltype import GcStruct, Signed, Ptr
+
+class TestRListDirect(object):
+    def setup_class(cls):
+        cls.MIN_CHUNKED_SIZE = ll_rlist.MIN_CHUNKED_SIZE
+        cls.CHUNK_SIZE = ll_rlist.CHUNK_SIZE
+        ll_rlist.MIN_CHUNKED_SIZE = 100
+        ll_rlist.CHUNK_SIZE = 100
+
+        ITEM = lltype.Signed
+        ITEMARRAY = lltype.GcArray(ITEM)
+
+        cls.LISTTP = GcStruct("list", ("length", Signed),
+                              ("items", Ptr(ITEMARRAY)),
+                              adtmeths = ADTIList({
+                                  "ll_newlist": ll_rlist.ll_newlist,
+                                  "ll_newemptylist": ll_rlist.ll_newemptylist,
+                                  "ll_length": ll_rlist.ll_length,
+                                  "ll_items": ll_rlist.ll_items,
+                                  "ITEM": ITEM,
+                                  "ll_getitem_fast": ll_rlist.ll_getitem_fast,
+                                  "ll_setitem_fast": ll_rlist.ll_setitem_fast,
+                                  "_ll_resize_ge": ll_rlist._ll_list_resize_ge,
+                                  "_ll_resize_le": ll_rlist._ll_list_resize_le,
+                                  "_ll_resize": ll_rlist._ll_list_resize,
+                                  }),
+                              hints = {'list': True})
+
+    def teardown_class(cls):
+        ll_rlist.MIN_CHUNKED_SIZE = cls.MIN_CHUNKED_SIZE
+        ll_rlist.CHUNK_SIZE = cls.CHUNK_SIZE
+    
+    def test_resize_unchunked_chunked(self):
+        l = self.LISTTP.ll_newlist(self.CHUNK_SIZE - 3)



More information about the Pypy-commit mailing list