[pypy-svn] r49687 - in pypy/branch/newdotviewer: . test
misto at codespeak.net
misto at codespeak.net
Wed Dec 12 23:01:31 CET 2007
Author: misto
Date: Wed Dec 12 23:01:29 2007
New Revision: 49687
Added:
pypy/branch/newdotviewer/
- copied from r49685, pypy/dist/dotviewer/
Modified:
pypy/branch/newdotviewer/conftest.py
pypy/branch/newdotviewer/drawgraph.py
pypy/branch/newdotviewer/graphclient.py
pypy/branch/newdotviewer/graphparse.py
pypy/branch/newdotviewer/msgstruct.py
pypy/branch/newdotviewer/test/__init__.py
pypy/branch/newdotviewer/test/test_msgstruct.py
pypy/branch/newdotviewer/test/test_translator.py
Log:
dotviewer refactorization
Modified: pypy/branch/newdotviewer/conftest.py
==============================================================================
--- pypy/dist/dotviewer/conftest.py (original)
+++ pypy/branch/newdotviewer/conftest.py Wed Dec 12 23:01:29 2007
@@ -2,6 +2,6 @@
Option = py.test.config.Option
option = py.test.config.addoptions("dotviewer options",
- Option('--pygame', action="store_true", dest="pygame", default=False,
+ Option('--pygame', action="store_true", dest="pygame", default=True,
help="allow interactive tests using Pygame"),
)
Modified: pypy/branch/newdotviewer/drawgraph.py
==============================================================================
--- pypy/dist/dotviewer/drawgraph.py (original)
+++ pypy/branch/newdotviewer/drawgraph.py Wed Dec 12 23:01:29 2007
@@ -260,10 +260,10 @@
else:
return (color, None)
- def setscale(self, scale):
+ def setscale(self, scale, graph):
scale = max(min(scale, self.SCALEMAX), self.SCALEMIN)
self.scale = float(scale)
- w, h = self.graphlayout.boundingbox
+ w, h = graph.boundingbox
self.margin = int(self.MARGIN * scale)
self.width = int(w * scale) + (2 * self.margin)
self.height = int(h * scale) + (2 * self.margin)
Modified: pypy/branch/newdotviewer/graphclient.py
==============================================================================
--- pypy/dist/dotviewer/graphclient.py (original)
+++ pypy/branch/newdotviewer/graphclient.py Wed Dec 12 23:01:29 2007
@@ -83,6 +83,8 @@
try:
io.sendmsg(*msg)
except IOError, ioerror:
+ import sys
+ print >>sys.stderr, "Error: sending ", msg , str(ioerror)
break
# wait for MSG_OK or MSG_ERROR
try:
Modified: pypy/branch/newdotviewer/graphparse.py
==============================================================================
--- pypy/dist/dotviewer/graphparse.py (original)
+++ pypy/branch/newdotviewer/graphparse.py Wed Dec 12 23:01:29 2007
@@ -45,7 +45,7 @@
else:
cmdline = 'neato -Tplain'
#print >> sys.stderr, '* running:', cmdline
- child_in, child_out = os.popen2(cmdline, 'r')
+ child_in, child_out = os.popen2 (cmdline)
try:
import thread
except ImportError:
Modified: pypy/branch/newdotviewer/msgstruct.py
==============================================================================
--- pypy/dist/dotviewer/msgstruct.py (original)
+++ pypy/branch/newdotviewer/msgstruct.py Wed Dec 12 23:01:29 2007
@@ -128,3 +128,5 @@
def close(self):
self.s.close()
+
+
Modified: pypy/branch/newdotviewer/test/__init__.py
==============================================================================
--- pypy/dist/dotviewer/test/__init__.py (original)
+++ pypy/branch/newdotviewer/test/__init__.py Wed Dec 12 23:01:29 2007
@@ -0,0 +1,47 @@
+ONE_NODE_GRAPH = r'''
+digraph prova {
+A-> B
+}
+'''
+
+
+BIG_GRAPH = r'''digraph _generated__graph {
+subgraph _generated__ {
+_generated__ [shape="box", label="generated", color="black", fillcolor="#a5e6f0", style="filled", width="0.75"];
+edge [label="startblock", style="dashed", color="black", dir="forward", weight="5"];
+_generated__ -> _generated____1
+_generated____1 [shape="box", label="generated__1\ninputargs: v2720\n\n", color="black", fillcolor="white", style="filled", width="0.75"];
+edge [label="v2720", style="solid", color="black", dir="forward", weight="5"];
+_generated____1 -> _generated____2
+_generated____2 [shape="octagon", label="generated__2\ninputargs: v2721\n\nv2722 = int_gt(v2721, (2))\l\lexitswitch: v2722", color="red", fillcolor="white", style="filled", width="0.75"];
+edge [label="False: v2721", style="dotted", color="red", dir="forward", weight="5"];
+_generated____2 -> _generated____3
+edge [label="True: v2721", style="dotted", color="red", dir="forward", weight="5"];
+_generated____2 -> _generated____4
+_generated____3 [shape="octagon", label="generated__3\ninputargs: v2723\n\nv2724 = int_gt(v2723, (0))\l\lexitswitch: v2724", color="red", fillcolor="white", style="filled", width="0.75"];
+edge [label="False: (22) v2723", style="dotted", color="red", dir="forward", weight="5"];
+_generated____3 -> _generated____5
+edge [label="True: v2723 v2724", style="dotted", color="red", dir="forward", weight="5"];
+_generated____3 -> _generated____6
+_generated____5 [shape="box", label="generated__5\ninputargs: v2727 v2725\n\nv2726 = int_sub(v2725, (1))\lv2728 = int_add(v2727, (1))\lv2729 = int_add(v2728, v2726)\l", color="black", fillcolor="white", style="filled", width="0.75"];
+edge [label="v2729", style="solid", color="black", dir="forward", weight="5"];
+_generated____5 -> _generated____7
+_generated____7 [shape="box", label="generated__7\ninputargs: v2730\n\nreturn v2730", color="black", fillcolor="green", style="filled", width="0.75"];
+_generated____6 [shape="box", label="generated__6\ninputargs: v2732 v2733\n\nv2731 = same_as((17))\l", color="black", fillcolor="white", style="filled", width="0.75"];
+edge [label="v2731 v2732", style="solid", color="black", dir="forward", weight="5"];
+_generated____6 -> _generated____5
+_generated____4 [shape="box", label="generated__4\ninputargs: v2734\n\nv2735 = int_sub(v2734, (1))\lv2736 = int_add((55), v2735)\l", color="black", fillcolor="white", style="filled", width="0.75"];
+edge [label="v2736", style="solid", color="black", dir="forward", weight="5"];
+_generated____4 -> _generated____7
+}
+}
+'''
+
+
+SOURCE1_TO_MSG_LIST = [('i', -998470283), ('[', 'graph_id', '1.000', '6.944', '16.278'), ('n', '_generated__', '3.750', '16.028', '1.149', '0.500', 'generated', 'filled', 'box', 'black', '#a5e6f0'), ('n', '_generated____1', '3.750', '14.556', '1.826', '0.875', 'generated__1\ninputargs: v2720\n\n', 'filled', 'box', 'black', 'white'), ('n', '_generated____2', '3.750', '12.069', '3.738', '2.509', 'generated__2\ninputargs: v2721\n\nv2722 = int_gt(v2721, (2))\\l\\lexitswitch: v2722', 'filled', 'octagon', 'red', 'white'), ('n', '_generated____3', '2.014', '8.764', '3.738', '2.509', 'generated__3\ninputargs: v2723\n\nv2724 = int_gt(v2723, (0))\\l\\lexitswitch: v2724', 'filled', 'octagon', 'red', 'white'), ('n', '_generated____4', '5.417', '6.542', '3.066', '1.417', 'generated__4\ninputargs: v2734\n\nv2735 = int_sub(v2734, (1))\\lv2736 = int_add((55), v2735)\\l', 'filled', 'box', 'black', 'white'), ('n', '_generated____5', '3.403', '2.792', '3.253', '1.688', 'generated__5\ninputargs: v2727 v2725\n\nv2726 = int_sub(v2725, (1))\\lv2728 = int_add(v2727, (1))\\lv2729 = int_add(v2728, v2726)\\l', 'filled', 'box', 'black', 'white'), ('n', '_generated____6', '3.597', '5.000', '2.472', '1.146', 'generated__6\ninputargs: v2732 v2733\n\nv2731 = same_as((17))\\l', 'filled', 'box', 'black', 'white'), ('n', '_generated____7', '4.708', '0.583', '1.826', '1.146', 'generated__7\ninputargs: v2730\n\nreturn v2730', 'filled', 'box', 'black', 'green'), ('e', '_generated__', '_generated____1', '4', '3.750', '15.778', '3.750', '15.597', '3.750', '15.361', '3.750', '15.139', 'startblock', '4.222', '15.389', 'dashed', 'black'), ('e', '_generated____1', '_generated____2', '4', '3.750', '14.111', '3.750', '13.931', '3.750', '13.708', '3.750', '13.472', 'v2720', '4.042', '13.722', 'solid', 'black'), ('e', '_generated____2', '_generated____3', '4', '3.097', '10.819', '2.986', '10.597', '2.861', '10.375', '2.750', '10.153', 'False: v2721', '3.514', '10.417', 'dotted', 'red'), ('e', '_generated____2', '_generated____4', '4', '4.125', '10.806', '4.444', '9.764', '4.889', '8.306', '5.167', '7.389', 'True: v2721', '4.833', '10.417', 'dotted', 'red'), ('e', '_generated____3', '_generated____5', '7', '1.111', '7.583', '0.542', '6.681', '0.000', '5.417', '0.569', '4.417', '0.819', '3.986', '1.222', '3.667', '1.653', '3.431', 'False: (22) v2723', '1.403', '5.000', 'dotted', 'red'), ('e', '_generated____3', '_generated____6', '7', '1.694', '7.500', '1.639', '6.958', '1.653', '6.319', '1.958', '5.833', '2.028', '5.708', '2.125', '5.597', '2.250', '5.514', 'True: v2723 v2724', '2.861', '6.542', 'dotted', 'red'), ('e', '_generated____4', '_generated____7', '7', '5.431', '5.833', '5.444', '4.917', '5.403', '3.292', '5.153', '1.944', '5.111', '1.722', '5.042', '1.486', '4.972', '1.292', 'v2736', '5.667', '4.028', 'solid', 'black'), ('e', '_generated____5', '_generated____7', '4', '3.903', '1.944', '4.028', '1.722', '4.167', '1.486', '4.306', '1.278', 'v2729', '4.444', '1.556', 'solid', 'black'), ('e', '_generated____6', '_generated____5', '4', '3.542', '4.431', '3.528', '4.236', '3.514', '4.000', '3.486', '3.778', 'v2731 v2732', '4.125', '4.028', 'solid', 'black'), (']',)]
+
+
+def compare ( alist , blist):
+ for a,b in zip(alist,blist):
+ assert a == b
+
\ No newline at end of file
Modified: pypy/branch/newdotviewer/test/test_msgstruct.py
==============================================================================
--- pypy/dist/dotviewer/test/test_msgstruct.py (original)
+++ pypy/branch/newdotviewer/test/test_msgstruct.py Wed Dec 12 23:01:29 2007
@@ -14,3 +14,5 @@
assert decodemessage(encoded[:-1]) == (None, encoded[:-1])
assert decodemessage(encoded) == (args, '')
assert decodemessage(encoded + 'FooBar') == (args, 'FooBar')
+
+
Modified: pypy/branch/newdotviewer/test/test_translator.py
==============================================================================
--- pypy/dist/dotviewer/test/test_translator.py (original)
+++ pypy/branch/newdotviewer/test/test_translator.py Wed Dec 12 23:01:29 2007
@@ -20,8 +20,37 @@
return len(divisors) == 2
-def test_annotated():
+def xtest_annotated():
from pypy.translator.interactive import Translation
t = Translation(is_prime)
t.annotate([int])
- t.viewcg()
+ #t.viewcg()
+
+def test_new_annotated():
+ from pypy.translator.interactive import Translation
+ t = Translation(is_prime)
+ t.annotate([int])
+ process (show_flowgraph(t.context))
+ process (show_callgraph(t.context))
+
+def show_flowgraph (test):
+ """Shows the control flow graph with annotations if computed.
+ Requires 'dot' and pygame."""
+ from pypy.translator.tool.graphpage import FlowGraphPage
+ flowpage = FlowGraphPage(test)
+ page = flowpage.content()
+ return page
+
+def process (page):
+ from dotviewer import display
+ from dotviewer.test.test_graphparse import graph_from_dot_buffer
+ graph = graph_from_dot_buffer (page.source)
+ dis = display.MyDisplay ((800,600))
+ dis.display_graph (graph)
+ dis.driver.loop ()
+
+def show_callgraph (test):
+ """Shows the whole call graph and the class hierarchy, based on
+ the computed annotations."""
+ from pypy.translator.tool.graphpage import TranslatorPage
+ return TranslatorPage (test).content()
More information about the Pypy-commit
mailing list