[pypy-svn] pypy arm-backend-2: fix and extend tests

bivab commits-noreply at bitbucket.org
Fri Feb 25 12:24:48 CET 2011


Author: David Schneider <david.schneider at picle.org>
Branch: arm-backend-2
Changeset: r42276:561811f72698
Date: 2011-02-24 11:04 +0100
http://bitbucket.org/pypy/pypy/changeset/561811f72698/

Log:	fix and extend tests

diff --git a/pypy/jit/backend/arm/test/test_regalloc.py b/pypy/jit/backend/arm/test/test_regalloc.py
--- a/pypy/jit/backend/arm/test/test_regalloc.py
+++ b/pypy/jit/backend/arm/test/test_regalloc.py
@@ -431,6 +431,7 @@
     A = lltype.GcArray(lltype.Char)
     I = lltype.GcArray(lltype.Signed)
     arraydescr = cpu.arraydescrof(A)
+    arraydescr_i = cpu.arraydescrof(I)
 
     namespace = locals().copy()
 
@@ -507,7 +508,7 @@
     def test_setarrayitem3_gc(self):
         ops = '''
         [p0, i0, i1]
-        setarrayitem_gc(p0, i1, i0, descr=arraydescr)
+        setarrayitem_gc(p0, i1, i0, descr=arraydescr_i)
         finish()
         '''
         s = lltype.malloc(self.I, 3)
@@ -517,7 +518,7 @@
     def test_setarrayitem4_gc(self):
         ops = '''
         [p0, i0]
-        setarrayitem_gc(p0, 1, i0, descr=arraydescr)
+        setarrayitem_gc(p0, 1, i0, descr=arraydescr_i)
         finish()
         '''
         s = lltype.malloc(self.I, 3)
@@ -670,6 +671,7 @@
         self.run(loop)
         assert self.getint(0) == 29
 
+class TestJumps(BaseTestRegalloc):
     def test_jump_with_consts(self):
         loop = """
         [i0, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14]
@@ -681,7 +683,7 @@
 
     def test_from_loop_to_loop(self):
         def assembler_helper(failindex, virtualizable):
-            return 1
+            return 3
 
         FUNCPTR = lltype.Ptr(lltype.FuncType([lltype.Signed, llmemory.GCREF],
                                              lltype.Signed))
@@ -696,22 +698,23 @@
         loop1 = """
         [i0, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10]
         i11 = int_add(i0, i1)
-        finish(i0, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11)
+        finish(i11, i0, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10)
         """
         large = self.interpret(loop1, range(11), run=False)
         large.token.outermost_jitdriver_sd = FakeJitDriverSD()
         self.namespace['looptoken'] = large.token
         assert self.namespace['looptoken']._arm_bootstrap_code != 0
         loop2 = """
-       [i0]
+        [i0]
         i1 = force_token()
-        call_assembler(1,2,3,4,5,6,7,8,9,10,11, descr=looptoken)
+        i2 = call_assembler(1,2,3,4,5,6,7,8,9,10,11, descr=looptoken)
         guard_not_forced() [i0]
-        finish(i0)
+        finish(i0, i2)
         """
 
         self.interpret(loop2, [110])
-        assert self.getint(0) == 0
+        assert self.getint(0) == 110
+        assert self.getint(1) == 3
 
     def test_far_far_jump(self):
         ops = """
@@ -740,3 +743,43 @@
         """
         self.interpret(ops, range(11))
         assert self.getint(0) == 2 # and not segfault()
+
+class TestStrOps(BaseTestRegalloc):
+    def test_newstr(self):
+        ops = """
+        [i0]
+        p1 = newstr(300)
+        i2 = strlen(p1)
+        finish(i2)
+        """
+        self.interpret(ops, [0])
+        assert self.getint(0) == 300
+        ops = """
+        [i0]
+        p1 = newstr(i0)
+        i2 = strlen(p1)
+        finish(i2)
+        """
+        self.interpret(ops, [300])
+        assert self.getint(0) == 300
+
+    def test_strlen(self):
+        s = rstr.mallocstr(300)
+        ops = """
+        [p0]
+        i1 = strlen(p0)
+        finish(i1)
+        """
+        self.interpret(ops, [s])
+        assert self.getint(0) == 300
+
+    def test_len_of_newstr(self):
+        ops = """
+        []
+        p0 = newstr(300)
+        finish(p0)
+        """
+        self.interpret(ops, [])
+        string = self.getptr(0, lltype.Ptr(rstr.STR))
+        assert len(string.chars) == 300
+


More information about the Pypy-commit mailing list