1 /* Basic test for getauxval.
2 Copyright (C) 2022-2024 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, see
17 <https://www.gnu.org/licenses/>. */
21 #include <support/check.h>
28 check_nonzero (unsigned long t
, const char *s
)
30 unsigned long v
= getauxval (t
);
31 printf ("%s: %lu (0x%lx)\n", s
, v
, v
);
37 check_eq (unsigned long t
, const char *s
, unsigned long want
)
39 unsigned long v
= getauxval (t
);
40 printf ("%s: %lu want: %lu\n", s
, v
, want
);
45 #define NZ(x) check_nonzero (x, #x)
46 #define EQ(x, want) check_eq (x, #x, want)
51 /* These auxv entries should be non-zero on Linux. */
61 FAIL_EXIT1 ("Found %d missing auxv entries.\n", missing
);
63 /* Check against syscalls. */
64 EQ (AT_UID
, getuid ());
65 EQ (AT_EUID
, geteuid ());
66 EQ (AT_GID
, getgid ());
67 EQ (AT_EGID
, getegid ());
69 FAIL_EXIT1 ("Found %d mismatching auxv entries.\n", mismatch
);
74 #include <support/test-driver.c>