]>
Commit | Line | Data |
---|---|---|
4710c53d | 1 | """Test suite for the cProfile module."""\r |
2 | \r | |
3 | import sys\r | |
4 | from test.test_support import run_unittest, TESTFN, unlink\r | |
5 | \r | |
6 | # rip off all interesting stuff from test_profile\r | |
7 | import cProfile\r | |
8 | from test.test_profile import ProfileTest, regenerate_expected_output\r | |
9 | \r | |
10 | class CProfileTest(ProfileTest):\r | |
11 | profilerclass = cProfile.Profile\r | |
12 | expected_list_sort_output = "{method 'sort' of 'list' objects}"\r | |
13 | \r | |
14 | # Issue 3895.\r | |
15 | def test_bad_counter_during_dealloc(self):\r | |
16 | import _lsprof\r | |
17 | # Must use a file as StringIO doesn't trigger the bug.\r | |
18 | sys.stderr = open(TESTFN, 'w')\r | |
19 | try:\r | |
20 | obj = _lsprof.Profiler(lambda: int)\r | |
21 | obj.enable()\r | |
22 | obj = _lsprof.Profiler(1)\r | |
23 | obj.disable()\r | |
24 | finally:\r | |
25 | sys.stderr = sys.__stderr__\r | |
26 | unlink(TESTFN)\r | |
27 | \r | |
28 | \r | |
29 | def test_main():\r | |
30 | run_unittest(CProfileTest)\r | |
31 | \r | |
32 | def main():\r | |
33 | if '-r' not in sys.argv:\r | |
34 | test_main()\r | |
35 | else:\r | |
36 | regenerate_expected_output(__file__, CProfileTest)\r | |
37 | \r | |
38 | \r | |
39 | # Don't remove this comment. Everything below it is auto-generated.\r | |
40 | #--cut--------------------------------------------------------------------------\r | |
41 | CProfileTest.expected_output['print_stats'] = """\\r | |
42 | 126 function calls (106 primitive calls) in 1.000 seconds\r | |
43 | \r | |
44 | Ordered by: standard name\r | |
45 | \r | |
46 | ncalls tottime percall cumtime percall filename:lineno(function)\r | |
47 | 1 0.000 0.000 1.000 1.000 <string>:1(<module>)\r | |
48 | 28 0.028 0.001 0.028 0.001 profilee.py:110(__getattr__)\r | |
49 | 1 0.270 0.270 1.000 1.000 profilee.py:25(testfunc)\r | |
50 | 23/3 0.150 0.007 0.170 0.057 profilee.py:35(factorial)\r | |
51 | 20 0.020 0.001 0.020 0.001 profilee.py:48(mul)\r | |
52 | 2 0.040 0.020 0.600 0.300 profilee.py:55(helper)\r | |
53 | 4 0.116 0.029 0.120 0.030 profilee.py:73(helper1)\r | |
54 | 2 0.000 0.000 0.140 0.070 profilee.py:84(helper2_indirect)\r | |
55 | 8 0.312 0.039 0.400 0.050 profilee.py:88(helper2)\r | |
56 | 8 0.064 0.008 0.080 0.010 profilee.py:98(subhelper)\r | |
57 | 12 0.000 0.000 0.012 0.001 {hasattr}\r | |
58 | 4 0.000 0.000 0.000 0.000 {method 'append' of 'list' objects}\r | |
59 | 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}\r | |
60 | 8 0.000 0.000 0.000 0.000 {range}\r | |
61 | 4 0.000 0.000 0.000 0.000 {sys.exc_info}\r | |
62 | \r | |
63 | \r | |
64 | """\r | |
65 | CProfileTest.expected_output['print_callers'] = """\\r | |
66 | Ordered by: standard name\r | |
67 | \r | |
68 | Function was called by...\r | |
69 | ncalls tottime cumtime\r | |
70 | <string>:1(<module>) <-\r | |
71 | profilee.py:110(__getattr__) <- 16 0.016 0.016 profilee.py:98(subhelper)\r | |
72 | 12 0.012 0.012 {hasattr}\r | |
73 | profilee.py:25(testfunc) <- 1 0.270 1.000 <string>:1(<module>)\r | |
74 | profilee.py:35(factorial) <- 1 0.014 0.130 profilee.py:25(testfunc)\r | |
75 | 20/3 0.130 0.147 profilee.py:35(factorial)\r | |
76 | 2 0.006 0.040 profilee.py:84(helper2_indirect)\r | |
77 | profilee.py:48(mul) <- 20 0.020 0.020 profilee.py:35(factorial)\r | |
78 | profilee.py:55(helper) <- 2 0.040 0.600 profilee.py:25(testfunc)\r | |
79 | profilee.py:73(helper1) <- 4 0.116 0.120 profilee.py:55(helper)\r | |
80 | profilee.py:84(helper2_indirect) <- 2 0.000 0.140 profilee.py:55(helper)\r | |
81 | profilee.py:88(helper2) <- 6 0.234 0.300 profilee.py:55(helper)\r | |
82 | 2 0.078 0.100 profilee.py:84(helper2_indirect)\r | |
83 | profilee.py:98(subhelper) <- 8 0.064 0.080 profilee.py:88(helper2)\r | |
84 | {hasattr} <- 4 0.000 0.004 profilee.py:73(helper1)\r | |
85 | 8 0.000 0.008 profilee.py:88(helper2)\r | |
86 | {method 'append' of 'list' objects} <- 4 0.000 0.000 profilee.py:73(helper1)\r | |
87 | {method 'disable' of '_lsprof.Profiler' objects} <-\r | |
88 | {range} <- 8 0.000 0.000 profilee.py:98(subhelper)\r | |
89 | {sys.exc_info} <- 4 0.000 0.000 profilee.py:73(helper1)\r | |
90 | \r | |
91 | \r | |
92 | """\r | |
93 | CProfileTest.expected_output['print_callees'] = """\\r | |
94 | Ordered by: standard name\r | |
95 | \r | |
96 | Function called...\r | |
97 | ncalls tottime cumtime\r | |
98 | <string>:1(<module>) -> 1 0.270 1.000 profilee.py:25(testfunc)\r | |
99 | profilee.py:110(__getattr__) ->\r | |
100 | profilee.py:25(testfunc) -> 1 0.014 0.130 profilee.py:35(factorial)\r | |
101 | 2 0.040 0.600 profilee.py:55(helper)\r | |
102 | profilee.py:35(factorial) -> 20/3 0.130 0.147 profilee.py:35(factorial)\r | |
103 | 20 0.020 0.020 profilee.py:48(mul)\r | |
104 | profilee.py:48(mul) ->\r | |
105 | profilee.py:55(helper) -> 4 0.116 0.120 profilee.py:73(helper1)\r | |
106 | 2 0.000 0.140 profilee.py:84(helper2_indirect)\r | |
107 | 6 0.234 0.300 profilee.py:88(helper2)\r | |
108 | profilee.py:73(helper1) -> 4 0.000 0.004 {hasattr}\r | |
109 | 4 0.000 0.000 {method 'append' of 'list' objects}\r | |
110 | 4 0.000 0.000 {sys.exc_info}\r | |
111 | profilee.py:84(helper2_indirect) -> 2 0.006 0.040 profilee.py:35(factorial)\r | |
112 | 2 0.078 0.100 profilee.py:88(helper2)\r | |
113 | profilee.py:88(helper2) -> 8 0.064 0.080 profilee.py:98(subhelper)\r | |
114 | 8 0.000 0.008 {hasattr}\r | |
115 | profilee.py:98(subhelper) -> 16 0.016 0.016 profilee.py:110(__getattr__)\r | |
116 | 8 0.000 0.000 {range}\r | |
117 | {hasattr} -> 12 0.012 0.012 profilee.py:110(__getattr__)\r | |
118 | {method 'append' of 'list' objects} ->\r | |
119 | {method 'disable' of '_lsprof.Profiler' objects} ->\r | |
120 | {range} ->\r | |
121 | {sys.exc_info} ->\r | |
122 | \r | |
123 | \r | |
124 | """\r | |
125 | \r | |
126 | if __name__ == "__main__":\r | |
127 | main()\r |