From: Hubert Tong Date: Wed, 9 Jan 2019 16:00:39 +0000 (+0000) Subject: [unittests][Support] AIX: Skip sticky bit file tests X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f740ffbc9a210f9657a1f986781b415e5ae9f401;p=llvm [unittests][Support] AIX: Skip sticky bit file tests On AIX, attempting (without root) to set the sticky bit on a file with the `chmod` utility will give: ``` chmod: not all requested changes were made to ``` The same occurs when modifying other permission bits on a file with the sticky bit already set. It seems that the `chmod` function will report success despite failing to set the sticky bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350735 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/unittests/Support/Path.cpp b/unittests/Support/Path.cpp index 40faa669f87..21a6aab73af 100644 --- a/unittests/Support/Path.cpp +++ b/unittests/Support/Path.cpp @@ -1665,7 +1665,9 @@ TEST_F(FileSystemTest, permissions) { EXPECT_TRUE(CheckPermissions(fs::set_gid_on_exe)); // Modern BSDs require root to set the sticky bit on files. -#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) + // AIX without root will mask off (i.e., lose) the sticky bit on files. +#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && \ + !defined(_AIX) EXPECT_EQ(fs::setPermissions(TempPath, fs::sticky_bit), NoError); EXPECT_TRUE(CheckPermissions(fs::sticky_bit)); @@ -1685,7 +1687,7 @@ TEST_F(FileSystemTest, permissions) { EXPECT_EQ(fs::setPermissions(TempPath, fs::all_perms), NoError); EXPECT_TRUE(CheckPermissions(fs::all_perms)); -#endif // !FreeBSD && !NetBSD && !OpenBSD +#endif // !FreeBSD && !NetBSD && !OpenBSD && !AIX EXPECT_EQ(fs::setPermissions(TempPath, fs::all_perms & ~fs::sticky_bit), NoError);