#!/usr/bin/env ruby # encoding: UTF-8 require File.expand_path('../test_helper', __FILE__) require_relative './measure_times' class CallTreeVisitorTest < TestCase def setup # Need to use wall time for this test due to the sleep calls RubyProf::measure_mode = RubyProf::WALL_TIME end def test_visit result = RubyProf.profile do RubyProf::C1.sleep_wait end visitor = RubyProf::CallTreeVisitor.new(result.threads.first.call_tree) method_names = Array.new visitor.visit do |call_tree, event| method_names << call_tree.target.full_name if event == :enter end assert_equal(3, method_names.length) assert_equal("CallTreeVisitorTest#test_visit", method_names[0]) assert_equal("#sleep_wait", method_names[1]) assert_equal("Kernel#sleep", method_names[2]) end end