From 8cc3479fb7d2fb0d3ff02ccf08ca27abb8bc51da Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Sat, 17 Nov 2012 22:59:06 -0600 Subject: [PATCH] tests: add profiling support `rake profile` will run ruby-prof on the test suite if the ruby-prof gem is installed. --- Library/Homebrew/test/.gitignore | 1 + Library/Homebrew/test/Rakefile | 20 ++++++++++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/Library/Homebrew/test/.gitignore b/Library/Homebrew/test/.gitignore index 3b6ee585f4..f5df6eb3ab 100644 --- a/Library/Homebrew/test/.gitignore +++ b/Library/Homebrew/test/.gitignore @@ -1 +1,2 @@ /coverage +/prof diff --git a/Library/Homebrew/test/Rakefile b/Library/Homebrew/test/Rakefile index c92b196404..1a9b26f920 100644 --- a/Library/Homebrew/test/Rakefile +++ b/Library/Homebrew/test/Rakefile @@ -3,14 +3,13 @@ require 'rake/testtask' require 'pathname' TEST_DIRECTORY = Pathname.new(File.expand_path(__FILE__)).parent.realpath - TEST_FILES = FileList["#{TEST_DIRECTORY}/test_*.rb"] -Dir.chdir TEST_DIRECTORY +Dir.chdir(TEST_DIRECTORY) task :default => :test -Rake::TestTask.new :test do |t| +Rake::TestTask.new(:test) do |t| t.libs << Dir.pwd t.test_files = TEST_FILES end @@ -39,5 +38,18 @@ begin t.output_dir = TEST_DIRECTORY+'coverage' end rescue LoadError - nil +end + +begin + require 'rubygems' + require 'ruby-prof/task' + + RubyProf::ProfileTask.new do |t| + t.libs << Dir.pwd + t.test_files = TEST_FILES + t.output_dir = TEST_DIRECTORY+'prof' + t.printer = :graph_html + t.min_percent = 2 + end +rescue LoadError end