mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/test/unit/collector/dir.rb (Collector::Dir#collect): prepend
base directory to load path. * lib/test/unit/collector/dir.rb (Collector::Dir#collect_file): should use the given File-like interface, but not File directly. * test/testunit/collector/test_dir.rb (TestDir::FileSystem): implement File-like methods correctly. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11147 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
d947750eb0
commit
272560359a
3 changed files with 39 additions and 7 deletions
11
ChangeLog
11
ChangeLog
|
@ -1,3 +1,14 @@
|
||||||
|
Fri Oct 13 02:30:12 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
|
[] * lib/test/unit/collector/dir.rb (Collector::Dir#collect): prepend
|
||||||
|
base directory to load path.
|
||||||
|
|
||||||
|
* lib/test/unit/collector/dir.rb (Collector::Dir#collect_file): should
|
||||||
|
use the given File-like interface, but not File directly.
|
||||||
|
|
||||||
|
* test/testunit/collector/test_dir.rb (TestDir::FileSystem): implement
|
||||||
|
File-like methods correctly.
|
||||||
|
|
||||||
Fri Oct 13 01:48:42 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
|
Fri Oct 13 01:48:42 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
|
||||||
|
|
||||||
* lib/date.rb (Date::self.complete_hash): need to check if g is
|
* lib/date.rb (Date::self.complete_hash): need to check if g is
|
||||||
|
|
|
@ -21,6 +21,8 @@ module Test
|
||||||
end
|
end
|
||||||
|
|
||||||
def collect(*from)
|
def collect(*from)
|
||||||
|
basedir = @base
|
||||||
|
$:.unshift(basedir) if basedir
|
||||||
if(from.empty?)
|
if(from.empty?)
|
||||||
recursive_collect('.', find_test_cases)
|
recursive_collect('.', find_test_cases)
|
||||||
elsif(from.size == 1)
|
elsif(from.size == 1)
|
||||||
|
@ -35,6 +37,8 @@ module Test
|
||||||
sort(suites).each{|s| suite << s}
|
sort(suites).each{|s| suite << s}
|
||||||
suite
|
suite
|
||||||
end
|
end
|
||||||
|
ensure
|
||||||
|
$:.delete_at($:.rindex(basedir)) if basedir
|
||||||
end
|
end
|
||||||
|
|
||||||
def find_test_cases(ignore=[])
|
def find_test_cases(ignore=[])
|
||||||
|
@ -77,7 +81,7 @@ module Test
|
||||||
end
|
end
|
||||||
|
|
||||||
def collect_file(name, suites, already_gathered)
|
def collect_file(name, suites, already_gathered)
|
||||||
dir = File.dirname(name = File.expand_path(name, @base))
|
dir = @file.dirname(@file.expand_path(name, @base))
|
||||||
$:.unshift(dir)
|
$:.unshift(dir)
|
||||||
if(@req)
|
if(@req)
|
||||||
@req.require(name)
|
@req.require(name)
|
||||||
|
|
|
@ -89,19 +89,19 @@ module Test
|
||||||
end
|
end
|
||||||
|
|
||||||
def directory?(name)
|
def directory?(name)
|
||||||
|
return true if (base = basename(name)) == '/'
|
||||||
e = find(dirname(name))
|
e = find(dirname(name))
|
||||||
return false unless(e)
|
return false unless(e)
|
||||||
e.directory?(basename(name))
|
e.directory?(base)
|
||||||
end
|
end
|
||||||
|
|
||||||
def find(path)
|
def find(path)
|
||||||
if(/\A\// =~ path)
|
if(/\A\// =~ path)
|
||||||
path = path.sub(/\A\//, '')
|
|
||||||
thing = @root
|
thing = @root
|
||||||
else
|
else
|
||||||
thing = @pwd
|
thing = @pwd
|
||||||
end
|
end
|
||||||
split(path).each do |e|
|
path.scan(/[^\/]+/) do |e|
|
||||||
break thing = false unless(thing.kind_of?(Directory))
|
break thing = false unless(thing.kind_of?(Directory))
|
||||||
thing = thing[e]
|
thing = thing[e]
|
||||||
end
|
end
|
||||||
|
@ -109,15 +109,19 @@ module Test
|
||||||
end
|
end
|
||||||
|
|
||||||
def dirname(name)
|
def dirname(name)
|
||||||
join(*split(name)[0..-2])
|
if (name = name.tr_s('/', '/')) == '/'
|
||||||
|
name
|
||||||
|
else
|
||||||
|
name[%r"\A.+(?=/[^/]+/?\z)|\A/"] || "."
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def basename(name)
|
def basename(name)
|
||||||
split(name)[-1]
|
name[%r"(\A/|[^/]+)/*\z", 1]
|
||||||
end
|
end
|
||||||
|
|
||||||
def split(name)
|
def split(name)
|
||||||
name.split('/')
|
[dirname(name), basename(name)]
|
||||||
end
|
end
|
||||||
|
|
||||||
def join(*parts)
|
def join(*parts)
|
||||||
|
@ -140,6 +144,19 @@ module Test
|
||||||
@pwd = e
|
@pwd = e
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def expand_path(path, base = nil)
|
||||||
|
until /\A\// =~ path
|
||||||
|
base ||= pwd
|
||||||
|
path = join(base, path)
|
||||||
|
base = nil
|
||||||
|
end
|
||||||
|
path.gsub!(%r"(?:/\.)+(?=/)", '')
|
||||||
|
nil while path.sub!(%r"/(?!\.\./)[^/]+/\.\.(?=/)", '')
|
||||||
|
path.sub!(%r"\A(?:/\.\.)+(?=/)", '')
|
||||||
|
path.sub!(%r"(?:\A(/)|/)\.\.?\z", '\1')
|
||||||
|
path
|
||||||
|
end
|
||||||
|
|
||||||
def require_directory(path)
|
def require_directory(path)
|
||||||
raise Errno::ENOTDIR, path unless(directory?(path))
|
raise Errno::ENOTDIR, path unless(directory?(path))
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue