Issue #6831 has been updated by reeze (reeze xia).


kosaki (Motohiro KOSAKI) wrote:
> > This didn't happen in other OS´╝? Does OSX have an empty user and group ?
> 
> Only Apple can answer this. we can't. Etc extension is just wrapper functionality of OS feature.
> So, I suggest you report it to apple.
Thanks kosaki, I will try to report it apple.

thank:)
> 
> thanks.


----------------------------------------
Bug #6831: test_getpwuid() on Mountain Lion 
https://bugs.ruby-lang.org/issues/6831#change-28696

Author: kosaki (Motohiro KOSAKI)
Status: Closed
Priority: Normal
Assignee: nobu (Nobuyoshi Nakada)
Category: ext
Target version: 2.0.0
ruby -v:  ruby 2.0.0dev (2012-08-04 trunk 36617) [x86_64-darwin12.0.0]


When using Mountain Lion, following test failure occur.

  1) Failure:
test_getpwuid(TestEtc) [/ruby/git/test/etc/test_etc.rb:34]:
<#<struct Struct::Passwd
 name="_appleevents",
 passwd="*",
 uid=55,
 gid=55,
 gecos="AppleEvents Daemon",
 dir="/var/empty",
 shell="/usr/bin/false",
 change=0,
 uclass="",
 expire=0>> expected but was
<#<struct Struct::Passwd
 name="_pcastagent",
 passwd="*",
 uid=55,
 gid=55,
 gecos="Podcast Producer Agent",
 dir="/var/pcast/agent",
 shell="/usr/bin/false",
 change=0,
 uclass="",
 expire=0>>.
------------------------------------------

getpwent() of Mountain Lion seems buggy. see below:

test_getpwent.c
-----------------------------------------
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <pwd.h>

int main(void)
{
  struct passwd *ent;

  while((ent = getpwent()) != NULL) {
    if (ent->pw_uid == 55)
	printf("%s:%d:%s\n", ent->pw_name, ent->pw_uid, ent->pw_gecos);
  }

  return 0;
}


result
----------------
_appleevents:55:AppleEvents Daemon
_pcastagent:55:Podcast Producer Agent


mrkn, what do you think?




-- 
http://bugs.ruby-lang.org/