aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYves Senn <yves.senn@gmail.com>2013-06-27 12:55:36 -0700
committerYves Senn <yves.senn@gmail.com>2013-06-27 12:55:36 -0700
commit0a55bd7c6bdc4c3022cec858e341f7561ec8554b (patch)
tree90dc22392fdcd324a9d50961577573abdb5bd53b
parent63d4894a58825e9d1fb520ec6ac663e4d8529596 (diff)
parentb47f8d035ec6a38a69eb5b3bdb1e27bb40e574c7 (diff)
downloadrails-0a55bd7c6bdc4c3022cec858e341f7561ec8554b.tar.gz
rails-0a55bd7c6bdc4c3022cec858e341f7561ec8554b.tar.bz2
rails-0a55bd7c6bdc4c3022cec858e341f7561ec8554b.zip
Merge pull request #9173 from senny/backport_perftest_fix
Backport rails/rails-perftest#2 to fix rake test:benchmark
-rw-r--r--activesupport/lib/active_support/testing/performance.rb2
-rw-r--r--activesupport/lib/active_support/testing/performance/jruby.rb2
-rw-r--r--activesupport/lib/active_support/testing/performance/rubinius.rb2
-rw-r--r--activesupport/lib/active_support/testing/performance/ruby.rb2
-rw-r--r--railties/CHANGELOG.md11
-rw-r--r--railties/lib/rails/commands/benchmarker.rb4
-rw-r--r--railties/lib/rails/commands/profiler.rb1
-rw-r--r--railties/lib/rails/test_unit/testing.rake7
8 files changed, 23 insertions, 8 deletions
diff --git a/activesupport/lib/active_support/testing/performance.rb b/activesupport/lib/active_support/testing/performance.rb
index dd23f8d82d..5b74e52953 100644
--- a/activesupport/lib/active_support/testing/performance.rb
+++ b/activesupport/lib/active_support/testing/performance.rb
@@ -23,7 +23,7 @@ module ActiveSupport
# each implementation should define metrics and freeze the defaults
DEFAULTS =
- if ARGV.include?('--benchmark') # HAX for rake test
+ if ENV["BENCHMARK_TESTS"]
{ :runs => 4,
:output => 'tmp/performance',
:benchmark => true }
diff --git a/activesupport/lib/active_support/testing/performance/jruby.rb b/activesupport/lib/active_support/testing/performance/jruby.rb
index b347539f13..af08f0e22d 100644
--- a/activesupport/lib/active_support/testing/performance/jruby.rb
+++ b/activesupport/lib/active_support/testing/performance/jruby.rb
@@ -6,7 +6,7 @@ module ActiveSupport
module Testing
module Performance
DEFAULTS.merge!(
- if ARGV.include?('--benchmark')
+ if ENV["BENCHMARK_TESTS"]
{:metrics => [:wall_time, :user_time, :memory, :gc_runs, :gc_time]}
else
{ :metrics => [:wall_time],
diff --git a/activesupport/lib/active_support/testing/performance/rubinius.rb b/activesupport/lib/active_support/testing/performance/rubinius.rb
index d9ebfbe352..baabd9cc44 100644
--- a/activesupport/lib/active_support/testing/performance/rubinius.rb
+++ b/activesupport/lib/active_support/testing/performance/rubinius.rb
@@ -4,7 +4,7 @@ module ActiveSupport
module Testing
module Performance
DEFAULTS.merge!(
- if ARGV.include?('--benchmark')
+ if ENV["BENCHMARK_TESTS"]
{:metrics => [:wall_time, :memory, :objects, :gc_runs, :gc_time]}
else
{ :metrics => [:wall_time],
diff --git a/activesupport/lib/active_support/testing/performance/ruby.rb b/activesupport/lib/active_support/testing/performance/ruby.rb
index 50c4852d4c..5aaed2bbe7 100644
--- a/activesupport/lib/active_support/testing/performance/ruby.rb
+++ b/activesupport/lib/active_support/testing/performance/ruby.rb
@@ -9,7 +9,7 @@ module ActiveSupport
module Testing
module Performance
DEFAULTS.merge!(
- if ARGV.include?('--benchmark')
+ if ENV["BENCHMARK_TESTS"]
{ :metrics => [:wall_time, :memory, :objects, :gc_runs, :gc_time] }
else
{ :min_percent => 0.01,
diff --git a/railties/CHANGELOG.md b/railties/CHANGELOG.md
index 4bb2ec4618..43aed3f0e7 100644
--- a/railties/CHANGELOG.md
+++ b/railties/CHANGELOG.md
@@ -1,5 +1,11 @@
## unreleased ##
+* Fix bugs that crashed `rake test:benchmark`, `rails profiler` and
+ `rails benchmarker`.
+ Fixes #4938.
+
+ *Yves Senn*
+
* Add support for runner hook.
Backport #7695.
@@ -21,6 +27,11 @@
* No changes.
+* Fix launching performance tests through rake `test:benchmark`.
+ Fixes #4938.
+ Backport rails/rails-perftest#2.
+
+ *Dmitry Vorotilin + Yves Senn*
## Rails 3.2.11 (Jan 8, 2013) ##
diff --git a/railties/lib/rails/commands/benchmarker.rb b/railties/lib/rails/commands/benchmarker.rb
index b745b45e17..a2d92f8956 100644
--- a/railties/lib/rails/commands/benchmarker.rb
+++ b/railties/lib/rails/commands/benchmarker.rb
@@ -2,9 +2,8 @@ require 'optparse'
require 'rails/test_help'
require 'rails/performance_test_help'
-ARGV.push('--benchmark') # HAX
+ENV["BENCHMARK_TESTS"] = '1'
require 'active_support/testing/performance'
-ARGV.pop
def options
options = {}
@@ -31,4 +30,5 @@ class BenchmarkerTest < ActionDispatch::PerformanceTest #:nodoc:
end
RUBY
end
+ ARGV.clear
end
diff --git a/railties/lib/rails/commands/profiler.rb b/railties/lib/rails/commands/profiler.rb
index 3f6966b4f0..9b3b4f41f6 100644
--- a/railties/lib/rails/commands/profiler.rb
+++ b/railties/lib/rails/commands/profiler.rb
@@ -29,4 +29,5 @@ class ProfilerTest < ActionDispatch::PerformanceTest #:nodoc:
end
RUBY
end
+ ARGV.clear
end
diff --git a/railties/lib/rails/test_unit/testing.rake b/railties/lib/rails/test_unit/testing.rake
index 290005993a..8d624c6999 100644
--- a/railties/lib/rails/test_unit/testing.rake
+++ b/railties/lib/rails/test_unit/testing.rake
@@ -123,10 +123,13 @@ namespace :test do
t.pattern = 'test/integration/**/*_test.rb'
end
- Rails::SubTestTask.new(:benchmark => 'test:prepare') do |t|
+ task 'test:benchmark_mode' do
+ ENV["BENCHMARK_TESTS"] = '1'
+ end
+
+ Rails::SubTestTask.new(:benchmark => ['test:prepare', 'test:benchmark_mode']) do |t|
t.libs << 'test'
t.pattern = 'test/performance/**/*_test.rb'
- t.options = '-- --benchmark'
end
Rails::SubTestTask.new(:profile => 'test:prepare') do |t|