[pypy-svn] r57673 - pypy/branch/oo-jit/pypy/translator/cli/test
antocuni at codespeak.net
antocuni at codespeak.net
Fri Aug 29 12:02:52 CEST 2008
Author: antocuni
Date: Fri Aug 29 12:02:49 2008
New Revision: 57673
Modified:
pypy/branch/oo-jit/pypy/translator/cli/test/runtest.py
pypy/branch/oo-jit/pypy/translator/cli/test/test_runtest.py
Log:
add support to pass strings as input arguments to compiled functions
Modified: pypy/branch/oo-jit/pypy/translator/cli/test/runtest.py
==============================================================================
--- pypy/branch/oo-jit/pypy/translator/cli/test/runtest.py (original)
+++ pypy/branch/oo-jit/pypy/translator/cli/test/runtest.py Fri Aug 29 12:02:49 2008
@@ -8,7 +8,7 @@
from pypy.rpython.test.tool import BaseRtypingTest, OORtypeMixin
from pypy.rpython.lltypesystem.lltype import typeOf
from pypy.rpython.ootypesystem import ootype
-from pypy.annotation.model import lltype_to_annotation
+from pypy.annotation.model import lltype_to_annotation, SomeString
from pypy.translator.backendopt.all import backend_optimizations
from pypy.translator.backendopt.checkvirtual import check_virtual_methods
from pypy.rpython.ootypesystem import ootype
@@ -132,6 +132,7 @@
CTS.types.uint64: 'ToUInt64',
CTS.types.bool: 'ToBoolean',
CTS.types.char: 'ToChar',
+ CTS.types.string: 'ToString',
}
try:
@@ -264,6 +265,12 @@
def __repr__(self):
return 'ExceptionWrapper(%s)' % repr(self.class_name)
+def get_annotation(x):
+ if isinstance(x, basestring) and len(x) > 1:
+ return SomeString()
+ else:
+ return lltype_to_annotation(typeOf(x))
+
class CliTest(BaseRtypingTest, OORtypeMixin):
def __init__(self):
self._func = None
@@ -272,7 +279,7 @@
def _compile(self, fn, args, ann=None, backendopt=True, auto_raise_exc=False, exctrans=False):
if ann is None:
- ann = [lltype_to_annotation(typeOf(x)) for x in args]
+ ann = [get_annotation(x) for x in args]
if self._func is fn and self._ann == ann:
return self._cli_func
else:
Modified: pypy/branch/oo-jit/pypy/translator/cli/test/test_runtest.py
==============================================================================
--- pypy/branch/oo-jit/pypy/translator/cli/test/test_runtest.py (original)
+++ pypy/branch/oo-jit/pypy/translator/cli/test/test_runtest.py Fri Aug 29 12:02:49 2008
@@ -15,4 +15,10 @@
return a0
res = self.interpret(fn, [42]*10)
assert res == 42
-
+
+ def test_input_string(self):
+ def fn(s):
+ return len(s)
+
+ res = self.interpret(fn, ["hello"])
+ assert res == 5
More information about the Pypy-commit
mailing list