[pypy-svn] r55681 - pypy/dist/pypy/module/_lsprof/test

fijal at codespeak.net fijal at codespeak.net
Mon Jun 9 06:14:46 CEST 2008


Author: fijal
Date: Mon Jun  9 06:14:46 2008
New Revision: 55681

Modified:
   pypy/dist/pypy/module/_lsprof/test/test_cprofile.py
Log:
Adapt this test to a bit newer version. It's kind of question
"how it could ever work...", but at least I don't care right now.


Modified: pypy/dist/pypy/module/_lsprof/test/test_cprofile.py
==============================================================================
--- pypy/dist/pypy/module/_lsprof/test/test_cprofile.py	(original)
+++ pypy/dist/pypy/module/_lsprof/test/test_cprofile.py	Mon Jun  9 06:14:46 2008
@@ -9,125 +9,124 @@
     
     def test_cprofile(self):
         skip("fails")
-        import sys
-        from cProfile import Profile
-        from test.profilee import testfunc, timer
-        
-        methodnames = ['print_stats', 'print_callers', 'print_callees']
-
-        def do_profiling(cls):
-            results = []
-            prof = cls(timer, 0.001)
-            start_timer = timer()
-            prof.runctx("testfunc()", {'testfunc':testfunc}, locals())
-            results.append(timer() - start_timer)
-            for methodname in methodnames:
-                import pstats
-                from StringIO import StringIO
-                s = StringIO()
-                stats = pstats.Stats(prof, stream=s)
-                stats.strip_dirs().sort_stats("stdname")
-                getattr(stats, methodname)()
-                results.append(s.getvalue())
-            return results
-
-        res = do_profiling(Profile)
-        assert res[0] == 1000
-        for i, method in enumerate(methodnames):
-            if not res[i + 1] == self.expected_output[method]:
-                print method
-                print res[i + 1]
-                print self.expected_output[method]
-                assert 0
-            #assert res[i + 1] == self.expected_output[method]
+        import sys, os
+        sys.path.insert(0, os.path.dirname(__file__))
+        try:
+            from cProfile import Profile
+            from profilee import testfunc, timer
+
+            methodnames = ['print_stats', 'print_callers', 'print_callees']
+
+            def do_profiling(cls):
+                results = []
+                prof = cls(timer, 0.001)
+                start_timer = timer()
+                prof.runctx("testfunc()", {'testfunc':testfunc}, locals())
+                results.append(timer() - start_timer)
+                for methodname in methodnames:
+                    import pstats
+                    from StringIO import StringIO
+                    s = StringIO()
+                    stats = pstats.Stats(prof, stream=s)
+                    stats.strip_dirs().sort_stats("stdname")
+                    getattr(stats, methodname)()
+                    results.append(s.getvalue())
+                return results
+
+            res = do_profiling(Profile)
+            assert res[0] == 1000
+            for i, method in enumerate(methodnames):
+                if not res[i + 1] == self.expected_output[method]:
+                    print method
+                    print res[i + 1]
+                    print self.expected_output[method]
+                    assert 0
+                #assert res[i + 1] == self.expected_output[method]
+        finally:
+            sys.path.pop(0)
 
 expected_output = {}
 expected_output['print_stats'] = """\
-         127 function calls (107 primitive calls) in 999.749 CPU seconds
+         126 function calls (106 primitive calls) in 1.000 CPU seconds
 
    Ordered by: standard name
 
    ncalls  tottime  percall  cumtime  percall filename:lineno(function)
-        4   -0.004   -0.001   -0.004   -0.001 :0(append)
-        4   -0.004   -0.001   -0.004   -0.001 :0(exc_info)
-       12   -0.024   -0.002   11.964    0.997 :0(hasattr)
-        8   -0.008   -0.001   -0.008   -0.001 :0(range)
-        1    0.000    0.000    0.000    0.000 :0(setprofile)
-        1   -0.002   -0.002  999.751  999.751 <string>:1(<module>)
-        0    0.000             0.000          profile:0(profiler)
-        1   -0.002   -0.002  999.749  999.749 profile:0(testfunc())
-       28   27.972    0.999   27.972    0.999 profilee.py:110(__getattr__)
-        1  269.996  269.996  999.753  999.753 profilee.py:25(testfunc)
-     23/3  149.937    6.519  169.917   56.639 profilee.py:35(factorial)
-       20   19.980    0.999   19.980    0.999 profilee.py:48(mul)
-        2   39.986   19.993  599.814  299.907 profilee.py:55(helper)
-        4  115.984   28.996  119.964   29.991 profilee.py:73(helper1)
-        2   -0.006   -0.003  139.942   69.971 profilee.py:84(helper2_indirect)
-        8  311.976   38.997  399.896   49.987 profilee.py:88(helper2)
-        8   63.968    7.996   79.944    9.993 profilee.py:98(subhelper)
+        1    0.000    0.000    1.000    1.000 <string>:1(<module>)
+       28    0.028    0.001    0.028    0.001 profilee.py:110(__getattr__)
+        1    0.270    0.270    1.000    1.000 profilee.py:25(testfunc)
+     23/3    0.150    0.007    0.170    0.057 profilee.py:35(factorial)
+       20    0.020    0.001    0.020    0.001 profilee.py:48(mul)
+        2    0.040    0.020    0.600    0.300 profilee.py:55(helper)
+        4    0.116    0.029    0.120    0.030 profilee.py:73(helper1)
+        2    0.000    0.000    0.140    0.070 profilee.py:84(helper2_indirect)
+        8    0.312    0.039    0.400    0.050 profilee.py:88(helper2)
+        8    0.064    0.008    0.080    0.010 profilee.py:98(subhelper)
+       12    0.000    0.000    0.012    0.001 {hasattr}
+        4    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
+        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
+        8    0.000    0.000    0.000    0.000 {range}
+        4    0.000    0.000    0.000    0.000 {sys.exc_info}
 
 
 """
 expected_output['print_callers'] = """\
    Ordered by: standard name
 
-Function                          was called by...
-:0(append)                        <- profilee.py:73(helper1)(4)  119.964
-:0(exc_info)                      <- profilee.py:73(helper1)(4)  119.964
-:0(hasattr)                       <- profilee.py:73(helper1)(4)  119.964
-                                     profilee.py:88(helper2)(8)  399.896
-:0(range)                         <- profilee.py:98(subhelper)(8)   79.944
-:0(setprofile)                    <- profile:0(testfunc())(1)  999.749
-<string>:1(<module>)              <- profile:0(testfunc())(1)  999.749
-profile:0(profiler)               <-
-profile:0(testfunc())             <- profile:0(profiler)(1)    0.000
-profilee.py:110(__getattr__)      <- :0(hasattr)(12)   11.964
-                                     profilee.py:98(subhelper)(16)   79.944
-profilee.py:25(testfunc)          <- <string>:1(<module>)(1)  999.751
-profilee.py:35(factorial)         <- profilee.py:25(testfunc)(1)  999.753
-                                     profilee.py:35(factorial)(20)  169.917
-                                     profilee.py:84(helper2_indirect)(2)  139.942
-profilee.py:48(mul)               <- profilee.py:35(factorial)(20)  169.917
-profilee.py:55(helper)            <- profilee.py:25(testfunc)(2)  999.753
-profilee.py:73(helper1)           <- profilee.py:55(helper)(4)  599.814
-profilee.py:84(helper2_indirect)  <- profilee.py:55(helper)(2)  599.814
-profilee.py:88(helper2)           <- profilee.py:55(helper)(6)  599.814
-                                     profilee.py:84(helper2_indirect)(2)  139.942
-profilee.py:98(subhelper)         <- profilee.py:88(helper2)(8)  399.896
+Function                                          was called by...
+                                                      ncalls  tottime  cumtime
+<string>:1(<module>)                              <-
+profilee.py:110(__getattr__)                      <-      16    0.016    0.016  profilee.py:98(subhelper)
+                                                          12    0.012    0.012  {hasattr}
+profilee.py:25(testfunc)                          <-       1    0.270    1.000  <string>:1(<module>)
+profilee.py:35(factorial)                         <-       1    0.014    0.130  profilee.py:25(testfunc)
+                                                        20/3    0.130    0.147  profilee.py:35(factorial)
+                                                           2    0.006    0.040  profilee.py:84(helper2_indirect)
+profilee.py:48(mul)                               <-      20    0.020    0.020  profilee.py:35(factorial)
+profilee.py:55(helper)                            <-       2    0.040    0.600  profilee.py:25(testfunc)
+profilee.py:73(helper1)                           <-       4    0.116    0.120  profilee.py:55(helper)
+profilee.py:84(helper2_indirect)                  <-       2    0.000    0.140  profilee.py:55(helper)
+profilee.py:88(helper2)                           <-       6    0.234    0.300  profilee.py:55(helper)
+                                                           2    0.078    0.100  profilee.py:84(helper2_indirect)
+profilee.py:98(subhelper)                         <-       8    0.064    0.080  profilee.py:88(helper2)
+{hasattr}                                         <-       4    0.000    0.004  profilee.py:73(helper1)
+                                                           8    0.000    0.008  profilee.py:88(helper2)
+{method 'append' of 'list' objects}               <-       4    0.000    0.000  profilee.py:73(helper1)
+{method 'disable' of '_lsprof.Profiler' objects}  <-
+{range}                                           <-       8    0.000    0.000  profilee.py:98(subhelper)
+{sys.exc_info}                                    <-       4    0.000    0.000  profilee.py:73(helper1)
 
 
 """
 expected_output['print_callees'] = """\
    Ordered by: standard name
 
-Function                          called...
-:0(append)                        ->
-:0(exc_info)                      ->
-:0(hasattr)                       -> profilee.py:110(__getattr__)(12)   27.972
-:0(range)                         ->
-:0(setprofile)                    ->
-<string>:1(<module>)              -> profilee.py:25(testfunc)(1)  999.753
-profile:0(profiler)               -> profile:0(testfunc())(1)  999.749
-profile:0(testfunc())             -> :0(setprofile)(1)    0.000
-                                     <string>:1(<module>)(1)  999.751
-profilee.py:110(__getattr__)      ->
-profilee.py:25(testfunc)          -> profilee.py:35(factorial)(1)  169.917
-                                     profilee.py:55(helper)(2)  599.814
-profilee.py:35(factorial)         -> profilee.py:35(factorial)(20)  169.917
-                                     profilee.py:48(mul)(20)   19.980
-profilee.py:48(mul)               ->
-profilee.py:55(helper)            -> profilee.py:73(helper1)(4)  119.964
-                                     profilee.py:84(helper2_indirect)(2)  139.942
-                                     profilee.py:88(helper2)(6)  399.896
-profilee.py:73(helper1)           -> :0(append)(4)   -0.004
-                                     :0(exc_info)(4)   -0.004
-                                     :0(hasattr)(4)   11.964
-profilee.py:84(helper2_indirect)  -> profilee.py:35(factorial)(2)  169.917
-                                     profilee.py:88(helper2)(2)  399.896
-profilee.py:88(helper2)           -> :0(hasattr)(8)   11.964
-                                     profilee.py:98(subhelper)(8)   79.944
-profilee.py:98(subhelper)         -> :0(range)(8)   -0.008
-                                     profilee.py:110(__getattr__)(16)   27.972
+Function                                          called...
+                                                      ncalls  tottime  cumtime
+<string>:1(<module>)                              ->       1    0.270    1.000  profilee.py:25(testfunc)
+profilee.py:110(__getattr__)                      ->
+profilee.py:25(testfunc)                          ->       1    0.014    0.130  profilee.py:35(factorial)
+                                                           2    0.040    0.600  profilee.py:55(helper)
+profilee.py:35(factorial)                         ->    20/3    0.130    0.147  profilee.py:35(factorial)
+                                                          20    0.020    0.020  profilee.py:48(mul)
+profilee.py:48(mul)                               ->
+profilee.py:55(helper)                            ->       4    0.116    0.120  profilee.py:73(helper1)
+                                                           2    0.000    0.140  profilee.py:84(helper2_indirect)
+                                                           6    0.234    0.300  profilee.py:88(helper2)
+profilee.py:73(helper1)                           ->       4    0.000    0.004  {hasattr}
+                                                           4    0.000    0.000  {method 'append' of 'list' objects}
+                                                           4    0.000    0.000  {sys.exc_info}
+profilee.py:84(helper2_indirect)                  ->       2    0.006    0.040  profilee.py:35(factorial)
+                                                           2    0.078    0.100  profilee.py:88(helper2)
+profilee.py:88(helper2)                           ->       8    0.064    0.080  profilee.py:98(subhelper)
+                                                           8    0.000    0.008  {hasattr}
+profilee.py:98(subhelper)                         ->      16    0.016    0.016  profilee.py:110(__getattr__)
+                                                           8    0.000    0.000  {range}
+{hasattr}                                         ->      12    0.012    0.012  profilee.py:110(__getattr__)
+{method 'append' of 'list' objects}               ->
+{method 'disable' of '_lsprof.Profiler' objects}  ->
+{range}                                           ->
+{sys.exc_info}                                    ->
 
 
 """



More information about the Pypy-commit mailing list