diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-10-01 16:25:37 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-10-01 16:25:37 +0000 |
commit | 5cfcbb2aca708d96d3c46e22392eef45774a535c (patch) | |
tree | cfb2267e019c1053ee35128a01bacb8b19102680 /lib/test/unit/collector/dir.rb | |
parent | 536cbbb20034d19c70c710f2fb5cde8968fc7fe7 (diff) |
* common.mk (test-all): separate directory where running test cases
from source tree.
* lib/test/unit/autorunner.rb (options): added --basedir, --workdir
and --load-path options.
* lib/test/unit/collector/dir.rb (recursive_collect, collect_file):
base directory support.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11062 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/test/unit/collector/dir.rb')
-rw-r--r-- | lib/test/unit/collector/dir.rb | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/lib/test/unit/collector/dir.rb b/lib/test/unit/collector/dir.rb index 1395cdf4e5..2cee7dde44 100644 --- a/lib/test/unit/collector/dir.rb +++ b/lib/test/unit/collector/dir.rb @@ -8,6 +8,7 @@ module Test include Collector attr_reader :pattern, :exclude + attr_accessor :base def initialize(dir=::Dir, file=::File, object_space=::ObjectSpace, req=nil) super() @@ -47,11 +48,12 @@ module Test def recursive_collect(name, already_gathered) sub_suites = [] - if(@file.directory?(name)) - @dir.entries(name).each do |e| + path = realdir(name) + if @file.directory?(path) + @dir.entries(path).each do |e| next if(e == '.' || e == '..') e_name = @file.join(name, e) - if(@file.directory?(e_name)) + if @file.directory?(realdir(e_name)) next if /\ACVS\z/ =~ e sub_suite = recursive_collect(e_name, already_gathered) sub_suites << sub_suite unless(sub_suite.empty?) @@ -75,7 +77,7 @@ module Test end def collect_file(name, suites, already_gathered) - dir = File.dirname(File.expand_path(name)) + dir = File.dirname(File.expand_path(name, @base)) $:.unshift(dir) if(@req) @req.require(name) @@ -86,6 +88,14 @@ module Test ensure $:.delete_at($:.rindex(dir)) if(dir) end + + def realdir(path) + if @base + @file.join(@base, path) + else + path + end + end end end end |