1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

test_etc.rb: remove implicit assumption

* test/etc/test_etc.rb (TestEtc#test_getpwuid): remove implicit
  assumption, that getpwuid() would return the first entry in the
  order of getpw(), for shared UID.  apparently it is not true on
  MacOS X 10.8.  [ruby-core:46975][Bug #6831]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36625 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2012-08-05 05:14:35 +00:00
parent e57da6109c
commit 800d9a7ac1

View file

@ -28,11 +28,18 @@ class TestEtc < Test::Unit::TestCase
end
def test_getpwuid
passwd = {}
Etc.passwd {|s| passwd[s.uid] ||= s }
passwd.each_value do |s|
assert_equal(s, Etc.getpwuid(s.uid))
assert_equal(s, Etc.getpwuid) if Process.euid == s.uid
# password database is not unique on UID, and which entry will be
# returned by getpwuid() is not specified.
passwd = Hash.new {[]}
# on MacOSX, same entries are returned from /etc/passwd and Open
# Directory.
Etc.passwd {|s| passwd[s.uid] |= [s]}
passwd.each_pair do |uid, s|
assert_include(s, Etc.getpwuid(uid))
end
s = passwd[Process.euid]
if s
assert_include(s, Etc.getpwuid)
end
end