Project

General

Profile

Actions

Bug #6935

closed

TestEtc#test_getgrgid on OSX

Added by h.shirosaki (Hiroshi Shirosaki) over 11 years ago. Updated over 11 years ago.

Status:
Closed
Target version:
ruby -v:
ruby 2.0.0dev (2012-08-25 trunk 36821) [x86_64-darwin12.0.0]
Backport:
[ruby-core:47312]

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]:
    <#<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|
  •  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

Actions

Also available in: Atom PDF

Like0
Like0Like0