ruby-prof 2.0.4 → 2.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +6 -2
  3. data/lib/ruby-prof/printers/flame_graph_printer.rb +80 -78
  4. data/lib/ruby-prof/version.rb +1 -1
  5. metadata +4 -85
  6. data/Rakefile +0 -98
  7. data/docs/advanced-usage.md +0 -132
  8. data/docs/alternatives.md +0 -98
  9. data/docs/architecture.md +0 -304
  10. data/docs/best-practices.md +0 -27
  11. data/docs/getting-started.md +0 -130
  12. data/docs/history.md +0 -11
  13. data/docs/index.md +0 -45
  14. data/docs/profiling-rails.md +0 -64
  15. data/docs/public/examples/example.rb +0 -33
  16. data/docs/public/examples/generate_reports.rb +0 -92
  17. data/docs/public/examples/reports/call_info.txt +0 -27
  18. data/docs/public/examples/reports/call_stack.html +0 -835
  19. data/docs/public/examples/reports/callgrind.out +0 -150
  20. data/docs/public/examples/reports/flame_graph.html +0 -408
  21. data/docs/public/examples/reports/flat.txt +0 -45
  22. data/docs/public/examples/reports/graph.dot +0 -129
  23. data/docs/public/examples/reports/graph.html +0 -1319
  24. data/docs/public/examples/reports/graph.txt +0 -100
  25. data/docs/public/examples/reports/graphviz_viewer.html +0 -1
  26. data/docs/public/images/call_stack.png +0 -0
  27. data/docs/public/images/class_diagram.png +0 -0
  28. data/docs/public/images/dot_printer.png +0 -0
  29. data/docs/public/images/flame_graph.png +0 -0
  30. data/docs/public/images/flat.png +0 -0
  31. data/docs/public/images/graph.png +0 -0
  32. data/docs/public/images/graph_html.png +0 -0
  33. data/docs/public/images/ruby-prof-logo.svg +0 -1
  34. data/docs/reports.md +0 -151
  35. data/docs/stylesheets/extra.css +0 -80
  36. data/ruby-prof.gemspec +0 -66
  37. data/test/abstract_printer_test.rb +0 -25
  38. data/test/alias_test.rb +0 -203
  39. data/test/call_tree_builder.rb +0 -126
  40. data/test/call_tree_test.rb +0 -94
  41. data/test/call_tree_visitor_test.rb +0 -27
  42. data/test/call_trees_test.rb +0 -66
  43. data/test/duplicate_names_test.rb +0 -32
  44. data/test/dynamic_method_test.rb +0 -50
  45. data/test/enumerable_test.rb +0 -23
  46. data/test/exceptions_test.rb +0 -24
  47. data/test/exclude_methods_test.rb +0 -363
  48. data/test/exclude_threads_test.rb +0 -48
  49. data/test/fiber_test.rb +0 -195
  50. data/test/gc_test.rb +0 -104
  51. data/test/inverse_call_tree_test.rb +0 -174
  52. data/test/line_number_test.rb +0 -563
  53. data/test/marshal_test.rb +0 -144
  54. data/test/measure_allocations.rb +0 -26
  55. data/test/measure_allocations_test.rb +0 -1511
  56. data/test/measure_process_time_test.rb +0 -3286
  57. data/test/measure_times.rb +0 -56
  58. data/test/measure_wall_time_test.rb +0 -774
  59. data/test/measurement_test.rb +0 -82
  60. data/test/merge_test.rb +0 -146
  61. data/test/method_info_test.rb +0 -100
  62. data/test/multi_printer_test.rb +0 -52
  63. data/test/no_method_class_test.rb +0 -15
  64. data/test/pause_resume_test.rb +0 -171
  65. data/test/prime.rb +0 -54
  66. data/test/prime_script.rb +0 -6
  67. data/test/printer_call_stack_test.rb +0 -28
  68. data/test/printer_call_tree_test.rb +0 -30
  69. data/test/printer_flame_graph_test.rb +0 -82
  70. data/test/printer_flat_test.rb +0 -110
  71. data/test/printer_graph_html_test.rb +0 -62
  72. data/test/printer_graph_test.rb +0 -42
  73. data/test/printers_test.rb +0 -162
  74. data/test/printing_recursive_graph_test.rb +0 -81
  75. data/test/profile_test.rb +0 -101
  76. data/test/rack_test.rb +0 -103
  77. data/test/recursive_test.rb +0 -796
  78. data/test/scheduler.rb +0 -367
  79. data/test/singleton_test.rb +0 -39
  80. data/test/stack_printer_test.rb +0 -61
  81. data/test/start_stop_test.rb +0 -106
  82. data/test/test_helper.rb +0 -24
  83. data/test/thread_test.rb +0 -229
  84. data/test/unique_call_path_test.rb +0 -123
  85. data/test/yarv_test.rb +0 -56
