Author: Manuel Jacob
Branch:
Changeset: r68864:b4f8189e6b0b
Date: 2014-01-23 17:59 +0100
http://bitbucket.org/pypy/pypy/changeset/b4f8189e6b0b/
Log: Fix these tests to actually run the optimizations.
diff --git a/rpython/translator/c/test/test_backendoptimized.py
b/rpython/translator/c/test/test_backendoptimized.py
--- a/rpython/translator/c/test/test_backendoptimized.py
+++ b/rpython/translator/c/test/test_backendoptimized.py
@@ -1,6 +1,4 @@
-from rpython.conftest import option
from rpython.rlib.rarithmetic import r_uint, r_longlong, r_ulonglong
-from rpython.translator.backendopt.all import backend_optimizations
from rpython.translator.c.test.test_typed import TestTypedTestCase as
_TestTypedTestCase
from rpython.translator.c.test.test_genc import compile
@@ -77,12 +75,8 @@
assert res == 42
class TestTypedOptimizedSwitchTestCase:
-
- class CodeGenerator(_TestTypedTestCase):
- def process(self, t):
- _TestTypedTestCase.process(self, t)
- self.t = t
- backend_optimizations(t, merge_if_blocks=True)
+ def getcompiled(self, func, argtypes):
+ return compile(func, argtypes, merge_if_blocks=True)
def test_int_switch(self):
def f(x):
@@ -93,8 +87,7 @@
elif x == 27:
return 3
return 0
- codegenerator = self.CodeGenerator()
- fn = codegenerator.getcompiled(f, [int])
+ fn = self.getcompiled(f, [int])
for x in (0,1,2,3,9,27,48, -9):
assert fn(x) == f(x)
@@ -107,8 +100,7 @@
elif x == 3:
return 3
return 0
- codegenerator = self.CodeGenerator()
- fn = codegenerator.getcompiled(f, [int])
+ fn = self.getcompiled(f, [int])
for x in (0,1,2,3,9,27,48, -9):
assert fn(x) == f(x)
@@ -121,8 +113,7 @@
elif x == 3:
return 3
return 0
- codegenerator = self.CodeGenerator()
- fn = codegenerator.getcompiled(f, [int])
+ fn = self.getcompiled(f, [int])
for x in (0,1,2,3,9,27,48, -9):
assert fn(x) == f(x)
@@ -135,8 +126,7 @@
elif x == r_uint(27):
return 3
return 0
- codegenerator = self.CodeGenerator()
- fn = codegenerator.getcompiled(f, [r_uint])
+ fn = self.getcompiled(f, [r_uint])
for x in (0,1,2,3,9,27,48):
assert fn(r_uint(x)) == f(r_uint(x))
@@ -149,8 +139,7 @@
elif x == r_longlong(27):
return 3
return 0
- codegenerator = self.CodeGenerator()
- fn = codegenerator.getcompiled(f, [r_longlong])
+ fn = self.getcompiled(f, [r_longlong])
for x in (0,1,2,3,9,27,48, -9):
assert fn(r_longlong(x)) == f(r_longlong(x))
@@ -163,8 +152,7 @@
elif x == r_ulonglong(27):
return 3
return 0
- codegenerator = self.CodeGenerator()
- fn = codegenerator.getcompiled(f, [r_ulonglong])
+ fn = self.getcompiled(f, [r_ulonglong])
for x in (0,1,2,3,9,27,48, r_ulonglong(-9)):
assert fn(r_ulonglong(x)) == f(r_ulonglong(x))
@@ -178,8 +166,7 @@
elif x == 'c':
return 'd'
return '@'
- codegenerator = self.CodeGenerator()
- fn = codegenerator.getcompiled(f, [int])
+ fn = self.getcompiled(f, [int])
for x in 'ABCabc@':
y = ord(x)
assert fn(y) == f(y)
@@ -194,8 +181,7 @@
if case == '\xFB': return 5
if case == '\xFA': return 6
return 7
- codegenerator = self.CodeGenerator()
- fn = codegenerator.getcompiled(f, [int])
+ fn = self.getcompiled(f, [int])
for input, expected in [(255, 1), (253, 3), (251, 5), (161, 7)]:
res = fn(input)
assert res == expected
@@ -210,20 +196,15 @@
elif x == u'c':
return 'd'
return '@'
- codegenerator = self.CodeGenerator()
- fn = codegenerator.getcompiled(f, [int])
+ fn = self.getcompiled(f, [int])
for x in u'ABCabc@':
y = ord(x)
assert fn(y) == f(y)
class TestTypedOptimizedRaisingOps:
-
- class CodeGenerator(_TestTypedTestCase):
- def process(self, t):
- _TestTypedTestCase.process(self, t)
- self.t = t
- backend_optimizations(t, raisingop2direct_call=True)
+ def getcompiled(self, func, argtypes):
+ return compile(func, argtypes, raisingop2direct_call=True)
def test_int_floordiv_zer(self):
def f(x):
@@ -232,7 +213,6 @@
except:
y = 456
return y
- codegenerator = self.CodeGenerator()
- fn = codegenerator.getcompiled(f, [int])
+ fn = self.getcompiled(f, [int])
for x in (0,1,2,3,9,27,48, -9):
assert fn(x) == f(x)
diff --git a/rpython/translator/c/test/test_genc.py
b/rpython/translator/c/test/test_genc.py
--- a/rpython/translator/c/test/test_genc.py
+++ b/rpython/translator/c/test/test_genc.py
@@ -50,7 +50,7 @@
unsigned_ffffffff)
def compile(fn, argtypes, view=False, gcpolicy="none", backendopt=True,
- annotatorpolicy=None, thread=False):
+ annotatorpolicy=None, thread=False, **kwds):
argtypes_unroll = unrolling_iterable(enumerate(argtypes))
for argtype in argtypes:
@@ -98,7 +98,7 @@
return 0
t = Translation(entry_point, None, gc=gcpolicy, backend="c",
- policy=annotatorpolicy, thread=thread)
+ policy=annotatorpolicy, thread=thread, **kwds)
if not backendopt:
t.disable(["backendopt_lltype"])
t.driver.config.translation.countmallocs = True
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit