[pypy-svn] r72217 - pypy/trunk/pypy/jit/metainterp/test

fijal at codespeak.net fijal at codespeak.net
Sun Mar 14 04:17:18 CET 2010


Author: fijal
Date: Sun Mar 14 04:17:16 2010
New Revision: 72217

Modified:
   pypy/trunk/pypy/jit/metainterp/test/test_optimizeopt.py
Log:
Finish merging the arraycopy branch - tests


Modified: pypy/trunk/pypy/jit/metainterp/test/test_optimizeopt.py
==============================================================================
--- pypy/trunk/pypy/jit/metainterp/test/test_optimizeopt.py	(original)
+++ pypy/trunk/pypy/jit/metainterp/test/test_optimizeopt.py	Sun Mar 14 04:17:16 2010
@@ -2724,7 +2724,56 @@
         self.optimize_loop(ops, 'Not, Not', expected)
 
     def test_arraycopy_1(self):
-        pass
+        ops = '''
+        [i0]
+        p1 = new_array(3, descr=arraydescr)
+        setarrayitem_gc(p1, 1, 1, descr=arraydescr)
+        p2 = new_array(3, descr=arraydescr)
+        setarrayitem_gc(p2, 1, 3, descr=arraydescr)
+        arraycopy(0, 0, p1, p2, 1, 1, 2, descr=arraydescr)
+        i2 = getarrayitem_gc(p2, 1, descr=arraydescr)
+        jump(i2)
+        '''
+        expected = '''
+        [i0]
+        jump(1)
+        '''
+        self.optimize_loop(ops, 'Not', expected)
+
+    def test_arraycopy_2(self):
+        ops = '''
+        [i0]
+        p1 = new_array(3, descr=arraydescr)
+        p2 = new_array(3, descr=arraydescr)
+        setarrayitem_gc(p1, 0, i0, descr=arraydescr)
+        setarrayitem_gc(p2, 0, 3, descr=arraydescr)
+        arraycopy(0, 0, p1, p2, 1, 1, 2, descr=arraydescr)
+        i2 = getarrayitem_gc(p2, 0, descr=arraydescr)
+        jump(i2)
+        '''
+        expected = '''
+        [i0]
+        jump(3)
+        '''
+        self.optimize_loop(ops, 'Not', expected)
+
+    def test_arraycopy_not_virtual(self):
+        ops = '''
+        [p0]
+        p1 = new_array(3, descr=arraydescr)
+        p2 = new_array(3, descr=arraydescr)
+        setarrayitem_gc(p1, 2, 10, descr=arraydescr)
+        setarrayitem_gc(p2, 2, 13, descr=arraydescr)
+        arraycopy(0, 0, p1, p2, 0, 0, 3, descr=arraydescr)
+        jump(p2)
+        '''
+        expected = '''
+        [p0]
+        p2 = new_array(3, descr=arraydescr)
+        setarrayitem_gc(p2, 2, 10, descr=arraydescr)
+        jump(p2)
+        '''
+        self.optimize_loop(ops, 'Not', expected)
 
 class TestOOtype(BaseTestOptimizeOpt, OOtypeMixin):
 



More information about the Pypy-commit mailing list