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

fijal at codespeak.net fijal at codespeak.net
Tue Sep 1 18:36:43 CEST 2009


Author: fijal
Date: Tue Sep  1 18:36:42 2009
New Revision: 67412

Modified:
   pypy/trunk/pypy/jit/metainterp/test/oparser.py
   pypy/trunk/pypy/jit/metainterp/test/test_oparser.py
Log:
A test and support for embedding strings (lltype only since ootype has no tests)


Modified: pypy/trunk/pypy/jit/metainterp/test/oparser.py
==============================================================================
--- pypy/trunk/pypy/jit/metainterp/test/oparser.py	(original)
+++ pypy/trunk/pypy/jit/metainterp/test/oparser.py	Tue Sep  1 18:36:42 2009
@@ -9,6 +9,7 @@
 from pypy.jit.metainterp.typesystem import llhelper
 from pypy.rpython.lltypesystem import lltype, llmemory
 from pypy.rpython.ootypesystem import ootype
+from pypy.rpython.annlowlevel import llstr
 
 _cache = {}
 _default_namespace = {'lltype': {}, 'ootype': {}}
@@ -99,6 +100,11 @@
         try:
             return ConstInt(int(arg))
         except ValueError:
+            if arg.startswith('"') or arg.startswith("'"):
+                # XXX ootype
+                info = arg.strip("'\"")
+                return ConstPtr(lltype.cast_opaque_ptr(llmemory.GCREF,
+                                                       llstr(info)))
             if arg.startswith('ConstClass('):
                 name = arg[len('ConstClass('):-1]
                 if self.type_system == 'lltype':

Modified: pypy/trunk/pypy/jit/metainterp/test/test_oparser.py
==============================================================================
--- pypy/trunk/pypy/jit/metainterp/test/test_oparser.py	(original)
+++ pypy/trunk/pypy/jit/metainterp/test/test_oparser.py	Tue Sep  1 18:36:42 2009
@@ -140,3 +140,12 @@
     loop = parse(x, jump_targets=[obj, 'self'])
     assert loop.operations[-1].jump_target is loop
     assert loop.operations[0].suboperations[0].jump_target is obj
+
+def test_debug_merge_point():
+    x = '''
+    []
+    debug_merge_point("info")
+    debug_merge_point('info')
+    '''
+    loop = parse(x)
+    assert loop.operations[0].args[0]._get_str() == 'info'



More information about the Pypy-commit mailing list