From e490c1b8c858ea42e31ae1a6504c4788e0fb1545 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 22 Jan 2009 11:35:28 +0100 Subject: Move configure test files to the top-level and share them between s3 and s4. --- tests/getgroups.c | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 tests/getgroups.c (limited to 'tests/getgroups.c') diff --git a/tests/getgroups.c b/tests/getgroups.c new file mode 100644 index 0000000000..343fd5a184 --- /dev/null +++ b/tests/getgroups.c @@ -0,0 +1,66 @@ +/* this tests whether getgroups actually returns lists of integers + rather than gid_t. The test only works if the user running + the test is in at least 1 group + + The test is designed to check for those broken OSes that define + getgroups() as returning an array of gid_t but actually return a + array of ints! Ultrix is one culprit + */ + +#if defined(HAVE_UNISTD_H) +#include +#endif + +#include +#include +#include +#include + +main() +{ + int i; + int *igroups; + char *cgroups; + int grp = 0; + int ngroups = getgroups(0,&grp); + + if (sizeof(gid_t) == sizeof(int)) { + fprintf(stderr,"gid_t and int are the same size\n"); + exit(1); + } + + if (ngroups <= 0) + ngroups = 32; + + igroups = (int *)malloc(sizeof(int)*ngroups); + + for (i=0;i