1require 'dtrace/helper'
2
3module DTrace
4  class TestGC < TestCase
5    %w{
6      gc-mark-begin
7      gc-mark-end
8      gc-sweep-begin
9      gc-sweep-end
10    }.each do |probe_name|
11      define_method(:"test_#{probe_name.gsub(/-/, '_')}") do
12	probe = "ruby$target:::#{probe_name} { printf(\"#{probe_name}\\n\"); }"
13
14	trap_probe(probe, ruby_program) { |_, _, saw|
15	  assert_operator saw.length, :>, 0
16	}
17
18      end
19    end
20
21    private
22    def ruby_program
23      "100000.times { Object.new }"
24    end
25  end
26end if defined?(DTrace::TestCase)
27