Skip to content

Commit 32403f7

Browse files
authored
[flang][unittests] fix test broken when run as root (#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.
1 parent 08c9bb2 commit 32403f7

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed

flang/unittests/Runtime/AccessTest.cpp

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,12 @@ struct AccessType {
3232

3333
} // namespace
3434

35+
static bool userSkipsPermissionChecks() {
36+
// The tests in this file assume normal permission checks apply to the user
37+
// running the tests. This isn't true when the test is run by root.
38+
return geteuid() == 0;
39+
}
40+
3541
static std::string addPIDSuffix(const char *name) {
3642
std::stringstream ss;
3743
ss << name;
@@ -166,6 +172,10 @@ TEST(AccessTests, TestRead) {
166172

167173
ASSERT_EQ(unlink(path.c_str()), 0);
168174

175+
if (userSkipsPermissionChecks()) {
176+
return;
177+
}
178+
169179
ASSERT_EQ(res, 0);
170180
}
171181

@@ -181,6 +191,10 @@ TEST(AccessTests, TestNotRead) {
181191

182192
ASSERT_EQ(unlink(path.c_str()), 0);
183193

194+
if (userSkipsPermissionChecks()) {
195+
return;
196+
}
197+
184198
ASSERT_NE(res, 0);
185199
}
186200

@@ -195,6 +209,10 @@ TEST(AccessTests, TestWrite) {
195209

196210
ASSERT_EQ(unlink(path.c_str()), 0);
197211

212+
if (userSkipsPermissionChecks()) {
213+
return;
214+
}
215+
198216
ASSERT_EQ(res, 0);
199217
}
200218

@@ -210,6 +228,10 @@ TEST(AccessTests, TestNotWrite) {
210228

211229
ASSERT_EQ(unlink(path.c_str()), 0);
212230

231+
if (userSkipsPermissionChecks()) {
232+
return;
233+
}
234+
213235
ASSERT_NE(res, 0);
214236
}
215237

@@ -225,6 +247,10 @@ TEST(AccessTests, TestReadWrite) {
225247

226248
ASSERT_EQ(unlink(path.c_str()), 0);
227249

250+
if (userSkipsPermissionChecks()) {
251+
return;
252+
}
253+
228254
ASSERT_EQ(res, 0);
229255
}
230256

@@ -242,6 +268,10 @@ TEST(AccessTests, TestNotReadWrite0) {
242268

243269
ASSERT_EQ(unlink(path.c_str()), 0);
244270

271+
if (userSkipsPermissionChecks()) {
272+
return;
273+
}
274+
245275
ASSERT_NE(res, 0);
246276
}
247277

@@ -259,6 +289,10 @@ TEST(AccessTests, TestNotReadWrite1) {
259289

260290
ASSERT_EQ(unlink(path.c_str()), 0);
261291

292+
if (userSkipsPermissionChecks()) {
293+
return;
294+
}
295+
262296
ASSERT_NE(res, 0);
263297
}
264298

@@ -276,6 +310,10 @@ TEST(AccessTests, TestNotReadWrite2) {
276310

277311
ASSERT_EQ(unlink(path.c_str()), 0);
278312

313+
if (userSkipsPermissionChecks()) {
314+
return;
315+
}
316+
279317
ASSERT_NE(res, 0);
280318
}
281319

@@ -290,6 +328,10 @@ TEST(AccessTests, TestExecute) {
290328

291329
ASSERT_EQ(unlink(path.c_str()), 0);
292330

331+
if (userSkipsPermissionChecks()) {
332+
return;
333+
}
334+
293335
ASSERT_EQ(res, 0);
294336
}
295337

@@ -305,6 +347,10 @@ TEST(AccessTests, TestNotExecute) {
305347

306348
ASSERT_EQ(unlink(path.c_str()), 0);
307349

350+
if (userSkipsPermissionChecks()) {
351+
return;
352+
}
353+
308354
ASSERT_NE(res, 0);
309355
}
310356

@@ -321,6 +367,10 @@ TEST(AccessTests, TestRWX) {
321367

322368
ASSERT_EQ(unlink(path.c_str()), 0);
323369

370+
if (userSkipsPermissionChecks()) {
371+
return;
372+
}
373+
324374
ASSERT_EQ(res, 0);
325375
}
326376

@@ -340,6 +390,10 @@ TEST(AccessTests, TestNotRWX0) {
340390

341391
ASSERT_EQ(unlink(path.c_str()), 0);
342392

393+
if (userSkipsPermissionChecks()) {
394+
return;
395+
}
396+
343397
ASSERT_NE(res, 0);
344398
}
345399

@@ -359,6 +413,10 @@ TEST(AccessTests, TestNotRWX1) {
359413

360414
ASSERT_EQ(unlink(path.c_str()), 0);
361415

416+
if (userSkipsPermissionChecks()) {
417+
return;
418+
}
419+
362420
ASSERT_NE(res, 0);
363421
}
364422

@@ -378,6 +436,10 @@ TEST(AccessTests, TestNotRWX2) {
378436

379437
ASSERT_EQ(unlink(path.c_str()), 0);
380438

439+
if (userSkipsPermissionChecks()) {
440+
return;
441+
}
442+
381443
ASSERT_NE(res, 0);
382444
}
383445

@@ -397,6 +459,10 @@ TEST(AccessTests, TestNotRWX3) {
397459

398460
ASSERT_EQ(unlink(path.c_str()), 0);
399461

462+
if (userSkipsPermissionChecks()) {
463+
return;
464+
}
465+
400466
ASSERT_NE(res, 0);
401467
}
402468

@@ -416,6 +482,10 @@ TEST(AccessTests, TestNotRWX4) {
416482

417483
ASSERT_EQ(unlink(path.c_str()), 0);
418484

485+
if (userSkipsPermissionChecks()) {
486+
return;
487+
}
488+
419489
ASSERT_NE(res, 0);
420490
}
421491

0 commit comments

Comments
 (0)