Actions
Bug #6935
closedTestEtc#test_getgrgid on OSX
Description
=begin
I saw similar issue as #6831. Is GID also not unique on OSX?
[ 69/110] TestEtc#test_getgrgid = 0.02 s
- Failure:
test_getgrgid(TestEtc) [/Users/hiroshi/src/ruby/test/etc/test_etc.rb:84]:
<#<struct Struct::Group name="_pcastagent", passwd="", gid=101, mem=[]>> expected but was
<#<struct Struct::Group
name="com.apple.sharepoint.group.1",
passwd="",
gid=101,
mem=["hiroshi"]>>.
I confirmed this patch fixes the failure.
diff --git a/test/etc/test_etc.rb b/test/etc/test_etc.rb
index 5bc8db4..c105122 100644
--- a/test/etc/test_etc.rb
+++ b/test/etc/test_etc.rb
@@ -76,13 +76,18 @@ class TestEtc < Test::Unit::TestCase
end
def test_getgrgid
- groups = {}
- Etc.group do |s|
-
groups[s.gid] ||= s
-
group database is not unique on GID, and which entry will be¶
-
returned by getgrgid() is not specified.¶
- groups = Hash.new {[]}
-
on MacOSX, same entries are returned from /etc/group and Open¶
-
Directory.¶
- Etc.group {|s| groups[s.gid] |= [s]}
- groups.each_pair do |gid, s|
-
endassert_include(s, Etc.getgrgid(gid))
- groups.each_value do |s|
-
assert_equal(s, Etc.getgrgid(s.gid))
-
assert_equal(s, Etc.getgrgid) if Process.egid == s.gid
- s = groups[Process.egid]
- unless s.empty?
-
endassert_include(s, Etc.getgrgid)
end
=end
Updated by nobu (Nobuyoshi Nakada) about 12 years ago
No unixen systems guarantees that GID is unique.
Please commit it.
Updated by Anonymous about 12 years ago
- Status changed from Open to Closed
- % Done changed from 0 to 100
This issue was solved with changeset r36833.
Hiroshi, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
test_etc.rb: fix for non unique GID
- test/etc/test_etc.rb (TestEtc#test_getgrgid): fix for non unique GID.
No unixen systems guarantee that GID is unique. Etc.getgrgid would
not return the first entry in the order of Etc.group for shared GID.
[ruby-core:47312] [Bug #6935]
Actions
Like0
Like0Like0