[pypy-svn] r68244 - in pypy/branch/gc-compress/pypy/rpython/lltypesystem: . test

arigo at codespeak.net arigo at codespeak.net
Thu Oct 8 11:26:00 CEST 2009


Author: arigo
Date: Thu Oct  8 11:25:58 2009
New Revision: 68244

Added:
   pypy/branch/gc-compress/pypy/rpython/lltypesystem/test/__init__.py   (contents, props changed)
Modified:
   pypy/branch/gc-compress/pypy/rpython/lltypesystem/llgroup.py
   pypy/branch/gc-compress/pypy/rpython/lltypesystem/test/test_llgroup.py
Log:
Improve the test and write it in Yet Another Style (argh)
to be reused directly by the C backend.


Modified: pypy/branch/gc-compress/pypy/rpython/lltypesystem/llgroup.py
==============================================================================
--- pypy/branch/gc-compress/pypy/rpython/lltypesystem/llgroup.py	(original)
+++ pypy/branch/gc-compress/pypy/rpython/lltypesystem/llgroup.py	Thu Oct  8 11:25:58 2009
@@ -9,6 +9,7 @@
     is limited to 18 or 19 bits (= the 16 bits in a USHORT, plus 2 or
     3 bits at the end that are zero and so don't need to be stored).
     """
+    _gckind = 'raw'
 
 Group = GroupType()
 

Added: pypy/branch/gc-compress/pypy/rpython/lltypesystem/test/__init__.py
==============================================================================

Modified: pypy/branch/gc-compress/pypy/rpython/lltypesystem/test/test_llgroup.py
==============================================================================
--- pypy/branch/gc-compress/pypy/rpython/lltypesystem/test/test_llgroup.py	(original)
+++ pypy/branch/gc-compress/pypy/rpython/lltypesystem/test/test_llgroup.py	Thu Oct  8 11:25:58 2009
@@ -55,35 +55,46 @@
         pnew = lltype.malloc(self.S2, immortal=True)
         assert member_of_group(pnew) is None
 
-    def test_next_group_member(self):
-        self.build()
-        grpptr = self.grpptr
-        S1 = self.S1
-        S2 = self.S2
-        Ptr = lltype.Ptr
-        p = llop.get_next_group_member(Ptr(S2), grpptr,
-                                       self.g1a, llmemory.sizeof(S1))
-        assert p == self.p2a
-        #
-        p = llop.get_next_group_member(Ptr(S2), grpptr,
-                                       self.g2a, llmemory.sizeof(S2))
-        assert p == self.p2b
-        #
-        p = llop.get_next_group_member(Ptr(S1), grpptr,
-                                       self.g2b, llmemory.sizeof(S2))
-        assert p == self.p1b
+    def test_interpreted(self):
+        f = build_test()
+        res = f()
+        assert res == 42
 
     def test_rpython(self):
-        self.build()
-        grpptr = self.grpptr
-        def f():
-            p = llop.get_group_member(lltype.Ptr(self.S1), grpptr, self.g1a)
-            assert p == self.p1a
-            p = llop.get_group_member(lltype.Ptr(self.S1), grpptr, self.g1b)
-            assert p == self.p1b
-            p = llop.get_group_member(lltype.Ptr(self.S2), grpptr, self.g2a)
-            assert p == self.p2a
-            p = llop.get_group_member(lltype.Ptr(self.S2), grpptr, self.g2b)
-            assert p == self.p2b
-            return 3
-        assert interpret(f, []) == 3
+        f = build_test()
+        res = interpret(f, [])
+        assert res == 42
+
+
+def build_test():
+    test = TestLLGroup()
+    test.build()
+    grpptr = test.grpptr
+    g1x = [test.g1a, test.g1b]
+    def f():
+        p = llop.get_group_member(lltype.Ptr(test.S1), grpptr, test.g1a)
+        assert p == test.p1a
+        p = llop.get_group_member(lltype.Ptr(test.S1), grpptr, test.g1b)
+        assert p == test.p1b
+        p = llop.get_group_member(lltype.Ptr(test.S2), grpptr, test.g2a)
+        assert p == test.p2a
+        p = llop.get_group_member(lltype.Ptr(test.S2), grpptr, test.g2b)
+        assert p == test.p2b
+        #
+        p = llop.get_next_group_member(lltype.Ptr(test.S2), grpptr,
+                                       test.g1a, llmemory.sizeof(test.S1))
+        assert p == test.p2a
+        p = llop.get_next_group_member(lltype.Ptr(test.S2), grpptr,
+                                       test.g2a, llmemory.sizeof(test.S2))
+        assert p == test.p2b
+        p = llop.get_next_group_member(lltype.Ptr(test.S1), grpptr,
+                                       test.g2b, llmemory.sizeof(test.S2))
+        assert p == test.p1b
+        #
+        expected = [123, 456]
+        for i in range(2):
+            p = llop.get_group_member(lltype.Ptr(test.S1), grpptr, g1x[i])
+            assert p.x == expected[i]
+        #
+        return 42
+    return f



More information about the Pypy-commit mailing list