[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