From b47f8d035ec6a38a69eb5b3bdb1e27bb40e574c7 Mon Sep 17 00:00:00 2001 From: Yves Senn Date: Thu, 27 Jun 2013 20:54:57 +0200 Subject: clear ARGV to prevent mintest autorun errors: Minitest expects the first argument in `ARGV` to be the path to a test file. Because `rails benchmarker` and `rails profiler` define an on-the-fly test-case, using the first `ARGV` to pass the code to execute this results in: ``` /Users/senny/.rbenv/versions/1.9.3-p374/lib/ruby/1.9.1/test/unit.rb:167:in `block in non_options': file not found: 1000.times{"a string"} (ArgumentError) from /Users/senny/.rbenv/versions/1.9.3-p374/lib/ruby/1.9.1/test/unit.rb:146:in `map!' from /Users/senny/.rbenv/versions/1.9.3-p374/lib/ruby/1.9.1/test/unit.rb:146:in `non_options' from /Users/senny/.rbenv/versions/1.9.3-p374/lib/ruby/1.9.1/test/unit.rb:207:in `non_options' from /Users/senny/.rbenv/versions/1.9.3-p374/lib/ruby/1.9.1/test/unit.rb:52:in `process_args' from /Users/senny/.rbenv/versions/1.9.3-p374/lib/ruby/1.9.1/minitest/unit.rb:891:in `_run' from /Users/senny/.rbenv/versions/1.9.3-p374/lib/ruby/1.9.1/minitest/unit.rb:884:in `run' from /Users/senny/.rbenv/versions/1.9.3-p374/lib/ruby/1.9.1/test/unit.rb:21:in `run' from /Users/senny/.rbenv/versions/1.9.3-p374/lib/ruby/1.9.1/test/unit.rb:326:in `block (2 levels) in autorun' from /Users/senny/.rbenv/versions/1.9.3-p374/lib/ruby/1.9.1/test/unit.rb:27:in `run_once' from /Users/senny/.rbenv/versions/1.9.3-p374/lib/ruby/1.9.1/test/unit.rb:325:in `block in autorun' ``` clearing ARGV after defining the test-case solves this issue. --- railties/CHANGELOG.md | 6 ++++++ railties/lib/rails/commands/benchmarker.rb | 1 + railties/lib/rails/commands/profiler.rb | 1 + 3 files changed, 8 insertions(+) diff --git a/railties/CHANGELOG.md b/railties/CHANGELOG.md index 9ecb37e903..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. diff --git a/railties/lib/rails/commands/benchmarker.rb b/railties/lib/rails/commands/benchmarker.rb index b9169468a3..a2d92f8956 100644 --- a/railties/lib/rails/commands/benchmarker.rb +++ b/railties/lib/rails/commands/benchmarker.rb @@ -30,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 -- cgit v1.2.3