Author: Manuel Jacob
Branch: llvm-translation-backend
Changeset: r66465:8c35d7643ce2
Date: 2012-03-03 11:44 +0100
http://bitbucket.org/pypy/pypy/changeset/8c35d7643ce2/
Log: Add test for remove_double_links().
diff --git a/pypy/translator/test/test_unsimplify.py
b/pypy/translator/test/test_unsimplify.py
--- a/pypy/translator/test/test_unsimplify.py
+++ b/pypy/translator/test/test_unsimplify.py
@@ -1,7 +1,7 @@
import os
from pypy.translator.translator import TranslationContext, graphof
-from pypy.translator.unsimplify import split_block, call_final_function
-from pypy.translator.unsimplify import call_initial_function
+from pypy.translator.unsimplify import (split_block, call_final_function,
+ remove_double_links, call_initial_function)
from pypy.rpython.llinterp import LLInterpreter
from pypy.objspace.flow.model import checkgraph
from pypy.rlib.objectmodel import we_are_translated
@@ -71,6 +71,27 @@
result = interp.eval_graph(graph, [2])
assert result == 2
+def test_remove_double_links():
+ def f(b):
+ return not b
+ graph, t = translate(f, [bool])
+
+ blocks = list(graph.iterblocks())
+ assert len(blocks) == 2
+ assert len(blocks[0].exits) == 2
+ assert blocks[0].exits[0].target == blocks[1]
+ assert blocks[0].exits[1].target == blocks[1]
+
+ remove_double_links(t.annotator, graph)
+
+ blocks = list(graph.iterblocks())
+ assert len(blocks) == 3
+ assert len(blocks[0].exits) == 2
+ assert blocks[0].exits[0].target == blocks[1]
+ assert blocks[0].exits[1].target == blocks[2]
+ assert len(blocks[2].exits) == 1
+ assert blocks[2].exits[0].target == blocks[1]
+
def test_call_initial_function():
tmpfile = str(udir.join('test_call_initial_function'))
for type_system in ['lltype', 'ootype']:
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit