[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