зеркало из https://github.com/github/ruby.git
test_etc.rb: relax comparisons
* test/etc/test_etc.rb (test_getgrgid, test_getgrnam): relax comparisons. getgrent() does not return mem properly in some circumstances (possibly, involved in Open Directory on OSX). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49204 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
54f1d71ab2
Коммит
8ed8e0ba41
|
@ -83,23 +83,25 @@ class TestEtc < Test::Unit::TestCase
|
|||
groups = Hash.new {[]}
|
||||
# on MacOSX, same entries are returned from /etc/group and Open
|
||||
# Directory.
|
||||
Etc.group {|s| groups[s.gid] |= [s]}
|
||||
Etc.group {|s| groups[s.gid] |= [[s.name, s.gid]]}
|
||||
groups.each_pair do |gid, s|
|
||||
assert_include(s, Etc.getgrgid(gid))
|
||||
g = Etc.getgrgid(gid)
|
||||
assert_include(s, [g.name, g.gid])
|
||||
end
|
||||
s = groups[Process.egid]
|
||||
unless s.empty?
|
||||
assert_include(s, Etc.getgrgid)
|
||||
g = Etc.getgrgid
|
||||
assert_include(s, [g.name, g.gid])
|
||||
end
|
||||
end
|
||||
|
||||
def test_getgrnam
|
||||
groups = {}
|
||||
Etc.group do |s|
|
||||
groups[s.name] ||= s unless /\A\+/ =~ s.name
|
||||
groups[s.name] ||= s.gid unless /\A\+/ =~ s.name
|
||||
end
|
||||
groups.each_value do |s|
|
||||
assert_equal(s, Etc.getgrnam(s.name))
|
||||
groups.each_pair do |n, s|
|
||||
assert_equal(s, Etc.getgrnam(n).gid)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче