[pypy-commit] pypy default: add test_pypy_c for flatiter next

bdkearns noreply at buildbot.pypy.org
Thu Dec 4 22:41:23 CET 2014


Author: Brian Kearns <bdkearns at gmail.com>
Branch: 
Changeset: r74815:d62d6a8c4809
Date: 2014-12-04 15:00 -0500
http://bitbucket.org/pypy/pypy/changeset/d62d6a8c4809/

Log:	add test_pypy_c for flatiter next

diff --git a/pypy/module/pypyjit/test_pypy_c/test_micronumpy.py b/pypy/module/pypyjit/test_pypy_c/test_micronumpy.py
--- a/pypy/module/pypyjit/test_pypy_c/test_micronumpy.py
+++ b/pypy/module/pypyjit/test_pypy_c/test_micronumpy.py
@@ -78,6 +78,46 @@
             jump(p0, p1, p3, p6, p7, p12, p14, f86, p18, i87, i62, p41, i58, p47, i40, i64, i70, descr=...)
         """)
 
+    def test_array_flatiter_next(self):
+        def main():
+            import _numpypy.multiarray as np
+            arr = np.zeros((1024, 16)) + 42
+            ai = arr.flat
+            i = 0
+            while i < arr.size:
+                a = next(ai)
+                i += 1
+            return a
+        log = self.run(main, [])
+        assert log.result == 42.0
+        loop, = log.loops_by_filename(self.filepath)
+        assert loop.match("""
+            i86 = int_lt(i79, i45)
+            guard_true(i86, descr=...)
+            guard_not_invalidated(descr=...)
+            i87 = getfield_gc_pure(p85, descr=<FieldS pypy.module.micronumpy.iterators.IterState.inst_index .+>)
+            i88 = int_ge(i87, i59)
+            guard_false(i88, descr=...)
+            i89 = getfield_gc_pure(p85, descr=<FieldS pypy.module.micronumpy.iterators.IterState.inst_offset .+>)
+            f90 = raw_load(i67, i89, descr=<ArrayF 8>)
+            i91 = int_add(i87, 1)
+            p92 = getfield_gc_pure(p85, descr=<FieldP pypy.module.micronumpy.iterators.IterState.inst__indices .+>)
+            i93 = int_add(i89, i76)
+            i94 = int_add(i79, 1)
+            i95 = getfield_raw(#, descr=<FieldS pypysig_long_struct.c_value 0>)
+            i96 = int_lt(i95, 0)
+            guard_false(i96, descr=...)
+            p97 = new_with_vtable(#)
+            {{{
+            setfield_gc(p97, p56, descr=<FieldP pypy.module.micronumpy.iterators.IterState.inst_iterator .+>)
+            setfield_gc(p97, p92, descr=<FieldP pypy.module.micronumpy.iterators.IterState.inst__indices .+>)
+            setfield_gc(p97, i91, descr=<FieldS pypy.module.micronumpy.iterators.IterState.inst_index .+>)
+            setfield_gc(p97, i93, descr=<FieldS pypy.module.micronumpy.iterators.IterState.inst_offset .+>)
+            setfield_gc(p16, p97, descr=<FieldP pypy.module.micronumpy.flatiter.W_FlatIterator.inst_state .+>)
+            }}}
+            jump(p0, p1, p3, p6, p12, p14, p16, i94, f90, p26, i45, p97, i59, p56, i67, i76, descr=...)
+        """)
+
     def test_array_flatiter_getitem_single(self):
         def main():
             import _numpypy.multiarray as np


More information about the pypy-commit mailing list