-
Notifications
You must be signed in to change notification settings - Fork 14.3k
[compiler-rt][rtsan] Fix failing file permissions test #106095
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
@llvm/pr-subscribers-compiler-rt-sanitizer Author: Chris Apple (cjappl) ChangesThis reverts: This test was failing with the assertion:
My thought is that on my local machine, umask starts at 0022 (owner everything, group read, others read) and on the build machine umask starts at 0077 (owner everything, group nothing, others nothing). To fix this bug, we need to record the delta between the existing umask and the requested file permissions. Does this seem reasonable? Full diff: https://github.com/llvm/llvm-project/pull/106095.diff 1 Files Affected:
diff --git a/compiler-rt/lib/rtsan/tests/rtsan_test_interceptors.cpp b/compiler-rt/lib/rtsan/tests/rtsan_test_interceptors.cpp
index 5b88cf64612942..8e55ccc1116727 100644
--- a/compiler-rt/lib/rtsan/tests/rtsan_test_interceptors.cpp
+++ b/compiler-rt/lib/rtsan/tests/rtsan_test_interceptors.cpp
@@ -184,25 +184,24 @@ TEST_F(RtsanFileTest, OpenatDiesWhenRealtime) {
ExpectNonRealtimeSurvival(func);
}
-// FIXME: This fails on the build machines, but not locally!
-// see https://github.com/llvm/llvm-project/pull/105732#issuecomment-2310286530
-// Value of: st.st_mode & 0777
-// Expected: is equal to 420
-// Actual: 384
-// TEST_F(RtsanFileTest, OpenCreatesFileWithProperMode) {
-// const int mode = S_IRGRP | S_IROTH | S_IRUSR | S_IWUSR;
-//
-// const int fd = open(GetTemporaryFilePath(), O_CREAT | O_WRONLY, mode);
-// ASSERT_THAT(fd, Ne(-1));
-// close(fd);
-//
-// struct stat st;
-// ASSERT_THAT(stat(GetTemporaryFilePath(), &st), Eq(0));
-//
-// // Mask st_mode to get permission bits only
-//
-// //ASSERT_THAT(st.st_mode & 0777, Eq(mode)); FAILED ASSERTION
-// }
+TEST_F(RtsanFileTest, OpenCreatesFileWithProperMode) {
+ const mode_t existing_umask = umask(0);
+ umask(existing_umask);
+
+ const int mode = S_IRGRP | S_IROTH | S_IRUSR | S_IWUSR;
+
+ const int fd = open(GetTemporaryFilePath(), O_CREAT | O_WRONLY, mode);
+ ASSERT_THAT(fd, Ne(-1));
+ close(fd);
+
+ struct stat st;
+ ASSERT_THAT(stat(GetTemporaryFilePath(), &st), Eq(0));
+
+ // Mask st_mode to get permission bits only
+ const mode_t actual_mode = st.st_mode & 0777;
+ const mode_t expected_mode = mode & ~existing_umask;
+ ASSERT_THAT(actual_mode, Eq(expected_mode));
+}
TEST_F(RtsanFileTest, CreatDiesWhenRealtime) {
auto func = [this]() { creat(GetTemporaryFilePath(), S_IWOTH | S_IROTH); };
|
7184fb5
to
5ea9ff3
Compare
…ild failure (llvm#106079)" This reverts commit 11ba2ee.
5ea9ff3
to
462f1f1
Compare
Unrelated test failure:
merging in a second |
…df8d91f90 Local branch amd-gfx a6bdf8d Merged main:41b55071a13374654a290c01224eb066c38dc87a into amd-gfx:20624ccc2ecf Remote branch main 898d52b [compiler-rt][rtsan] Fix failing file permissions test by checking umask (llvm#106095)
This reverts:
d8d8d65
This test was failing with the assertion:
To fix this bug, we need to record the delta between the existing umask and the requested file permissions.
I have repro'd this on my local machine, which you can do by: