Author: fijal
Branch: jit-leaner-frontend
Changeset: r83248:9d6c1e09270a
Date: 2016-03-22 13:49 +0200
http://bitbucket.org/pypy/pypy/changeset/9d6c1e09270a/

Log:    whack at tests, unsure a bit about the virtualstate one

diff --git a/rpython/jit/metainterp/optimizeopt/virtualstate.py 
b/rpython/jit/metainterp/optimizeopt/virtualstate.py
--- a/rpython/jit/metainterp/optimizeopt/virtualstate.py
+++ b/rpython/jit/metainterp/optimizeopt/virtualstate.py
@@ -157,9 +157,11 @@
                 raise VirtualStatesCantMatch("field descrs don't match")
             if runtime_box is not None and opinfo is not None:
                 fieldbox = opinfo._fields[self.fielddescrs[i].get_index()]
-                # must be there
-                fieldbox_runtime = state.get_runtime_field(runtime_box,
+                if fieldbox is not None:
+                    fieldbox_runtime = state.get_runtime_field(runtime_box,
                                                            self.fielddescrs[i])
+                else:
+                    fieldbox_runtime = None
             else:
                 fieldbox = None
                 fieldbox_runtime = None
diff --git a/rpython/jit/metainterp/test/test_warmspot.py 
b/rpython/jit/metainterp/test/test_warmspot.py
--- a/rpython/jit/metainterp/test/test_warmspot.py
+++ b/rpython/jit/metainterp/test/test_warmspot.py
@@ -623,6 +623,9 @@
             class tracker:
                 pass
 
+            def setup_descrs(self):
+                pass
+
             def get_latest_descr(self, deadframe):
                 assert isinstance(deadframe, FakeDeadFrame)
                 return self.get_fail_descr_from_number(deadframe._no)
diff --git a/rpython/jit/metainterp/test/test_warmstate.py 
b/rpython/jit/metainterp/test/test_warmstate.py
--- a/rpython/jit/metainterp/test/test_warmstate.py
+++ b/rpython/jit/metainterp/test/test_warmstate.py
@@ -6,7 +6,8 @@
 from rpython.jit.metainterp.warmstate import WarmEnterState
 from rpython.jit.metainterp.resoperation import InputArgInt, InputArgRef,\
      InputArgFloat
-from rpython.jit.metainterp.history import ConstInt, ConstFloat, ConstPtr
+from rpython.jit.metainterp.history import ConstInt, ConstFloat, ConstPtr,\
+     IntFrontendOp, FloatFrontendOp, RefFrontendOp
 from rpython.jit.metainterp.counter import DeterministicJitCounter
 from rpython.jit.codewriter import longlong
 from rpython.rlib.rarithmetic import r_singlefloat
@@ -31,6 +32,24 @@
     assert unwrap(lltype.Ptr(RS), InputArgInt(0)) == lltype.nullptr(RS)
 
 def test_wrap():
+    def InputArgInt(a):
+        i = IntFrontendOp(0)
+        i.setint(a)
+        return i
+
+    def InputArgFloat(a):
+        i = FloatFrontendOp(0)
+        i.setfloatstorage(a)
+        return i
+
+    def InputArgRef(a):
+        i = RefFrontendOp(0)
+        i.setref_base(a)
+        return i
+
+    def boxfloat(x):
+        return InputArgFloat(longlong.getfloatstorage(x))
+
     def _is(box1, box2):
         return (box1.__class__ == box2.__class__ and
                 box1.getvalue() == box2.getvalue())
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to