[pypy-svn] r65146 - pypy/branch/pyjitpl5/pypy/jit/backend/test

benjamin at codespeak.net benjamin at codespeak.net
Thu May 7 21:06:53 CEST 2009


Author: benjamin
Date: Thu May  7 21:06:50 2009
New Revision: 65146

Modified:
   pypy/branch/pyjitpl5/pypy/jit/backend/test/test_ll_random.py
Log:
add NEWSTR and NEWUNICODE

Modified: pypy/branch/pyjitpl5/pypy/jit/backend/test/test_ll_random.py
==============================================================================
--- pypy/branch/pyjitpl5/pypy/jit/backend/test/test_ll_random.py	(original)
+++ pypy/branch/pyjitpl5/pypy/jit/backend/test/test_ll_random.py	Thu May  7 21:06:50 2009
@@ -1,5 +1,5 @@
 import py
-from pypy.rpython.lltypesystem import lltype, llmemory, rclass, rffi
+from pypy.rpython.lltypesystem import lltype, llmemory, rclass, rffi, rstr
 from pypy.jit.backend.test import test_random
 from pypy.jit.metainterp.resoperation import ResOperation, rop
 from pypy.jit.metainterp.history import ConstInt, ConstPtr, ConstAddr, BoxPtr,\
@@ -282,6 +282,18 @@
         descr = self.array_descr(builder, A)
         self.put(builder, [v], descr)
 
+class NewSeqOperation(test_random.AbstractOperation):
+    def produce_into(self, builder, r):
+        v_length = r.choice(builder.intvars)
+        if not (0 <= v_length.value < 500):
+            v_length = ConstInt((r.random_integer() // 5) % 500)
+        v_ptr = builder.do(self.opnum, [v_length])
+        if self.opnum == rop.NEWSTR:
+            seq_type = lltype.Ptr(rstr.STR)
+        else:
+            seq_type = lltype.Ptr(rstr.UNICODE)
+        builder.ptrvars.append((v_ptr, seq_type))
+
 # there are five options in total:
 # 1. non raising call and guard_no_exception
 # 2. raising call and guard_exception
@@ -450,6 +462,8 @@
     OPERATIONS.append(SetArrayItemOperation(rop.SETARRAYITEM_GC))
     OPERATIONS.append(NewArrayOperation(rop.NEW_ARRAY))
     OPERATIONS.append(ArrayLenOperation(rop.ARRAYLEN_GC))
+    OPERATIONS.append(NewSeqOperation(rop.NEWSTR))
+    OPERATIONS.append(NewSeqOperation(rop.NEWUNICODE))
 
 for i in range(2):
     OPERATIONS.append(GuardClassOperation(rop.GUARD_CLASS))



More information about the Pypy-commit mailing list