@@ -1,796 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # encoding: UTF-8
3
-
4
- require File.expand_path('../test_helper', __FILE__)
5
-
6
- module SimpleRecursion
7
- # Simple recursive test
8
- def simple(n)
9
- sleep(1)
10
- return if n == 0
11
- simple(n-1)
12
- end
13
-
14
- # More complicated recursive test
15
- def render_partial(i)
16
- sleep(1)
17
- case i
18
- when 0
19
- render_partial(10)
20
- when 1
21
- 2.times do |j|
22
- render_partial(j + 10)
23
- end
24
- end
25
- end
26
-
27
- def render
28
- 2.times do |i|
29
- render_partial(i)
30
- end
31
- end
32
- end
33
-
34
- # -- Tests ----
35
- class RecursiveTest < TestCase
36
- include SimpleRecursion
37
-
38
- def test_simple
39
- result = RubyProf::Profile.profile(measure_mode: RubyProf::WALL_TIME) do
40
- simple(1)
41
- end
42
-
43
- methods = result.threads.first.methods.sort.reverse
44
-
45
- if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('3.1')
46
- assert_equal(3, methods.length)
47
-
48
- # Method 0: RecursiveTest#test_simple
49
- method = methods[0]
50
- assert_equal('RecursiveTest#test_simple', method.full_name)
51
- assert_equal(1, method.called)
52
- refute(method.recursive?)
53
- assert_in_delta(2, method.total_time, 0.1 * delta_multiplier)
54
- assert_in_delta(0, method.self_time, 0.01 * delta_multiplier)
55
- assert_in_delta(0, method.wait_time, 0.01 * delta_multiplier)
56
- assert_in_delta(2, method.children_time, 0.1 * delta_multiplier)
57
-
58
- assert_equal(0, method.call_trees.callers.length)
59
-
60
- assert_equal(1, method.call_trees.callees.length)
61
- call_tree = method.call_trees.callees[0]
62
- assert_equal('SimpleRecursion#simple', call_tree.target.full_name)
63
-
64
- # Method 1: SimpleRecursion#simple
65
- method = methods[1]
66
- assert_equal('SimpleRecursion#simple', method.full_name)
67
- assert_equal(2, method.called)
68
- assert(method.recursive?)
69
- assert_in_delta(2, method.total_time, 0.1 * delta_multiplier)
70
- assert_in_delta(0, method.self_time, 0.1 * delta_multiplier)
71
- assert_in_delta(0, method.wait_time, 0.1 * delta_multiplier)
72
- assert_in_delta(2, method.children_time, 0.1 * delta_multiplier)
73
-
74
- assert_equal(2, method.call_trees.callers.length)
75
- call_tree = method.call_trees.callers[0]
76
- assert_equal('RecursiveTest#test_simple', call_tree.parent.target.full_name)
77
-
78
- call_tree = method.call_trees.callers[1]
79
- assert_equal('SimpleRecursion#simple', call_tree.parent.target.full_name)
80
-
81
- assert_equal(2, method.call_trees.callees.length)
82
- call_tree = method.call_trees.callees[0]
83
- assert_equal('Kernel#sleep', call_tree.target.full_name)
84
-
85
- call_tree = method.call_trees.callees[1]
86
- assert_equal('SimpleRecursion#simple', call_tree.target.full_name)
87
-
88
- # Method 2: Kernel#sleep
89
- method = methods[2]
90
- assert_equal('Kernel#sleep', method.full_name)
91
- assert_equal(2, method.called)
92
- refute(method.recursive?)
93
-
94
- assert_in_delta(2, method.total_time, 0.1 * delta_multiplier)
95
- assert_in_delta(2, method.self_time, 0.1 * delta_multiplier)
96
- assert_in_delta(0, method.wait_time, 0.1 * delta_multiplier)
97
- assert_in_delta(0, method.children_time, 0.1 * delta_multiplier)
98
-
99
- assert_equal(1, method.call_trees.callers.length)
100
- call_tree = method.call_trees.callers[0]
101
- assert_equal('SimpleRecursion#simple', call_tree.parent.target.full_name)
102
- assert_equal(0, method.call_trees.callees.length)
103
-
104
- assert_equal(0, method.call_trees.callees.length)
105
- else
106
- assert_equal(5, methods.length)
107
-
108
- # Method 0: RecursiveTest#test_simple
109
- method = methods[0]
110
- assert_equal('RecursiveTest#test_simple', method.full_name)
111
- assert_equal(1, method.called)
112
- refute(method.recursive?)
113
- assert_in_delta(2, method.total_time, 0.1 * delta_multiplier)
114
- assert_in_delta(0, method.self_time, 0.01 * delta_multiplier)
115
- assert_in_delta(0, method.wait_time, 0.01 * delta_multiplier)
116
- assert_in_delta(2, method.children_time, 0.1 * delta_multiplier)
117
-
118
- assert_equal(0, method.call_trees.callers.length)
119
-
120
- assert_equal(1, method.call_trees.callees.length)
121
- call_tree = method.call_trees.callees[0]
122
- assert_equal('SimpleRecursion#simple', call_tree.target.full_name)
123
-
124
- # Method 1: SimpleRecursion#simple
125
- method = methods[1]
126
- assert_equal('SimpleRecursion#simple', method.full_name)
127
- assert_equal(2, method.called)
128
- assert(method.recursive?)
129
- assert_in_delta(2, method.total_time, 0.1 * delta_multiplier)
130
- assert_in_delta(0, method.self_time, 0.1 * delta_multiplier)
131
- assert_in_delta(0, method.wait_time, 0.1 * delta_multiplier)
132
- assert_in_delta(2, method.children_time, 0.1 * delta_multiplier)
133
-
134
- assert_equal(2, method.call_trees.callers.length)
135
- call_tree = method.call_trees.callers[0]
136
- assert_equal('RecursiveTest#test_simple', call_tree.parent.target.full_name)
137
-
138
- call_tree = method.call_trees.callers[1]
139
- assert_equal('SimpleRecursion#simple', call_tree.parent.target.full_name)
140
-
141
- assert_equal(4, method.call_trees.callees.length)
142
- call_tree = method.call_trees.callees[0]
143
- assert_equal('Kernel#sleep', call_tree.target.full_name)
144
-
145
- call_tree = method.call_trees.callees[1]
146
- assert_equal('Integer#==', call_tree.target.full_name)
147
-
148
- call_tree = method.call_trees.callees[2]
149
- assert_equal('Integer#-', call_tree.target.full_name)
150
-
151
- call_tree = method.call_trees.callees[3]
152
- assert_equal('SimpleRecursion#simple', call_tree.target.full_name)
153
-
154
- # Method 2: Kernel#sleep
155
- method = methods[2]
156
- assert_equal('Kernel#sleep', method.full_name)
157
- assert_equal(2, method.called)
158
- refute(method.recursive?)
159
-
160
- assert_in_delta(2, method.total_time, 0.1 * delta_multiplier)
161
- assert_in_delta(2, method.self_time, 0.1 * delta_multiplier)
162
- assert_in_delta(0, method.wait_time, 0.1 * delta_multiplier)
163
- assert_in_delta(0, method.children_time, 0.1 * delta_multiplier)
164
-
165
- assert_equal(1, method.call_trees.callers.length)
166
- call_tree = method.call_trees.callers[0]
167
- assert_equal('SimpleRecursion#simple', call_tree.parent.target.full_name)
168
- assert_equal(0, method.call_trees.callees.length)
169
-
170
- assert_equal(0, method.call_trees.callees.length)
171
-
172
- # Method 3
173
- method = methods[3]
174
- assert_equal('Integer#==', method.full_name)
175
- assert_equal(2, method.called)
176
- refute(method.recursive?)
177
-
178
- assert_equal(1, method.call_trees.callers.length)
179
- call_tree = method.call_trees.callers[0]
180
- assert_equal('SimpleRecursion#simple', call_tree.parent.target.full_name)
181
-
182
- assert_equal(0, method.call_trees.callees.length)
183
-
184
- # Method 4
185
- method = methods[4]
186
- assert_equal('Integer#-', method.full_name)
187
- assert_equal(1, method.called)
188
- refute(method.recursive?)
189
-
190
- assert_equal(1, method.call_trees.callers.length)
191
- call_tree = method.call_trees.callers[0]
192
- assert_equal('SimpleRecursion#simple', call_tree.parent.target.full_name)
193
-
194
- assert_equal(0, method.call_trees.callees.length)
195
- end
196
- end
197
-
198
- def test_cycle
199
- result = RubyProf::Profile.profile(measure_mode: RubyProf::WALL_TIME) do
200
- render
201
- end
202
-
203
- methods = result.threads.first.methods.sort.reverse
204
-
205
- if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('3.1')
206
- assert_equal(5, methods.length)
207
-
208
- # Method 0
209
- method = methods[0]
210
- assert_equal('RecursiveTest#test_cycle', method.full_name)
211
- assert_equal(1, method.called)
212
- refute(method.recursive?)
213
- assert_in_delta(5, method.total_time, 0.1 * delta_multiplier)
214
- assert_in_delta(0, method.self_time, 0.01 * delta_multiplier)
215
- assert_in_delta(0, method.wait_time, 0.01 * delta_multiplier)
216
- assert_in_delta(5, method.children_time, 0.1 * delta_multiplier)
217
-
218
- assert_equal(0, method.call_trees.callers.length)
219
-
220
- assert_equal(1, method.call_trees.callees.length)
221
- call_tree = method.call_trees.callees[0]
222
- assert_equal('SimpleRecursion#render', call_tree.target.full_name)
223
-
224
- # Method 1
225
- method = methods[1]
226
- assert_equal('SimpleRecursion#render', method.full_name)
227
- assert_equal(1, method.called)
228
- refute(method.recursive?)
229
- assert_in_delta(5, method.total_time, 0.1 * delta_multiplier)
230
- assert_in_delta(0, method.self_time, 0.01 * delta_multiplier)
231
- assert_in_delta(0, method.wait_time, 0.01 * delta_multiplier)
232
- assert_in_delta(5, method.children_time, 0.1 * delta_multiplier)
233
-
234
- assert_equal(1, method.call_trees.callers.length)
235
- call_tree = method.call_trees.callers[0]
236
- assert_equal('RecursiveTest#test_cycle', call_tree.parent.target.full_name)
237
-
238
- assert_equal(1, method.call_trees.callees.length)
239
- call_tree = method.call_trees.callees[0]
240
- assert_equal('Integer#times', call_tree.target.full_name)
241
-
242
- # Method 2
243
- method = methods[2]
244
- assert_equal('Integer#times', method.full_name)
245
- assert_equal(2, method.called)
246
- assert(method.recursive?)
247
- assert_in_delta(5, method.total_time, 0.1 * delta_multiplier)
248
- assert_in_delta(0, method.self_time, 0.1 * delta_multiplier)
249
- assert_in_delta(0, method.wait_time, 0.1 * delta_multiplier)
250
- assert_in_delta(5, method.children_time, 0.1 * delta_multiplier)
251
-
252
- assert_equal(2, method.call_trees.callers.length)
253
- call_tree = method.call_trees.callers[0]
254
- assert_equal('SimpleRecursion#render', call_tree.parent.target.full_name)
255
-
256
- call_tree = method.call_trees.callers[1]
257
- assert_equal('SimpleRecursion#render_partial', call_tree.parent.target.full_name)
258
-
259
- assert_equal(1, method.call_trees.callees.length)
260
- call_tree = method.call_trees.callees[0]
261
- assert_equal('SimpleRecursion#render_partial', call_tree.target.full_name)
262
-
263
- # Method 3
264
- method = methods[3]
265
- assert_equal('SimpleRecursion#render_partial', method.full_name)
266
- assert_equal(5, method.called)
267
- assert(method.recursive?)
268
- assert_in_delta(5, method.total_time, 0.1 * delta_multiplier)
269
- assert_in_delta(0, method.self_time, 0.1 * delta_multiplier)
270
- assert_in_delta(0, method.wait_time, 0.01 * delta_multiplier)
271
- assert_in_delta(5, method.children_time, 0.05)
272
-
273
- assert_equal(2, method.call_trees.callers.length)
274
- call_tree = method.call_trees.callers[0]
275
- assert_equal('Integer#times', call_tree.parent.target.full_name)
276
-
277
- call_tree = method.call_trees.callers[1]
278
- assert_equal('SimpleRecursion#render_partial', call_tree.parent.target.full_name)
279
-
280
- assert_equal(3, method.call_trees.callees.length)
281
- call_tree = method.call_trees.callees[0]
282
- assert_equal('Kernel#sleep', call_tree.target.full_name)
283
-
284
- call_tree = method.call_trees.callees[1]
285
- assert_equal('SimpleRecursion#render_partial', call_tree.target.full_name)
286
-
287
- call_tree = method.call_trees.callees[2]
288
- assert_equal('Integer#times', call_tree.target.full_name)
289
-
290
- # Method 4
291
- method = methods[4]
292
- assert_equal('Kernel#sleep', method.full_name)
293
- assert_equal(5, method.called)
294
- refute(method.recursive?)
295
- assert_in_delta(5, method.total_time, 0.1 * delta_multiplier)
296
- assert_in_delta(5, method.self_time, 0.1 * delta_multiplier)
297
- assert_in_delta(0, method.wait_time, 0.01 * delta_multiplier)
298
- assert_in_delta(0, method.children_time, 0.01 * delta_multiplier)
299
-
300
- assert_equal(1, method.call_trees.callers.length)
301
- call_tree = method.call_trees.callers[0]
302
- assert_equal('SimpleRecursion#render_partial', call_tree.parent.target.full_name)
303
-
304
- assert_equal(0, method.call_trees.callees.length)
305
- elsif Gem::Version.new(RUBY_VERSION) < Gem::Version.new('3.3')
306
- assert_equal(6, methods.length)
307
-
308
- # Method 0
309
- method = methods[0]
310
- assert_equal('RecursiveTest#test_cycle', method.full_name)
311
- assert_equal(1, method.called)
312
- refute(method.recursive?)
313
- assert_in_delta(5, method.total_time, 0.1 * delta_multiplier)
314
- assert_in_delta(0, method.self_time, 0.01 * delta_multiplier)
315
- assert_in_delta(0, method.wait_time, 0.01 * delta_multiplier)
316
- assert_in_delta(5, method.children_time, 0.1 * delta_multiplier)
317
-
318
- assert_equal(0, method.call_trees.callers.length)
319
-
320
- assert_equal(1, method.call_trees.callees.length)
321
- call_tree = method.call_trees.callees[0]
322
- assert_equal('SimpleRecursion#render', call_tree.target.full_name)
323
-
324
- # Method 1
325
- method = methods[1]
326
- assert_equal('SimpleRecursion#render', method.full_name)
327
- assert_equal(1, method.called)
328
- refute(method.recursive?)
329
- assert_in_delta(5, method.total_time, 0.1 * delta_multiplier)
330
- assert_in_delta(0, method.self_time, 0.01 * delta_multiplier)
331
- assert_in_delta(0, method.wait_time, 0.01 * delta_multiplier)
332
- assert_in_delta(5, method.children_time, 0.1 * delta_multiplier)
333
-
334
- assert_equal(1, method.call_trees.callers.length)
335
- call_tree = method.call_trees.callers[0]
336
- assert_equal('RecursiveTest#test_cycle', call_tree.parent.target.full_name)
337
-
338
- assert_equal(1, method.call_trees.callees.length)
339
- call_tree = method.call_trees.callees[0]
340
- assert_equal('Integer#times', call_tree.target.full_name)
341
-
342
- # Method 2
343
- method = methods[2]
344
- assert_equal('Integer#times', method.full_name)
345
- assert_equal(2, method.called)
346
- assert(method.recursive?)
347
- assert_in_delta(5, method.total_time, 0.1 * delta_multiplier)
348
- assert_in_delta(0, method.self_time, 0.1 * delta_multiplier)
349
- assert_in_delta(0, method.wait_time, 0.1 * delta_multiplier)
350
- assert_in_delta(5, method.children_time, 0.1 * delta_multiplier)
351
-
352
- assert_equal(2, method.call_trees.callers.length)
353
- call_tree = method.call_trees.callers[0]
354
- assert_equal('SimpleRecursion#render', call_tree.parent.target.full_name)
355
-
356
- call_tree = method.call_trees.callers[1]
357
- assert_equal('SimpleRecursion#render_partial', call_tree.parent.target.full_name)
358
-
359
- assert_equal(2, method.call_trees.callees.length)
360
- call_tree = method.call_trees.callees[0]
361
- assert_equal('SimpleRecursion#render_partial', call_tree.target.full_name)
362
- call_tree = method.call_trees.callees[1]
363
- assert_equal('Integer#+', call_tree.target.full_name)
364
-
365
- # Method 3
366
- method = methods[3]
367
- assert_equal('SimpleRecursion#render_partial', method.full_name)
368
- assert_equal(5, method.called)
369
- assert(method.recursive?)
370
- assert_in_delta(5, method.total_time, 0.1 * delta_multiplier)
371
- assert_in_delta(0, method.self_time, 0.1 * delta_multiplier)
372
- assert_in_delta(0, method.wait_time, 0.01 * delta_multiplier)
373
- assert_in_delta(5, method.children_time, 0.1 * delta_multiplier)
374
-
375
- assert_equal(2, method.call_trees.callers.length)
376
- call_tree = method.call_trees.callers[0]
377
- assert_equal('Integer#times', call_tree.parent.target.full_name)
378
-
379
- call_tree = method.call_trees.callers[1]
380
- assert_equal('SimpleRecursion#render_partial', call_tree.parent.target.full_name)
381
-
382
- assert_equal(3, method.call_trees.callees.length)
383
- call_tree = method.call_trees.callees[0]
384
- assert_equal('Kernel#sleep', call_tree.target.full_name)
385
-
386
- call_tree = method.call_trees.callees[1]
387
- assert_equal('SimpleRecursion#render_partial', call_tree.target.full_name)
388
-
389
- call_tree = method.call_trees.callees[2]
390
- assert_equal('Integer#times', call_tree.target.full_name)
391
-
392
- # Method 4
393
- method = methods[4]
394
- assert_equal('Kernel#sleep', method.full_name)
395
- assert_equal(5, method.called)
396
- refute(method.recursive?)
397
- assert_in_delta(5, method.total_time, 0.1 * delta_multiplier)
398
- assert_in_delta(5, method.self_time, 0.1 * delta_multiplier)
399
- assert_in_delta(0, method.wait_time, 0.01 * delta_multiplier)
400
- assert_in_delta(0, method.children_time, 0.01 * delta_multiplier)
401
-
402
- assert_equal(1, method.call_trees.callers.length)
403
- call_tree = method.call_trees.callers[0]
404
- assert_equal('SimpleRecursion#render_partial', call_tree.parent.target.full_name)
405
-
406
- assert_equal(0, method.call_trees.callees.length)
407
-
408
- # Method 5
409
- method = methods[5]
410
- assert_equal('Integer#+', method.full_name)
411
- assert_equal(2, method.called)
412
- refute(method.recursive?)
413
- assert_in_delta(0, method.total_time, 0.1 * delta_multiplier)
414
- assert_in_delta(0, method.self_time, 0.1 * delta_multiplier)
415
- assert_in_delta(0, method.wait_time, 0.01 * delta_multiplier)
416
- assert_in_delta(0, method.children_time, 0.01 * delta_multiplier)
417
-
418
- assert_equal(1, method.call_trees.callers.length)
419
- call_tree = method.call_trees.callers[0]
420
- assert_equal('Integer#times', call_tree.parent.target.full_name)
421
-
422
- assert_equal(0, method.call_trees.callees.length)
423
- elsif Gem::Version.new(RUBY_VERSION) < Gem::Version.new('3.4')
424
- assert_equal(9, methods.length)
425
-
426
- # Method 0
427
- method = methods[0]
428
- assert_equal('RecursiveTest#test_cycle', method.full_name)
429
- assert_equal(1, method.called)
430
- refute(method.recursive?)
431
- assert_in_delta(5, method.total_time, 0.1 * delta_multiplier)
432
- assert_in_delta(0, method.self_time, 0.01 * delta_multiplier)
433
- assert_in_delta(0, method.wait_time, 0.01 * delta_multiplier)
434
- assert_in_delta(5, method.children_time, 0.1 * delta_multiplier)
435
-
436
- assert_equal(0, method.call_trees.callers.length)
437
-
438
- assert_equal(1, method.call_trees.callees.length)
439
- call_tree = method.call_trees.callees[0]
440
- assert_equal('SimpleRecursion#render', call_tree.target.full_name)
441
-
442
- # Method 1
443
- method = methods[1]
444
- assert_equal('SimpleRecursion#render', method.full_name)
445
- assert_equal(1, method.called)
446
- refute(method.recursive?)
447
- assert_in_delta(5, method.total_time, 0.1 * delta_multiplier)
448
- assert_in_delta(0, method.self_time, 0.01 * delta_multiplier)
449
- assert_in_delta(0, method.wait_time, 0.01 * delta_multiplier)
450
- assert_in_delta(5, method.children_time, 0.1 * delta_multiplier)
451
-
452
- assert_equal(1, method.call_trees.callers.length)
453
- call_tree = method.call_trees.callers[0]
454
- assert_equal('RecursiveTest#test_cycle', call_tree.parent.target.full_name)
455
-
456
- assert_equal(1, method.call_trees.callees.length)
457
- call_tree = method.call_trees.callees[0]
458
- assert_equal('Integer#times', call_tree.target.full_name)
459
-
460
- # Method 2
461
- method = methods[2]
462
- assert_equal('Integer#times', method.full_name)
463
- assert_equal(2, method.called)
464
- assert(method.recursive?)
465
- assert_in_delta(5, method.total_time, 0.1 * delta_multiplier)
466
- assert_in_delta(0, method.self_time, 0.1 * delta_multiplier)
467
- assert_in_delta(0, method.wait_time, 0.1 * delta_multiplier)
468
- assert_in_delta(5, method.children_time, 0.1 * delta_multiplier)
469
-
470
- assert_equal(2, method.call_trees.callers.length)
471
- call_tree = method.call_trees.callers[0]
472
- assert_equal('SimpleRecursion#render', call_tree.parent.target.full_name)
473
-
474
- call_tree = method.call_trees.callers[1]
475
- assert_equal('SimpleRecursion#render_partial', call_tree.parent.target.full_name)
476
-
477
- assert_equal(5, method.call_trees.callees.length)
478
-
479
- call_tree = method.call_trees.callees[0]
480
- assert_equal('Kernel#block_given?', call_tree.target.full_name)
481
- assert_in_delta(0, call_tree.total_time)
482
- assert_in_delta(0, call_tree.wait_time)
483
- assert_in_delta(0, call_tree.self_time)
484
- assert_in_delta(0, call_tree.children_time)
485
-
486
- call_tree = method.call_trees.callees[1]
487
- assert_equal('Integer#<', call_tree.target.full_name)
488
- assert_in_delta(0, call_tree.total_time)
489
- assert_in_delta(0, call_tree.wait_time)
490
- assert_in_delta(0, call_tree.self_time)
491
- assert_in_delta(0, call_tree.children_time)
492
-
493
- call_tree = method.call_trees.callees[2]
494
- assert_equal('SimpleRecursion#render_partial', call_tree.target.full_name)
495
- assert_in_delta(7.0, call_tree.total_time, 0.1 * delta_multiplier)
496
- assert_in_delta(0, call_tree.wait_time)
497
- assert_in_delta(0, call_tree.self_time)
498
- assert_in_delta(7.0, call_tree.children_time, 0.1 * delta_multiplier)
499
-
500
- call_tree = method.call_trees.callees[3]
501
- assert_equal('Integer#succ', call_tree.target.full_name)
502
- assert_in_delta(0, call_tree.total_time)
503
- assert_in_delta(0, call_tree.wait_time)
504
- assert_in_delta(0, call_tree.self_time)
505
- assert_in_delta(0, call_tree.children_time)
506
-
507
- call_tree = method.call_trees.callees[4]
508
- assert_equal('Integer#+', call_tree.target.full_name)
509
- assert_in_delta(0, call_tree.total_time)
510
- assert_in_delta(0, call_tree.wait_time)
511
- assert_in_delta(0, call_tree.self_time)
512
- assert_in_delta(0, call_tree.children_time)
513
-
514
- # Method 3
515
- method = methods[3]
516
- assert_equal('SimpleRecursion#render_partial', method.full_name)
517
- assert_equal(5, method.called)
518
- assert(method.recursive?)
519
- assert_in_delta(5, method.total_time, 0.1 * delta_multiplier)
520
- assert_in_delta(0, method.self_time, 0.1 * delta_multiplier)
521
- assert_in_delta(0, method.wait_time, 0.01 * delta_multiplier)
522
- assert_in_delta(5, method.children_time, 0.1 * delta_multiplier)
523
-
524
- assert_equal(2, method.call_trees.callers.length)
525
- call_tree = method.call_trees.callers[0]
526
- assert_equal('Integer#times', call_tree.parent.target.full_name)
527
-
528
- call_tree = method.call_trees.callers[1]
529
- assert_equal('SimpleRecursion#render_partial', call_tree.parent.target.full_name)
530
-
531
- assert_equal(3, method.call_trees.callees.length)
532
- call_tree = method.call_trees.callees[0]
533
- assert_equal('Kernel#sleep', call_tree.target.full_name)
534
-
535
- call_tree = method.call_trees.callees[1]
536
- assert_equal('SimpleRecursion#render_partial', call_tree.target.full_name)
537
-
538
- call_tree = method.call_trees.callees[2]
539
- assert_equal('Integer#times', call_tree.target.full_name)
540
-
541
- # Method 4
542
- method = methods[4]
543
- assert_equal('Kernel#sleep', method.full_name)
544
- assert_equal(5, method.called)
545
- refute(method.recursive?)
546
- assert_in_delta(5, method.total_time, 0.1 * delta_multiplier)
547
- assert_in_delta(5, method.self_time, 0.1 * delta_multiplier)
548
- assert_in_delta(0, method.wait_time, 0.01 * delta_multiplier)
549
- assert_in_delta(0, method.children_time, 0.01 * delta_multiplier)
550
-
551
- assert_equal(1, method.call_trees.callers.length)
552
- call_tree = method.call_trees.callers[0]
553
- assert_equal('SimpleRecursion#render_partial', call_tree.parent.target.full_name)
554
-
555
- assert_equal(0, method.call_trees.callees.length)
556
-
557
- # Method 5
558
- method = methods[5]
559
- assert_equal('Kernel#block_given?', method.full_name)
560
- assert_equal(2, method.called)
561
- refute(method.recursive?)
562
- assert_in_delta(0, method.total_time, 0.1 * delta_multiplier)
563
- assert_in_delta(0, method.self_time, 0.1 * delta_multiplier)
564
- assert_in_delta(0, method.wait_time, 0.01 * delta_multiplier)
565
- assert_in_delta(0, method.children_time, 0.01 * delta_multiplier)
566
-
567
- assert_equal(1, method.call_trees.callers.length)
568
- call_tree = method.call_trees.callers[0]
569
- assert_equal('Integer#times', call_tree.parent.target.full_name)
570
-
571
- assert_equal(0, method.call_trees.callees.length)
572
-
573
- # Method 6
574
- method = methods[6]
575
- assert_equal('Integer#succ', method.full_name)
576
- assert_equal(4, method.called)
577
- refute(method.recursive?)
578
- assert_in_delta(0, method.total_time, 0.1 * delta_multiplier)
579
- assert_in_delta(0, method.self_time, 0.1 * delta_multiplier)
580
- assert_in_delta(0, method.wait_time, 0.01 * delta_multiplier)
581
- assert_in_delta(0, method.children_time, 0.01 * delta_multiplier)
582
-
583
- assert_equal(1, method.call_trees.callers.length)
584
- call_tree = method.call_trees.callers[0]
585
- assert_equal('Integer#times', call_tree.parent.target.full_name)
586
-
587
- assert_equal(0, method.call_trees.callees.length)
588
-
589
- # Method 7
590
- method = methods[7]
591
- assert_equal('Integer#<', method.full_name)
592
- assert_equal(6, method.called)
593
- refute(method.recursive?)
594
- assert_in_delta(0, method.total_time, 0.1 * delta_multiplier)
595
- assert_in_delta(0, method.self_time, 0.1 * delta_multiplier)
596
- assert_in_delta(0, method.wait_time, 0.01 * delta_multiplier)
597
- assert_in_delta(0, method.children_time, 0.01 * delta_multiplier)
598
-
599
- assert_equal(1, method.call_trees.callers.length)
600
- call_tree = method.call_trees.callers[0]
601
- assert_equal('Integer#times', call_tree.parent.target.full_name)
602
-
603
- assert_equal(0, method.call_trees.callees.length)
604
-
605
- # Method 8
606
- method = methods[8]
607
- assert_equal('Integer#+', method.full_name)
608
- assert_equal(2, method.called)
609
- refute(method.recursive?)
610
- assert_in_delta(0, method.total_time, 0.1 * delta_multiplier)
611
- assert_in_delta(0, method.self_time, 0.1 * delta_multiplier)
612
- assert_in_delta(0, method.wait_time, 0.01 * delta_multiplier)
613
- assert_in_delta(0, method.children_time, 0.01 * delta_multiplier)
614
-
615
- assert_equal(1, method.call_trees.callers.length)
616
- call_tree = method.call_trees.callers[0]
617
- assert_equal('Integer#times', call_tree.parent.target.full_name)
618
-
619
- assert_equal(0, method.call_trees.callees.length)
620
- else
621
- assert_equal(8, methods.length)
622
-
623
- # Method 0
624
- method = methods[0]
625
- assert_equal('RecursiveTest#test_cycle', method.full_name)
626
- assert_equal(1, method.called)
627
- refute(method.recursive?)
628
- assert_in_delta(5, method.total_time, 0.1 * delta_multiplier)
629
- assert_in_delta(0, method.self_time, 0.01 * delta_multiplier)
630
- assert_in_delta(0, method.wait_time, 0.01 * delta_multiplier)
631
- assert_in_delta(5, method.children_time, 0.1 * delta_multiplier)
632
-
633
- assert_equal(0, method.call_trees.callers.length)
634
-
635
- assert_equal(1, method.call_trees.callees.length)
636
- call_tree = method.call_trees.callees[0]
637
- assert_equal('SimpleRecursion#render', call_tree.target.full_name)
638
-
639
- # Method 1
640
- method = methods[1]
641
- assert_equal('SimpleRecursion#render', method.full_name)
642
- assert_equal(1, method.called)
643
- refute(method.recursive?)
644
- assert_in_delta(5, method.total_time, 0.1 * delta_multiplier)
645
- assert_in_delta(0, method.self_time, 0.01 * delta_multiplier)
646
- assert_in_delta(0, method.wait_time, 0.01 * delta_multiplier)
647
- assert_in_delta(5, method.children_time, 0.1 * delta_multiplier)
648
-
649
- assert_equal(1, method.call_trees.callers.length)
650
- call_tree = method.call_trees.callers[0]
651
- assert_equal('RecursiveTest#test_cycle', call_tree.parent.target.full_name)
652
-
653
- assert_equal(1, method.call_trees.callees.length)
654
- call_tree = method.call_trees.callees[0]
655
- assert_equal('Integer#times', call_tree.target.full_name)
656
-
657
- # Method 2
658
- method = methods[2]
659
- assert_equal('Integer#times', method.full_name)
660
- assert_equal(2, method.called)
661
- assert(method.recursive?)
662
- assert_in_delta(5, method.total_time, 0.1 * delta_multiplier)
663
- assert_in_delta(0, method.self_time, 0.1 * delta_multiplier)
664
- assert_in_delta(0, method.wait_time, 0.1 * delta_multiplier)
665
- assert_in_delta(5, method.children_time, 0.1 * delta_multiplier)
666
-
667
- assert_equal(2, method.call_trees.callers.length)
668
- call_tree = method.call_trees.callers[0]
669
- assert_equal('SimpleRecursion#render', call_tree.parent.target.full_name)
670
-
671
- call_tree = method.call_trees.callers[1]
672
- assert_equal('SimpleRecursion#render_partial', call_tree.parent.target.full_name)
673
-
674
- assert_equal(4, method.call_trees.callees.length)
675
-
676
- call_tree = method.call_trees.callees[0]
677
- assert_equal('Integer#<', call_tree.target.full_name)
678
- assert_in_delta(0, call_tree.total_time)
679
- assert_in_delta(0, call_tree.wait_time)
680
- assert_in_delta(0, call_tree.self_time)
681
- assert_in_delta(0, call_tree.children_time)
682
-
683
- call_tree = method.call_trees.callees[1]
684
- assert_equal('SimpleRecursion#render_partial', call_tree.target.full_name)
685
- assert_in_delta(7.0, call_tree.total_time, 0.1 * delta_multiplier)
686
- assert_in_delta(0, call_tree.wait_time)
687
- assert_in_delta(0, call_tree.self_time)
688
- assert_in_delta(7.0, call_tree.children_time, 0.1 * delta_multiplier)
689
-
690
- call_tree = method.call_trees.callees[2]
691
- assert_equal('Integer#succ', call_tree.target.full_name)
692
- assert_in_delta(0, call_tree.total_time)
693
- assert_in_delta(0, call_tree.wait_time)
694
- assert_in_delta(0, call_tree.self_time)
695
- assert_in_delta(0, call_tree.children_time)
696
-
697
- call_tree = method.call_trees.callees[3]
698
- assert_equal('Integer#+', call_tree.target.full_name)
699
- assert_in_delta(0, call_tree.total_time)
700
- assert_in_delta(0, call_tree.wait_time)
701
- assert_in_delta(0, call_tree.self_time)
702
- assert_in_delta(0, call_tree.children_time)
703
-
704
- # Method 3
705
- method = methods[3]
706
- assert_equal('SimpleRecursion#render_partial', method.full_name)
707
- assert_equal(5, method.called)
708
- assert(method.recursive?)
709
- assert_in_delta(5, method.total_time, 0.1 * delta_multiplier)
710
- assert_in_delta(0, method.self_time, 0.1 * delta_multiplier)
711
- assert_in_delta(0, method.wait_time, 0.01 * delta_multiplier)
712
- assert_in_delta(5, method.children_time, 0.1 * delta_multiplier)
713
-
714
- assert_equal(2, method.call_trees.callers.length)
715
- call_tree = method.call_trees.callers[0]
716
- assert_equal('Integer#times', call_tree.parent.target.full_name)
717
-
718
- call_tree = method.call_trees.callers[1]
719
- assert_equal('SimpleRecursion#render_partial', call_tree.parent.target.full_name)
720
-
721
- assert_equal(3, method.call_trees.callees.length)
722
- call_tree = method.call_trees.callees[0]
723
- assert_equal('Kernel#sleep', call_tree.target.full_name)
724
-
725
- call_tree = method.call_trees.callees[1]
726
- assert_equal('SimpleRecursion#render_partial', call_tree.target.full_name)
727
-
728
- call_tree = method.call_trees.callees[2]
729
- assert_equal('Integer#times', call_tree.target.full_name)
730
-
731
- # Method 4
732
- method = methods[4]
733
- assert_equal('Kernel#sleep', method.full_name)
734
- assert_equal(5, method.called)
735
- refute(method.recursive?)
736
- assert_in_delta(5, method.total_time, 0.1 * delta_multiplier)
737
- assert_in_delta(5, method.self_time, 0.1 * delta_multiplier)
738
- assert_in_delta(0, method.wait_time, 0.01 * delta_multiplier)
739
- assert_in_delta(0, method.children_time, 0.01 * delta_multiplier)
740
-
741
- assert_equal(1, method.call_trees.callers.length)
742
- call_tree = method.call_trees.callers[0]
743
- assert_equal('SimpleRecursion#render_partial', call_tree.parent.target.full_name)
744
-
745
- assert_equal(0, method.call_trees.callees.length)
746
-
747
- # Method 5
748
- method = methods[5]
749
- assert_equal('Integer#succ', method.full_name)
750
- assert_equal(4, method.called)
751
- refute(method.recursive?)
752
- assert_in_delta(0, method.total_time, 0.1 * delta_multiplier)
753
- assert_in_delta(0, method.self_time, 0.1 * delta_multiplier)
754
- assert_in_delta(0, method.wait_time, 0.01 * delta_multiplier)
755
- assert_in_delta(0, method.children_time, 0.01 * delta_multiplier)
756
-
757
- assert_equal(1, method.call_trees.callers.length)
758
- call_tree = method.call_trees.callers[0]
759
- assert_equal('Integer#times', call_tree.parent.target.full_name)
760
-
761
- assert_equal(0, method.call_trees.callees.length)
762
-
763
- # Method 6
764
- method = methods[6]
765
- assert_equal('Integer#<', method.full_name)
766
- assert_equal(6, method.called)
767
- refute(method.recursive?)
768
- assert_in_delta(0, method.total_time, 0.1 * delta_multiplier)
769
- assert_in_delta(0, method.self_time, 0.1 * delta_multiplier)
770
- assert_in_delta(0, method.wait_time, 0.01 * delta_multiplier)
771
- assert_in_delta(0, method.children_time, 0.01 * delta_multiplier)
772
-
773
- assert_equal(1, method.call_trees.callers.length)
774
- call_tree = method.call_trees.callers[0]
775
- assert_equal('Integer#times', call_tree.parent.target.full_name)
776
-
777
- assert_equal(0, method.call_trees.callees.length)
778
-
779
- # Method 7
780
- method = methods[7]
781
- assert_equal('Integer#+', method.full_name)
782
- assert_equal(2, method.called)
783
- refute(method.recursive?)
784
- assert_in_delta(0, method.total_time, 0.1 * delta_multiplier)
785
- assert_in_delta(0, method.self_time, 0.1 * delta_multiplier)
786
- assert_in_delta(0, method.wait_time, 0.01 * delta_multiplier)
787
- assert_in_delta(0, method.children_time, 0.01 * delta_multiplier)
788
-
789
- assert_equal(1, method.call_trees.callers.length)
790
- call_tree = method.call_trees.callers[0]
791
- assert_equal('Integer#times', call_tree.parent.target.full_name)
792
-
793
- assert_equal(0, method.call_trees.callees.length)
794
- end
795
- end
796
- end