Bug #6935

TestEtc#test_getgrgid on OSX

Added by Hiroshi Shirosaki almost 3 years ago. Updated almost 3 years ago.

[ruby-core:47312]
Status:Closed
Priority:Normal
Assignee:Nobuyoshi Nakada
ruby -v:ruby 2.0.0dev (2012-08-25 trunk 36821) [x86_64-darwin12.0.0] Backport:

Description

=begin
I saw similar issue as #6831. Is GID also not unique on OSX?

[ 69/110] TestEtc#test_getgrgid = 0.02 s

1) Failure:
test_getgrgid(TestEtc) [/Users/hiroshi/src/ruby/test/etc/test_etc.rb:84]:
<#> expected but was
<#>.

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|
  • assert_include(s, Etc.getgrgid(gid)) end
  • 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?
  • assert_include(s, Etc.getgrgid) end end

=end

Associated revisions

Revision 36833
Added by shirosaki almost 3 years ago

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. [Bug #6935]

Revision 36833
Added by shirosaki almost 3 years ago

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. [Bug #6935]

History

#1 Updated by Nobuyoshi Nakada almost 3 years ago

No unixen systems guarantees that GID is unique.
Please commit it.

#2 Updated by Anonymous almost 3 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. [Bug #6935]

Also available in: Atom PDF