1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * Copyright (c) International Business Machines Corp., 2001 4 * Ported by Wayne Boyer 5 */ 6 7/*\ 8 * [Description] 9 * Testcase to check the basic functionality of getgid(). 10 * 11 * [Algorithm] 12 * For functionality test the return value from getgid() is compared to passwd 13 * entry. 14 */ 15 16#include <pwd.h> 17#include "tst_test.h" 18#include "compat_tst_16.h" 19 20static void run(void) 21{ 22 uid_t uid; 23 struct passwd *pwent; 24 25 TEST(GETGID()); 26 if (TST_RET < 0) 27 tst_brk(TBROK, "This should never happen"); 28 29 uid = getuid(); 30 pwent = getpwuid(uid); 31 if (pwent == NULL) 32 tst_brk(TBROK | TERRNO, "getuid() returned unexpected value %d", uid); 33 34 GID16_CHECK(pwent->pw_gid, getgid); 35 36 if (pwent->pw_gid != TST_RET) { 37 tst_res(TFAIL, "getgid() return value " 38 "%ld unexpected - expected %d", 39 TST_RET, pwent->pw_gid); 40 return; 41 } 42 43 tst_res(TPASS, "values from getgid() and getpwuid() match"); 44} 45 46static struct tst_test test = { 47 .test_all = run, 48}; 49