[pypy-svn] r18242 - in pypy/dist/pypy/interpreter: pyparser/test pyparser/test/samples testcompiler

pedronis at codespeak.net pedronis at codespeak.net
Fri Oct 7 02:59:48 CEST 2005


Author: pedronis
Date: Fri Oct  7 02:59:44 2005
New Revision: 18242

Removed:
   pypy/dist/pypy/interpreter/testcompiler/
Modified:
   pypy/dist/pypy/interpreter/pyparser/test/samples/snippet_decorators.py
   pypy/dist/pypy/interpreter/pyparser/test/test_astbuilder.py
   pypy/dist/pypy/interpreter/pyparser/test/test_astcompiler.py
   pypy/dist/pypy/interpreter/pyparser/test/test_samples.py
Log:
use the resurrected stablecompiler in astbuilder/astcompiler tests so they work on 2.3 too

kill instead testcompiler

PS: it seems beacause of a typo 'single' mode is not tested, kept thing this way but we should look into this,
if fixed some tests fail



Modified: pypy/dist/pypy/interpreter/pyparser/test/samples/snippet_decorators.py
==============================================================================
--- pypy/dist/pypy/interpreter/pyparser/test/samples/snippet_decorators.py	(original)
+++ pypy/dist/pypy/interpreter/pyparser/test/samples/snippet_decorators.py	Fri Oct  7 02:59:44 2005
@@ -5,7 +5,7 @@
 
 @accepts(int, (int,float))
 @returns((int,float))
-def func(arg1, arg2):
+def func0(arg1, arg2):
     return arg1 * arg2
 
 

Modified: pypy/dist/pypy/interpreter/pyparser/test/test_astbuilder.py
==============================================================================
--- pypy/dist/pypy/interpreter/pyparser/test/test_astbuilder.py	(original)
+++ pypy/dist/pypy/interpreter/pyparser/test/test_astbuilder.py	Fri Oct  7 02:59:44 2005
@@ -3,8 +3,8 @@
 from pypy.interpreter.pyparser.pythonparse import PYTHON_PARSER
 from pypy.interpreter.pyparser.astbuilder import AstBuilder
 from pypy.interpreter.pyparser.pythonutil import ast_from_input
-from pypy.interpreter.testcompiler.transformer import Transformer
-import pypy.interpreter.testcompiler.ast as test_ast
+from pypy.interpreter.stablecompiler.transformer import Transformer
+import pypy.interpreter.stablecompiler.ast as test_ast
 import pypy.interpreter.astcompiler.ast as ast_ast
 
 import py.test

Modified: pypy/dist/pypy/interpreter/pyparser/test/test_astcompiler.py
==============================================================================
--- pypy/dist/pypy/interpreter/pyparser/test/test_astcompiler.py	(original)
+++ pypy/dist/pypy/interpreter/pyparser/test/test_astcompiler.py	Fri Oct  7 02:59:44 2005
@@ -1,13 +1,11 @@
 import os
 from pypy.interpreter.pyparser.pythonparse import PYTHON_PARSER
 from pypy.interpreter.pyparser.astbuilder import AstBuilder
+from pypy.interpreter.pyparser.tuplebuilder import TupleBuilder
 from pypy.interpreter.pycode import PyCode
 import py.test
 
 def setup_module(mod):
-    import sys
-    if sys.version[:3] != "2.4":
-        py.test.skip("expected to work only on 2.4")
     import pypy.conftest
     mod.std_space = pypy.conftest.getobjspace('std')
 
@@ -70,7 +68,7 @@
 
 
 def compile_with_astcompiler(expr, target='exec', space=FakeSpace()):
-    ast = ast_parse_expr(expr, target='exec', space=space)
+    ast = ast_parse_expr(expr, target='exec', space=space) # xxx exec: single not really tested, mumble
     misc.set_filename('<?>', ast)
     if target == 'exec':
         Generator = pycodegen.ModuleCodeGenerator
@@ -82,10 +80,23 @@
     rcode = codegen.getCode()
     return rcode
 
-def compile_with_testcompiler(expr, target='exec'):
-    from pypy.interpreter.testcompiler import compile
-    # from compiler import compile
-    return compile(expr, '<?>', target)
+def compile_with_testcompiler(expr, target='exec', space=FakeSpace()):
+    target2 = TARGET_DICT['exec'] # xxx exec: single not really tested
+    builder = TupleBuilder()
+    PYTHON_PARSER.parse_source(expr, target2, builder)
+    tuples =  builder.stack[-1].as_tuple(True)
+    from pypy.interpreter.stablecompiler import transformer, pycodegen, misc
+    ast = transformer.Transformer('<?>').compile_node(tuples)
+    misc.set_filename('<?>', ast)
+    if target == 'exec':
+        Generator = pycodegen.ModuleCodeGenerator
+    elif target == 'single':
+        Generator = pycodegen.InteractiveCodeGenerator
+    elif target == 'eval':
+        Generator = pycodegen.ExpressionCodeGenerator
+    codegen = Generator(ast)
+    rcode = codegen.getCode()
+    return rcode
 
 
 def compare_code(ac_code, sc_code, space=FakeSpace()):

Modified: pypy/dist/pypy/interpreter/pyparser/test/test_samples.py
==============================================================================
--- pypy/dist/pypy/interpreter/pyparser/test/test_samples.py	(original)
+++ pypy/dist/pypy/interpreter/pyparser/test/test_samples.py	Fri Oct  7 02:59:44 2005
@@ -93,7 +93,7 @@
         assert False, testname
 
 
-from pypy.interpreter.testcompiler.transformer import Transformer as PyPyTransformer
+from pypy.interpreter.stablecompiler.transformer import Transformer as PyPyTransformer
 from compiler.transformer import Transformer as PythonTransformer
 
 def _check_tuples_equality(pypy_tuples, python_tuples, testname):



More information about the Pypy-commit mailing list