blob: 4c194dc697e14701affb0ff763df802c29292c69 [file] [log] [blame]
Benjamin Peterson4e299c72008-10-06 21:03:05 +00001"""Test suite for the cProfile module."""
2
3import sys
4from test.support import run_unittest
5
6# rip off all interesting stuff from test_profile
7import cProfile
8from test.test_profile import ProfileTest, regenerate_expected_output
9
10class CProfileTest(ProfileTest):
11 profilerclass = cProfile.Profile
12
Benjamin Peterson7d766532008-10-06 22:05:00 +000013 def get_expected_output(self):
14 return _ProfileOutput
15
Benjamin Peterson4e299c72008-10-06 21:03:05 +000016
17def test_main():
18 run_unittest(CProfileTest)
19
20def main():
21 if '-r' not in sys.argv:
22 test_main()
23 else:
24 regenerate_expected_output(__file__, CProfileTest)
25
26
27# Don't remove this comment. Everything below it is auto-generated.
28#--cut--------------------------------------------------------------------------
Benjamin Peterson7d766532008-10-06 22:05:00 +000029_ProfileOutput = {}
30_ProfileOutput['print_stats'] = """\
Benjamin Peterson4e299c72008-10-06 21:03:05 +000031 28 0.028 0.001 0.028 0.001 profilee.py:110(__getattr__)
32 1 0.270 0.270 1.000 1.000 profilee.py:25(testfunc)
33 23/3 0.150 0.007 0.170 0.057 profilee.py:35(factorial)
34 20 0.020 0.001 0.020 0.001 profilee.py:48(mul)
35 2 0.040 0.020 0.600 0.300 profilee.py:55(helper)
36 4 0.116 0.029 0.120 0.030 profilee.py:73(helper1)
37 2 0.000 0.000 0.140 0.070 profilee.py:84(helper2_indirect)
38 8 0.312 0.039 0.400 0.050 profilee.py:88(helper2)
39 8 0.064 0.008 0.080 0.010 profilee.py:98(subhelper)"""
Benjamin Peterson7d766532008-10-06 22:05:00 +000040_ProfileOutput['print_callers'] = """\
Benjamin Peterson4e299c72008-10-06 21:03:05 +000041profilee.py:110(__getattr__) <- 16 0.016 0.016 profilee.py:98(subhelper)
42profilee.py:25(testfunc) <- 1 0.270 1.000 <string>:1(<module>)
43profilee.py:35(factorial) <- 1 0.014 0.130 profilee.py:25(testfunc)
44 20/3 0.130 0.147 profilee.py:35(factorial)
45 2 0.006 0.040 profilee.py:84(helper2_indirect)
46profilee.py:48(mul) <- 20 0.020 0.020 profilee.py:35(factorial)
47profilee.py:55(helper) <- 2 0.040 0.600 profilee.py:25(testfunc)
48profilee.py:73(helper1) <- 4 0.116 0.120 profilee.py:55(helper)
49profilee.py:84(helper2_indirect) <- 2 0.000 0.140 profilee.py:55(helper)
50profilee.py:88(helper2) <- 6 0.234 0.300 profilee.py:55(helper)
51 2 0.078 0.100 profilee.py:84(helper2_indirect)
52profilee.py:98(subhelper) <- 8 0.064 0.080 profilee.py:88(helper2)
53{built-in method exc_info} <- 4 0.000 0.000 profilee.py:73(helper1)
54{built-in method hasattr} <- 4 0.000 0.004 profilee.py:73(helper1)
55 8 0.000 0.008 profilee.py:88(helper2)
56{method 'append' of 'list' objects} <- 4 0.000 0.000 profilee.py:73(helper1)"""
Benjamin Peterson7d766532008-10-06 22:05:00 +000057_ProfileOutput['print_callees'] = """\
Benjamin Peterson4e299c72008-10-06 21:03:05 +000058<string>:1(<module>) -> 1 0.270 1.000 profilee.py:25(testfunc)
59profilee.py:110(__getattr__) ->
60profilee.py:25(testfunc) -> 1 0.014 0.130 profilee.py:35(factorial)
61 2 0.040 0.600 profilee.py:55(helper)
62profilee.py:35(factorial) -> 20/3 0.130 0.147 profilee.py:35(factorial)
63 20 0.020 0.020 profilee.py:48(mul)
64profilee.py:48(mul) ->
65profilee.py:55(helper) -> 4 0.116 0.120 profilee.py:73(helper1)
66 2 0.000 0.140 profilee.py:84(helper2_indirect)
67 6 0.234 0.300 profilee.py:88(helper2)
68profilee.py:73(helper1) -> 4 0.000 0.000 {built-in method exc_info}
69profilee.py:84(helper2_indirect) -> 2 0.006 0.040 profilee.py:35(factorial)
70 2 0.078 0.100 profilee.py:88(helper2)
71profilee.py:88(helper2) -> 8 0.064 0.080 profilee.py:98(subhelper)
72profilee.py:98(subhelper) -> 16 0.016 0.016 profilee.py:110(__getattr__)
73{built-in method hasattr} -> 12 0.012 0.012 profilee.py:110(__getattr__)"""
74
75if __name__ == "__main__":
76 main()