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
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to