/* Tests of getgroups.
- Copyright (C) 2009 Free Software Foundation, Inc.
+ Copyright (C) 2009-2011 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include <unistd.h>
+#include "signature.h"
+SIGNATURE_CHECK (getgroups, int, (int, gid_t[]));
+
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
+#include <stdint.h>
-#define ASSERT(expr) \
- do \
- { \
- if (!(expr)) \
- { \
- fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
- fflush (stderr); \
- abort (); \
- } \
- } \
- while (0)
+#include "macros.h"
int
-main (int argc, char **argv _UNUSED_PARAMETER_)
+main (int argc, char **argv _GL_UNUSED)
{
int result;
- GETGROUPS_T *groups;
+ gid_t *groups;
errno = 0;
result = getgroups (0, NULL);
}
ASSERT (0 <= result);
ASSERT (result + 1 < SIZE_MAX / sizeof *groups);
- groups = malloc (result + 1 * sizeof *groups);
+ groups = malloc ((result + 1) * sizeof *groups);
ASSERT (groups);
groups[result] = -1;
/* Check for EINVAL handling. Not all processes have supplemental