should we remove the test case of cuserid ?

Rui Feng <[email protected]> Sat, 8 Oct 2005 10:48:17 +0800
Newsgroups gmane.linux.lsb.test-suite
Message-ID <OF0B16F5EC.92480AC8-ON48257094.000EA248-48257094.000F39A0@cn.ibm.com>
Hi,

In the internal bugzilla of IBM, it reported cuserid failed on RHEL3U2 for
ppc64 system.
You can see the detail information in the attached file.

The following is the description of cuserid in SUSV3:

The information provided by the cuserid( ) function, which was originally
defined in the
POSIX.1-1988 standard and subsequently removed, can be obtained by the
following:
getpwuid(geteuid())

So should we remove the test case of cuserid?

Regards
Rui Feng

(See attached file: cuserid_8632.txt)

_______________________________________________
lsb-test mailing list
[email protected]
http://mail.freestandards.org/mailman/listinfo/lsb-test
cuserid_8632.txt (text/plain, 1.2 KB)
Hardware Environment:
IBM pSeries

Software Environment:
RHEL3U2 with kernel 2.4.21-15.EL
glibc 2.3.2-95.20

Steps to Reproduce:
1.Download LSB runtime test 2.0.3 version (lsb-runtim-test-2.0.3-1.ppc64.rpm) 
from ftp://ftp.freestandards.org/pub/lsb/test_suites/beta/binary/runtime/
2.Install the rpm on the system 
3.login as vsx0 and run it (./run_tests). The report and journal can be found 
in /home/tet/test_sets/results.
or execute individual tests:
  export TET_CONFIG=$TET_EXECUTE/tetexec.cfg 
  export TET_CODE=$HOME/tet_code 
  cd $TET_EXECUTE/tset/LSB.os/procenv/cuserid/T.cuserid
  ./T.cuserid

Actual Results:
/tset/LSB.os/procenv/cuserid/T.cuserid 3 FAIL
/tset/LSB.os/procenv/cuserid/T.cuserid 4 FAIL

Expected Results:
Testcase pass

Additional Information:

Here is an example to verify the failure. It will make different output between 
ppc64 and ppc32/i386.
On ppc64, it return errno=38. On ppc32/i386, errno is 0.

----------------test.c----------------
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>

#define ID 25000

int main()
{
        setuid(ID);
        errno = 0;
        cuserid((char *)NULL);
        printf("errno=%d\n", errno);
        return 0;
}
----------------test.c----------------