aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib
diff options
context:
space:
mode:
authorPawan Dubey <git@pawandubey.com>2017-07-24 21:53:01 -0400
committerKasper Timm Hansen <kaspth@gmail.com>2017-07-25 21:00:43 +0200
commit07d84b7c8db5b85f7521cfc5d2028ed973d9a14b (patch)
tree1a071303a91ef30d833fd6bf5b0f259472fd92a6 /railties/lib
parent82200b2541c2e1adee2919aaaccf4bf268c9af99 (diff)
downloadrails-07d84b7c8db5b85f7521cfc5d2028ed973d9a14b.tar.gz
rails-07d84b7c8db5b85f7521cfc5d2028ed973d9a14b.tar.bz2
rails-07d84b7c8db5b85f7521cfc5d2028ed973d9a14b.zip
Allow bin/rails test task to take absolute paths as arguments
Solves #29923 This regression was caused due to a wrong regex to filter out paths, introduced in commit 796a1cf0e The regex was /^\w+\// which did not accept paths with a leading slash and hence all absolute paths were filtered out. This change introduces a change in regex which allows for a leading slash and acts on the matched term accordingly. While cascading through the case block, the paths are checked for line number specification, existence of a directory at that path and if none of those match, then it is considered to be a path to the file. The regex matchers specified are filtered out via the call to `Array#compact` since they do not match any of these conditions.
Diffstat (limited to 'railties/lib')
-rw-r--r--railties/lib/rails/test_unit/runner.rb6
1 files changed, 3 insertions, 3 deletions
diff --git a/railties/lib/rails/test_unit/runner.rb b/railties/lib/rails/test_unit/runner.rb
index 8018ef9d02..33ba2788b4 100644
--- a/railties/lib/rails/test_unit/runner.rb
+++ b/railties/lib/rails/test_unit/runner.rb
@@ -58,7 +58,7 @@ module Rails
private
def extract_filters(argv)
- argv.select { |arg| arg =~ /^\w+\// }.map do |path|
+ argv.select { |arg| arg =~ %r{^/?\w+/} }.map do |path|
case
when path =~ /(:\d+)+$/
file, *lines = path.split(":")
@@ -66,11 +66,11 @@ module Rails
file
when Dir.exist?(path)
"#{path}/**/*_test.rb"
- else
+ when path !~ /\/$/
filters << [ path, [] ]
path
end
- end
+ end.compact
end
end
end