From: Bruno Haible Date: Fri, 10 Feb 2023 12:46:22 +0000 (+0100) Subject: chown, lchown, fchownat tests: Avoid test failure on macOS 12. X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=2a352c6a17ef303d975d9fcdc68d4cf754e11d7f;p=gnulib.git chown, lchown, fchownat tests: Avoid test failure on macOS 12. * tests/test-chown.h (test_chown): Skip some assertions if getgid() == (gid_t)-1. * tests/test-lchown.h (test_lchown): Likewise. --- diff --git a/ChangeLog b/ChangeLog index 36feddfa7e..74eabffda2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2023-02-10 Bruno Haible + + chown, lchown, fchownat tests: Avoid test failure on macOS 12. + * tests/test-chown.h (test_chown): Skip some assertions if + getgid() == (gid_t)-1. + * tests/test-lchown.h (test_lchown): Likewise. + 2023-02-09 Bruno Haible math: Fix compilation error in C++ mode on macOS 12.5. diff --git a/tests/test-chown.h b/tests/test-chown.h index c1cf7bb8f8..4c7b6eec33 100644 --- a/tests/test-chown.h +++ b/tests/test-chown.h @@ -1,5 +1,5 @@ /* Tests of chown. - Copyright (C) 2009-2022 Free Software Foundation, Inc. + Copyright (C) 2009-2023 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 @@ -72,7 +72,10 @@ test_chown (int (*func) (char const *, uid_t, gid_t), bool print) ASSERT (stat (BASE "dir/file", &st1) == 0); ASSERT (st1.st_uid != (uid_t) -1); ASSERT (st1.st_gid != (gid_t) -1); - ASSERT (st1.st_gid == getegid ()); + /* On macOS 12, when logged in through ssh, getgid () and getegid () are both + == (gid_t) -1. */ + if (getgid () != (gid_t) -1) + ASSERT (st1.st_gid == getegid ()); /* Sanity check of error cases. */ errno = 0; @@ -132,7 +135,8 @@ test_chown (int (*func) (char const *, uid_t, gid_t), bool print) if (1 < gids_count) { ASSERT (gids[1] != st1.st_gid); - ASSERT (gids[1] != (gid_t) -1); + if (getgid () != (gid_t) -1) + ASSERT (gids[1] != (gid_t) -1); ASSERT (lstat (BASE "dir/link", &st2) == 0); ASSERT (st1.st_uid == st2.st_uid); ASSERT (st1.st_gid == st2.st_gid); @@ -156,7 +160,8 @@ test_chown (int (*func) (char const *, uid_t, gid_t), bool print) ASSERT (func (BASE "dir/link2", -1, gids[1]) == 0); ASSERT (stat (BASE "dir/file", &st2) == 0); ASSERT (st1.st_uid == st2.st_uid); - ASSERT (gids[1] == st2.st_gid); + if (getgid () != (gid_t) -1) + ASSERT (gids[1] == st2.st_gid); ASSERT (lstat (BASE "dir/link", &st2) == 0); ASSERT (st1.st_uid == st2.st_uid); ASSERT (st1.st_gid == st2.st_gid); diff --git a/tests/test-lchown.h b/tests/test-lchown.h index b1a73d45e9..1c68f4a1ba 100644 --- a/tests/test-lchown.h +++ b/tests/test-lchown.h @@ -1,5 +1,5 @@ /* Tests of lchown. - Copyright (C) 2009-2022 Free Software Foundation, Inc. + Copyright (C) 2009-2023 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 @@ -80,7 +80,10 @@ test_lchown (int (*func) (char const *, uid_t, gid_t), bool print) ASSERT (stat (BASE "dir/file", &st1) == 0); ASSERT (st1.st_uid != (uid_t) -1); ASSERT (st1.st_gid != (gid_t) -1); - ASSERT (st1.st_gid == getegid ()); + /* On macOS 12, when logged in through ssh, getgid () and getegid () are both + == (gid_t) -1. */ + if (getgid () != (gid_t) -1) + ASSERT (st1.st_gid == getegid ()); /* Sanity check of error cases. */ errno = 0; @@ -150,7 +153,8 @@ test_lchown (int (*func) (char const *, uid_t, gid_t), bool print) if (1 < gids_count) { ASSERT (gids[1] != st1.st_gid); - ASSERT (gids[1] != (gid_t) -1); + if (getgid () != (gid_t) -1) + ASSERT (gids[1] != (gid_t) -1); ASSERT (lstat (BASE "dir/link", &st2) == 0); ASSERT (st1.st_uid == st2.st_uid); ASSERT (st1.st_gid == st2.st_gid); @@ -180,7 +184,8 @@ test_lchown (int (*func) (char const *, uid_t, gid_t), bool print) ASSERT (st1.st_gid == st2.st_gid); ASSERT (lstat (BASE "dir/link2", &st2) == 0); ASSERT (st1.st_uid == st2.st_uid); - ASSERT (gids[1] == st2.st_gid); + if (getgid () != (gid_t) -1) + ASSERT (gids[1] == st2.st_gid); /* Trailing slash follows through to directory. */ ASSERT (lstat (BASE "dir/link3", &st2) == 0); @@ -196,7 +201,8 @@ test_lchown (int (*func) (char const *, uid_t, gid_t), bool print) ASSERT (st1.st_gid == st2.st_gid); ASSERT (lstat (BASE "dir/sub", &st2) == 0); ASSERT (st1.st_uid == st2.st_uid); - ASSERT (gids[1] == st2.st_gid); + if (getgid () != (gid_t) -1) + ASSERT (gids[1] == st2.st_gid); } else if (!CHOWN_CHANGE_TIME_BUG || HAVE_LCHMOD) {