[flang-commits] [flang] [flang][unittests] fix test broken when run as root (PR #119604)
Tom Eccles via flang-commits
flang-commits at lists.llvm.org
Wed Dec 11 10:27:17 PST 2024
https://github.com/tblah created https://github.com/llvm/llvm-project/pull/119604
It is convenient to run tests as root inside of a docker container.
The test (and the library function it is testing) are already unsupported on Windows so it is safe to use UNIX-isms here.
>From b6877fa9b8d7c98ba52f4d3bd79a5989f2beb96c Mon Sep 17 00:00:00 2001
From: Tom Eccles <tom.eccles at arm.com>
Date: Wed, 11 Dec 2024 18:22:42 +0000
Subject: [PATCH] [flang][unittests] fix test broken when run as root
It is convenient to run tests as root inside of a docker container.
The test (and the library function it is testing) are already
unsupported on Windows so it is safe to use UNIX-isms here.
---
flang/unittests/Runtime/AccessTest.cpp | 70 ++++++++++++++++++++++++++
1 file changed, 70 insertions(+)
diff --git a/flang/unittests/Runtime/AccessTest.cpp b/flang/unittests/Runtime/AccessTest.cpp
index 66f19f78c7cfb6..c2a2d7d398220c 100644
--- a/flang/unittests/Runtime/AccessTest.cpp
+++ b/flang/unittests/Runtime/AccessTest.cpp
@@ -32,6 +32,12 @@ struct AccessType {
} // namespace
+static bool userSkipsPermissionChecks() {
+ // The tests in this file assume normal permission checks apply to the user
+ // running the tests. This isn't true when the test is run by root.
+ return geteuid() == 0;
+}
+
static std::string addPIDSuffix(const char *name) {
std::stringstream ss;
ss << name;
@@ -166,6 +172,10 @@ TEST(AccessTests, TestRead) {
ASSERT_EQ(unlink(path.c_str()), 0);
+ if (userSkipsPermissionChecks()) {
+ return;
+ }
+
ASSERT_EQ(res, 0);
}
@@ -181,6 +191,10 @@ TEST(AccessTests, TestNotRead) {
ASSERT_EQ(unlink(path.c_str()), 0);
+ if (userSkipsPermissionChecks()) {
+ return;
+ }
+
ASSERT_NE(res, 0);
}
@@ -195,6 +209,10 @@ TEST(AccessTests, TestWrite) {
ASSERT_EQ(unlink(path.c_str()), 0);
+ if (userSkipsPermissionChecks()) {
+ return;
+ }
+
ASSERT_EQ(res, 0);
}
@@ -210,6 +228,10 @@ TEST(AccessTests, TestNotWrite) {
ASSERT_EQ(unlink(path.c_str()), 0);
+ if (userSkipsPermissionChecks()) {
+ return;
+ }
+
ASSERT_NE(res, 0);
}
@@ -225,6 +247,10 @@ TEST(AccessTests, TestReadWrite) {
ASSERT_EQ(unlink(path.c_str()), 0);
+ if (userSkipsPermissionChecks()) {
+ return;
+ }
+
ASSERT_EQ(res, 0);
}
@@ -242,6 +268,10 @@ TEST(AccessTests, TestNotReadWrite0) {
ASSERT_EQ(unlink(path.c_str()), 0);
+ if (userSkipsPermissionChecks()) {
+ return;
+ }
+
ASSERT_NE(res, 0);
}
@@ -259,6 +289,10 @@ TEST(AccessTests, TestNotReadWrite1) {
ASSERT_EQ(unlink(path.c_str()), 0);
+ if (userSkipsPermissionChecks()) {
+ return;
+ }
+
ASSERT_NE(res, 0);
}
@@ -276,6 +310,10 @@ TEST(AccessTests, TestNotReadWrite2) {
ASSERT_EQ(unlink(path.c_str()), 0);
+ if (userSkipsPermissionChecks()) {
+ return;
+ }
+
ASSERT_NE(res, 0);
}
@@ -290,6 +328,10 @@ TEST(AccessTests, TestExecute) {
ASSERT_EQ(unlink(path.c_str()), 0);
+ if (userSkipsPermissionChecks()) {
+ return;
+ }
+
ASSERT_EQ(res, 0);
}
@@ -305,6 +347,10 @@ TEST(AccessTests, TestNotExecute) {
ASSERT_EQ(unlink(path.c_str()), 0);
+ if (userSkipsPermissionChecks()) {
+ return;
+ }
+
ASSERT_NE(res, 0);
}
@@ -321,6 +367,10 @@ TEST(AccessTests, TestRWX) {
ASSERT_EQ(unlink(path.c_str()), 0);
+ if (userSkipsPermissionChecks()) {
+ return;
+ }
+
ASSERT_EQ(res, 0);
}
@@ -340,6 +390,10 @@ TEST(AccessTests, TestNotRWX0) {
ASSERT_EQ(unlink(path.c_str()), 0);
+ if (userSkipsPermissionChecks()) {
+ return;
+ }
+
ASSERT_NE(res, 0);
}
@@ -359,6 +413,10 @@ TEST(AccessTests, TestNotRWX1) {
ASSERT_EQ(unlink(path.c_str()), 0);
+ if (userSkipsPermissionChecks()) {
+ return;
+ }
+
ASSERT_NE(res, 0);
}
@@ -378,6 +436,10 @@ TEST(AccessTests, TestNotRWX2) {
ASSERT_EQ(unlink(path.c_str()), 0);
+ if (userSkipsPermissionChecks()) {
+ return;
+ }
+
ASSERT_NE(res, 0);
}
@@ -397,6 +459,10 @@ TEST(AccessTests, TestNotRWX3) {
ASSERT_EQ(unlink(path.c_str()), 0);
+ if (userSkipsPermissionChecks()) {
+ return;
+ }
+
ASSERT_NE(res, 0);
}
@@ -416,6 +482,10 @@ TEST(AccessTests, TestNotRWX4) {
ASSERT_EQ(unlink(path.c_str()), 0);
+ if (userSkipsPermissionChecks()) {
+ return;
+ }
+
ASSERT_NE(res, 0);
}
More information about the flang-commits
mailing list