ruby-dtrace 0.0.6 → 0.2.8
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.
- data/History.txt +21 -0
- data/Manifest.txt +86 -19
- data/README.txt +48 -6
- data/Rakefile +61 -20
- data/examples/scsi.rb +1 -1
- data/ext/dof/Makefile +154 -0
- data/ext/dof/constants.c +57 -0
- data/ext/dof/dof.h +56 -0
- data/ext/dof/dof_api.c +58 -0
- data/ext/dof/dof_helper.c +82 -0
- data/ext/dof/extconf.rb +4 -0
- data/ext/dof/file.c +90 -0
- data/ext/dof/generator.c +9 -0
- data/ext/dof/header.c +79 -0
- data/ext/dof/mkmf.log +10 -0
- data/ext/dof/parser.c +415 -0
- data/ext/dof/parser.h +10 -0
- data/ext/dof/section.c +312 -0
- data/ext/dtrace_aggdata.c +2 -2
- data/ext/dtrace_api.c +46 -34
- data/ext/dtrace_api.h +31 -7
- data/ext/dtrace_bufdata.c +3 -3
- data/ext/dtrace_hdl.c +66 -3
- data/ext/dtrace_probedata.c +4 -4
- data/ext/{dtrace_probe.c → dtrace_probedesc.c} +7 -7
- data/ext/extconf.rb +25 -0
- data/ext/i386-darwin/dtrace_probe.c +278 -0
- data/ext/i386-solaris/dtrace_probe.c +225 -0
- data/ext/stubs.txt +78 -0
- data/lib/dtrace.rb +34 -13
- data/lib/dtrace/aggregate.rb +40 -0
- data/lib/dtrace/aggregateset.rb +19 -0
- data/lib/dtrace/consumer.rb +174 -0
- data/lib/dtrace/data.rb +82 -0
- data/lib/dtrace/dof.rb +8 -0
- data/lib/dtrace/dof/file.rb +64 -0
- data/lib/dtrace/dof/section.rb +75 -0
- data/lib/dtrace/dof/section/strtab.rb +28 -0
- data/lib/{dtraceprintfrecord.rb → dtrace/printfrecord.rb} +4 -2
- data/lib/dtrace/probe.rb +3 -6
- data/lib/dtrace/probedata.rb +23 -0
- data/lib/dtrace/probedesc.rb +15 -0
- data/lib/dtrace/provider.rb +190 -169
- data/lib/dtrace/provider/klass.rb +33 -0
- data/lib/dtrace/provider/probedef.rb +24 -0
- data/lib/{dtracerecord.rb → dtrace/record.rb} +4 -2
- data/lib/{dtracestackrecord.rb → dtrace/stackrecord.rb} +10 -8
- data/lib/dtrace/version.rb +9 -0
- data/lib/dtraceconsumer.rb +3 -167
- data/plugin/dtrace/lib/dtracer.rb +4 -4
- data/test/apple-dof +0 -0
- data/test/disabled_probe_effect.txt +19 -0
- data/test/dof +0 -0
- data/test/dof2 +0 -0
- data/test/test_disabled_probe_effect.rb +56 -0
- data/test/test_dof_generator.rb +142 -0
- data/test/test_dof_helper.rb +106 -0
- data/test/test_dof_parser.rb +27 -0
- data/test/test_dof_providers.rb +278 -0
- data/test/test_dof_strtabs.rb +98 -0
- data/test/test_dtrace.rb +67 -1
- data/test/test_dtrace_aggregates.rb +5 -5
- data/test/test_dtrace_drops_errors.rb +5 -5
- data/test/test_dtrace_probe.rb +385 -0
- data/test/test_dtrace_probes.rb +414 -0
- data/test/test_dtrace_processes.rb +2 -2
- data/test/test_dtrace_profile.rb +12 -12
- data/test/test_dtrace_provider.rb +138 -0
- data/test/test_dtrace_repeat.rb +1 -1
- data/test/test_dtrace_rubyprobe.rb +3 -1
- data/test/test_dtrace_typefilter.rb +9 -9
- data/test/test_legacy_consumer.rb +56 -0
- metadata +112 -71
- data/lib/dtrace/provider/osx.rb +0 -25
- data/lib/dtrace/provider/solaris.rb +0 -29
- data/lib/dtraceaggregate.rb +0 -37
- data/lib/dtraceaggregateset.rb +0 -17
- data/lib/dtracedata.rb +0 -80
- data/lib/dtraceprobe.rb +0 -13
- data/lib/dtraceprobedata.rb +0 -21
- data/test/test_dynusdt.rb +0 -135
@@ -0,0 +1,414 @@
|
|
1
|
+
#
|
2
|
+
# Ruby-Dtrace
|
3
|
+
# (c) 2008 Chris Andrews <chris@nodnol.org>
|
4
|
+
#
|
5
|
+
|
6
|
+
require 'dtrace'
|
7
|
+
require 'dtrace/provider'
|
8
|
+
require 'test/unit'
|
9
|
+
|
10
|
+
class TestDtraceProbes < Test::Unit::TestCase
|
11
|
+
|
12
|
+
def test_is_not_enabled
|
13
|
+
Dtrace::Provider.create :foo0 do |p|
|
14
|
+
p.probe :bar
|
15
|
+
end
|
16
|
+
|
17
|
+
data = 'not fired'
|
18
|
+
Dtrace::Probe::Foo0.bar do |p|
|
19
|
+
data = 'fired'
|
20
|
+
p.fire
|
21
|
+
end
|
22
|
+
|
23
|
+
assert_equal 'not fired', data
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_probe_no_args
|
27
|
+
Dtrace::Provider.create :foo1 do |p|
|
28
|
+
p.probe :bar
|
29
|
+
end
|
30
|
+
|
31
|
+
t = Dtrace.new
|
32
|
+
t.setopt("bufsize", "4m")
|
33
|
+
|
34
|
+
progtext = <<EOD
|
35
|
+
foo1*:ruby:test_probe_no_args:bar
|
36
|
+
{
|
37
|
+
trace("fired");
|
38
|
+
}
|
39
|
+
EOD
|
40
|
+
|
41
|
+
prog = t.compile progtext
|
42
|
+
prog.execute
|
43
|
+
t.go
|
44
|
+
c = Dtrace::Consumer.new(t)
|
45
|
+
|
46
|
+
Dtrace::Probe::Foo1.bar do |p|
|
47
|
+
p.fire
|
48
|
+
end
|
49
|
+
|
50
|
+
data = []
|
51
|
+
c.consume_once do |d|
|
52
|
+
data << d
|
53
|
+
end
|
54
|
+
|
55
|
+
assert_equal 1, data.length
|
56
|
+
assert_equal 'fired', data[0].data[0].value
|
57
|
+
|
58
|
+
end
|
59
|
+
|
60
|
+
def test_probe_one_int_arg
|
61
|
+
Dtrace::Provider.create :foo2 do |p|
|
62
|
+
p.probe :bar, :integer
|
63
|
+
end
|
64
|
+
|
65
|
+
t = Dtrace.new
|
66
|
+
t.setopt("bufsize", "4m")
|
67
|
+
|
68
|
+
progtext = <<EOD
|
69
|
+
foo2*:ruby:test_probe_one_int_arg:bar
|
70
|
+
{
|
71
|
+
trace(arg0);
|
72
|
+
}
|
73
|
+
EOD
|
74
|
+
|
75
|
+
prog = t.compile progtext
|
76
|
+
prog.execute
|
77
|
+
t.go
|
78
|
+
c = Dtrace::Consumer.new(t)
|
79
|
+
|
80
|
+
Dtrace::Probe::Foo2.bar do |p|
|
81
|
+
p.fire(42)
|
82
|
+
end
|
83
|
+
|
84
|
+
data = []
|
85
|
+
c.consume_once do |d|
|
86
|
+
data << d
|
87
|
+
end
|
88
|
+
|
89
|
+
assert_equal 1, data.length
|
90
|
+
assert_equal 42, data[0].data[0].value
|
91
|
+
|
92
|
+
end
|
93
|
+
|
94
|
+
def test_multiple_probes_w_args
|
95
|
+
Dtrace::Provider.create :foo3 do |p|
|
96
|
+
p.probe :bar, :integer
|
97
|
+
p.probe :baz, :string
|
98
|
+
end
|
99
|
+
|
100
|
+
t = Dtrace.new
|
101
|
+
t.setopt("bufsize", "4m")
|
102
|
+
|
103
|
+
progtext = <<EOD
|
104
|
+
foo3*:ruby:*:bar
|
105
|
+
{
|
106
|
+
trace(arg0);
|
107
|
+
}
|
108
|
+
|
109
|
+
foo3*:ruby:*:baz
|
110
|
+
{
|
111
|
+
trace(copyinstr(arg0));
|
112
|
+
}
|
113
|
+
EOD
|
114
|
+
|
115
|
+
prog = t.compile progtext
|
116
|
+
prog.execute
|
117
|
+
t.go
|
118
|
+
c = Dtrace::Consumer.new(t)
|
119
|
+
|
120
|
+
Dtrace::Probe::Foo3.bar do |p|
|
121
|
+
p.fire(42)
|
122
|
+
end
|
123
|
+
|
124
|
+
Dtrace::Probe::Foo3.baz do |p|
|
125
|
+
p.fire('fired!')
|
126
|
+
end
|
127
|
+
|
128
|
+
data = []
|
129
|
+
c.consume_once do |d|
|
130
|
+
data << d
|
131
|
+
end
|
132
|
+
|
133
|
+
assert_equal 2, data.length
|
134
|
+
assert_equal 42, data[0].data[0].value
|
135
|
+
assert_equal 'fired!', data[1].data[0].value
|
136
|
+
|
137
|
+
end
|
138
|
+
|
139
|
+
def test_multiple_probes_w_multiple_args
|
140
|
+
Dtrace::Provider.create :foo4 do |p|
|
141
|
+
p.probe :bar, :integer, :integer
|
142
|
+
p.probe :baz, :string, :string
|
143
|
+
end
|
144
|
+
|
145
|
+
t = Dtrace.new
|
146
|
+
t.setopt("bufsize", "4m")
|
147
|
+
|
148
|
+
progtext = <<EOD
|
149
|
+
foo4*:ruby:*:bar
|
150
|
+
{
|
151
|
+
trace(arg0);
|
152
|
+
trace(arg1);
|
153
|
+
}
|
154
|
+
|
155
|
+
foo4*:ruby:*:baz
|
156
|
+
{
|
157
|
+
trace(copyinstr(arg0));
|
158
|
+
trace(copyinstr(arg1));
|
159
|
+
}
|
160
|
+
EOD
|
161
|
+
|
162
|
+
prog = t.compile progtext
|
163
|
+
prog.execute
|
164
|
+
t.go
|
165
|
+
c = Dtrace::Consumer.new(t)
|
166
|
+
|
167
|
+
Dtrace::Probe::Foo4.bar do |p|
|
168
|
+
p.fire(42, 27)
|
169
|
+
end
|
170
|
+
|
171
|
+
Dtrace::Probe::Foo4.baz do |p|
|
172
|
+
p.fire('fired!', 'again')
|
173
|
+
end
|
174
|
+
|
175
|
+
data = []
|
176
|
+
c.consume_once do |d|
|
177
|
+
data << d
|
178
|
+
end
|
179
|
+
|
180
|
+
assert_equal 2, data.length
|
181
|
+
assert_equal 42, data[0].data[0].value
|
182
|
+
assert_equal 27, data[0].data[1].value
|
183
|
+
assert_equal 'fired!', data[1].data[0].value
|
184
|
+
assert_equal 'again', data[1].data[1].value
|
185
|
+
|
186
|
+
end
|
187
|
+
|
188
|
+
def test_all_argcs
|
189
|
+
Dtrace::Provider.create :foo5 do |p|
|
190
|
+
p.probe :bar1, :integer
|
191
|
+
p.probe :bar2, :integer, :integer
|
192
|
+
p.probe :bar3, :integer, :integer, :integer
|
193
|
+
p.probe :bar4, :integer, :integer, :integer, :integer
|
194
|
+
p.probe :bar5, :integer, :integer, :integer, :integer,
|
195
|
+
:integer
|
196
|
+
p.probe :bar6, :integer, :integer, :integer, :integer,
|
197
|
+
:integer, :integer
|
198
|
+
p.probe :bar7, :integer, :integer, :integer, :integer,
|
199
|
+
:integer, :integer, :integer
|
200
|
+
p.probe :bar8, :integer, :integer, :integer, :integer,
|
201
|
+
:integer, :integer, :integer, :integer
|
202
|
+
end
|
203
|
+
|
204
|
+
t = Dtrace.new
|
205
|
+
t.setopt("bufsize", "4m")
|
206
|
+
|
207
|
+
progtext = <<EOD
|
208
|
+
foo5*:ruby:*:bar1
|
209
|
+
{
|
210
|
+
trace(arg0);
|
211
|
+
|
212
|
+
}
|
213
|
+
|
214
|
+
foo5*:ruby:*:bar2
|
215
|
+
{
|
216
|
+
trace(arg0);
|
217
|
+
trace(arg1);
|
218
|
+
|
219
|
+
}
|
220
|
+
|
221
|
+
foo5*:ruby:*:bar3
|
222
|
+
{
|
223
|
+
trace(arg0);
|
224
|
+
trace(arg1);
|
225
|
+
trace(arg2);
|
226
|
+
|
227
|
+
}
|
228
|
+
|
229
|
+
foo5*:ruby:*:bar4
|
230
|
+
{
|
231
|
+
trace(arg0);
|
232
|
+
trace(arg1);
|
233
|
+
trace(arg2);
|
234
|
+
trace(arg3);
|
235
|
+
|
236
|
+
}
|
237
|
+
|
238
|
+
foo5*:ruby:*:bar5
|
239
|
+
{
|
240
|
+
trace(arg0);
|
241
|
+
trace(arg1);
|
242
|
+
trace(arg2);
|
243
|
+
trace(arg3);
|
244
|
+
trace(arg4);
|
245
|
+
}
|
246
|
+
|
247
|
+
foo5*:ruby:*:bar6
|
248
|
+
{
|
249
|
+
trace(arg0);
|
250
|
+
trace(arg1);
|
251
|
+
trace(arg2);
|
252
|
+
trace(arg3);
|
253
|
+
trace(arg4);
|
254
|
+
trace(arg5);
|
255
|
+
}
|
256
|
+
|
257
|
+
foo5*:ruby:*:bar7
|
258
|
+
{
|
259
|
+
trace(arg0);
|
260
|
+
trace(arg1);
|
261
|
+
trace(arg2);
|
262
|
+
trace(arg3);
|
263
|
+
trace(arg4);
|
264
|
+
trace(arg5);
|
265
|
+
trace(arg6);
|
266
|
+
}
|
267
|
+
|
268
|
+
foo5*:ruby:*:bar8
|
269
|
+
{
|
270
|
+
trace(arg0);
|
271
|
+
trace(arg1);
|
272
|
+
trace(arg2);
|
273
|
+
trace(arg3);
|
274
|
+
trace(arg4);
|
275
|
+
trace(arg5);
|
276
|
+
trace(arg6);
|
277
|
+
trace(arg7);
|
278
|
+
}
|
279
|
+
EOD
|
280
|
+
|
281
|
+
prog = t.compile progtext
|
282
|
+
prog.execute
|
283
|
+
t.go
|
284
|
+
c = Dtrace::Consumer.new(t)
|
285
|
+
|
286
|
+
Dtrace::Probe::Foo5.bar1 do |p|
|
287
|
+
p.fire(11)
|
288
|
+
end
|
289
|
+
Dtrace::Probe::Foo5.bar2 do |p|
|
290
|
+
p.fire(21, 22)
|
291
|
+
end
|
292
|
+
Dtrace::Probe::Foo5.bar3 do |p|
|
293
|
+
p.fire(31, 32, 33)
|
294
|
+
end
|
295
|
+
Dtrace::Probe::Foo5.bar4 do |p|
|
296
|
+
p.fire(41, 42, 43, 44)
|
297
|
+
end
|
298
|
+
Dtrace::Probe::Foo5.bar5 do |p|
|
299
|
+
p.fire(51, 52, 53, 54, 55)
|
300
|
+
end
|
301
|
+
Dtrace::Probe::Foo5.bar6 do |p|
|
302
|
+
p.fire(61, 62, 63, 64, 65, 66)
|
303
|
+
end
|
304
|
+
Dtrace::Probe::Foo5.bar7 do |p|
|
305
|
+
p.fire(71, 72, 73, 74, 75, 76, 77)
|
306
|
+
end
|
307
|
+
Dtrace::Probe::Foo5.bar8 do |p|
|
308
|
+
p.fire(81, 82, 83, 84, 85, 86, 87, 88)
|
309
|
+
end
|
310
|
+
|
311
|
+
data = []
|
312
|
+
c.consume_once do |d|
|
313
|
+
data << d
|
314
|
+
end
|
315
|
+
|
316
|
+
assert_equal 8, data.length
|
317
|
+
|
318
|
+
assert_equal 11, data[0].data[0].value
|
319
|
+
|
320
|
+
assert_equal 21, data[1].data[0].value
|
321
|
+
assert_equal 22, data[1].data[1].value
|
322
|
+
|
323
|
+
assert_equal 31, data[2].data[0].value
|
324
|
+
assert_equal 32, data[2].data[1].value
|
325
|
+
assert_equal 33, data[2].data[2].value
|
326
|
+
|
327
|
+
assert_equal 41, data[3].data[0].value
|
328
|
+
assert_equal 42, data[3].data[1].value
|
329
|
+
assert_equal 43, data[3].data[2].value
|
330
|
+
assert_equal 44, data[3].data[3].value
|
331
|
+
|
332
|
+
assert_equal 51, data[4].data[0].value
|
333
|
+
assert_equal 52, data[4].data[1].value
|
334
|
+
assert_equal 53, data[4].data[2].value
|
335
|
+
assert_equal 54, data[4].data[3].value
|
336
|
+
assert_equal 55, data[4].data[4].value
|
337
|
+
|
338
|
+
assert_equal 61, data[5].data[0].value
|
339
|
+
assert_equal 62, data[5].data[1].value
|
340
|
+
assert_equal 63, data[5].data[2].value
|
341
|
+
assert_equal 64, data[5].data[3].value
|
342
|
+
assert_equal 65, data[5].data[4].value
|
343
|
+
assert_equal 66, data[5].data[5].value
|
344
|
+
|
345
|
+
assert_equal 71, data[6].data[0].value
|
346
|
+
assert_equal 72, data[6].data[1].value
|
347
|
+
assert_equal 73, data[6].data[2].value
|
348
|
+
assert_equal 74, data[6].data[3].value
|
349
|
+
assert_equal 75, data[6].data[4].value
|
350
|
+
assert_equal 76, data[6].data[5].value
|
351
|
+
assert_equal 77, data[6].data[6].value
|
352
|
+
|
353
|
+
assert_equal 81, data[7].data[0].value
|
354
|
+
assert_equal 82, data[7].data[1].value
|
355
|
+
assert_equal 83, data[7].data[2].value
|
356
|
+
assert_equal 84, data[7].data[3].value
|
357
|
+
assert_equal 85, data[7].data[4].value
|
358
|
+
assert_equal 86, data[7].data[5].value
|
359
|
+
assert_equal 87, data[7].data[6].value
|
360
|
+
assert_equal 88, data[7].data[7].value
|
361
|
+
|
362
|
+
end
|
363
|
+
|
364
|
+
def test_all_eight_args_chars
|
365
|
+
Dtrace::Provider.create :foo6 do |p|
|
366
|
+
p.probe :bar, :string, :string, :string, :string,
|
367
|
+
:string, :string, :string, :string
|
368
|
+
end
|
369
|
+
|
370
|
+
t = Dtrace.new
|
371
|
+
t.setopt("bufsize", "4m")
|
372
|
+
|
373
|
+
progtext = <<EOD
|
374
|
+
foo6*:ruby:*:bar
|
375
|
+
{
|
376
|
+
trace(copyinstr(arg0));
|
377
|
+
trace(copyinstr(arg1));
|
378
|
+
trace(copyinstr(arg2));
|
379
|
+
trace(copyinstr(arg3));
|
380
|
+
trace(copyinstr(arg4));
|
381
|
+
trace(copyinstr(arg5));
|
382
|
+
trace(copyinstr(arg6));
|
383
|
+
trace(copyinstr(arg7));
|
384
|
+
}
|
385
|
+
EOD
|
386
|
+
|
387
|
+
prog = t.compile progtext
|
388
|
+
prog.execute
|
389
|
+
t.go
|
390
|
+
c = Dtrace::Consumer.new(t)
|
391
|
+
|
392
|
+
Dtrace::Probe::Foo6.bar do |p|
|
393
|
+
p.fire('one', 'two', 'three', 'four',
|
394
|
+
'five', 'six', 'seven', 'eight')
|
395
|
+
end
|
396
|
+
|
397
|
+
data = []
|
398
|
+
c.consume_once do |d|
|
399
|
+
data << d
|
400
|
+
end
|
401
|
+
|
402
|
+
assert_equal 1, data.length
|
403
|
+
assert_equal 'one', data[0].data[0].value
|
404
|
+
assert_equal 'two', data[0].data[1].value
|
405
|
+
assert_equal 'three', data[0].data[2].value
|
406
|
+
assert_equal 'four', data[0].data[3].value
|
407
|
+
assert_equal 'five', data[0].data[4].value
|
408
|
+
assert_equal 'six', data[0].data[5].value
|
409
|
+
assert_equal 'seven', data[0].data[6].value
|
410
|
+
assert_equal 'eight', data[0].data[7].value
|
411
|
+
|
412
|
+
end
|
413
|
+
|
414
|
+
end
|
@@ -33,7 +33,7 @@ EOD
|
|
33
33
|
p.continue
|
34
34
|
|
35
35
|
i = 0
|
36
|
-
c =
|
36
|
+
c = Dtrace::Consumer.new(t)
|
37
37
|
c.consume do |d|
|
38
38
|
assert d
|
39
39
|
assert_equal "pid#{d.data[0].value}", d.probe.provider
|
@@ -72,7 +72,7 @@ EOD
|
|
72
72
|
sleep 3
|
73
73
|
|
74
74
|
i = 0
|
75
|
-
c =
|
75
|
+
c = Dtrace::Consumer.new(t)
|
76
76
|
c.consume_once do |d|
|
77
77
|
assert d
|
78
78
|
assert_equal "pid#{pid}", d.probe.provider
|
data/test/test_dtrace_profile.rb
CHANGED
@@ -22,7 +22,7 @@ class TestDtraceProfile < Test::Unit::TestCase
|
|
22
22
|
t.go
|
23
23
|
sleep 2
|
24
24
|
|
25
|
-
c =
|
25
|
+
c = Dtrace::Consumer.new(t)
|
26
26
|
assert c
|
27
27
|
|
28
28
|
i = 0
|
@@ -65,7 +65,7 @@ EOD
|
|
65
65
|
t.go
|
66
66
|
sleep 2
|
67
67
|
|
68
|
-
c =
|
68
|
+
c = Dtrace::Consumer.new(t)
|
69
69
|
|
70
70
|
i = 0
|
71
71
|
c.consume do |d|
|
@@ -74,7 +74,7 @@ EOD
|
|
74
74
|
assert_equal "profile:::profile-10", d.probe.to_s
|
75
75
|
|
76
76
|
d.data.each do |r|
|
77
|
-
assert_equal
|
77
|
+
assert_equal Dtrace::AggregateSet, r.class
|
78
78
|
r.data.each do |a|
|
79
79
|
assert_not_nil a.value
|
80
80
|
assert_not_nil a.tuple
|
@@ -107,7 +107,7 @@ EOD
|
|
107
107
|
t.go
|
108
108
|
sleep 2
|
109
109
|
|
110
|
-
c =
|
110
|
+
c = Dtrace::Consumer.new(t)
|
111
111
|
|
112
112
|
i = 0
|
113
113
|
c.consume do |d|
|
@@ -146,7 +146,7 @@ EOD
|
|
146
146
|
sleep 2
|
147
147
|
|
148
148
|
i = 0
|
149
|
-
c =
|
149
|
+
c = Dtrace::Consumer.new(t)
|
150
150
|
c.consume_once do |d|
|
151
151
|
i = i + 1
|
152
152
|
assert d
|
@@ -154,7 +154,7 @@ EOD
|
|
154
154
|
assert_equal "dtrace:::END", d.probe.to_s
|
155
155
|
|
156
156
|
d.data.each do |r|
|
157
|
-
assert_equal
|
157
|
+
assert_equal Dtrace::AggregateSet, r.class
|
158
158
|
r.data.each do |a|
|
159
159
|
assert_not_nil a.value
|
160
160
|
assert_not_nil a.tuple
|
@@ -178,7 +178,7 @@ EOD
|
|
178
178
|
t.go
|
179
179
|
sleep 2
|
180
180
|
|
181
|
-
c =
|
181
|
+
c = Dtrace::Consumer.new(t)
|
182
182
|
i = 0
|
183
183
|
c.consume do |d|
|
184
184
|
assert d
|
@@ -186,8 +186,8 @@ EOD
|
|
186
186
|
assert_equal "profile:::profile-1", d.probe.to_s
|
187
187
|
|
188
188
|
assert_equal 2, d.data.length
|
189
|
-
assert_equal
|
190
|
-
assert_equal
|
189
|
+
assert_equal Dtrace::Record, d.data[0].class
|
190
|
+
assert_equal Dtrace::StackRecord, d.data[1].class
|
191
191
|
|
192
192
|
i = i + 1
|
193
193
|
if i > 10
|
@@ -210,7 +210,7 @@ EOD
|
|
210
210
|
t.go
|
211
211
|
sleep 2
|
212
212
|
|
213
|
-
c =
|
213
|
+
c = Dtrace::Consumer.new(t)
|
214
214
|
i = 0
|
215
215
|
c.consume do |d|
|
216
216
|
assert d
|
@@ -218,8 +218,8 @@ EOD
|
|
218
218
|
assert_equal "profile:::profile-1", d.probe.to_s
|
219
219
|
|
220
220
|
assert_equal 2, d.data.length
|
221
|
-
assert_equal
|
222
|
-
assert_equal
|
221
|
+
assert_equal Dtrace::Record, d.data[0].class
|
222
|
+
assert_equal Dtrace::StackRecord, d.data[1].class
|
223
223
|
|
224
224
|
i = i + 1
|
225
225
|
if i > 10
|