@@ -32,6 +32,12 @@ struct AccessType {
32
32
33
33
} // namespace
34
34
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
+
35
41
static std::string addPIDSuffix (const char *name) {
36
42
std::stringstream ss;
37
43
ss << name;
@@ -166,6 +172,10 @@ TEST(AccessTests, TestRead) {
166
172
167
173
ASSERT_EQ (unlink (path.c_str ()), 0 );
168
174
175
+ if (userSkipsPermissionChecks ()) {
176
+ return ;
177
+ }
178
+
169
179
ASSERT_EQ (res, 0 );
170
180
}
171
181
@@ -181,6 +191,10 @@ TEST(AccessTests, TestNotRead) {
181
191
182
192
ASSERT_EQ (unlink (path.c_str ()), 0 );
183
193
194
+ if (userSkipsPermissionChecks ()) {
195
+ return ;
196
+ }
197
+
184
198
ASSERT_NE (res, 0 );
185
199
}
186
200
@@ -195,6 +209,10 @@ TEST(AccessTests, TestWrite) {
195
209
196
210
ASSERT_EQ (unlink (path.c_str ()), 0 );
197
211
212
+ if (userSkipsPermissionChecks ()) {
213
+ return ;
214
+ }
215
+
198
216
ASSERT_EQ (res, 0 );
199
217
}
200
218
@@ -210,6 +228,10 @@ TEST(AccessTests, TestNotWrite) {
210
228
211
229
ASSERT_EQ (unlink (path.c_str ()), 0 );
212
230
231
+ if (userSkipsPermissionChecks ()) {
232
+ return ;
233
+ }
234
+
213
235
ASSERT_NE (res, 0 );
214
236
}
215
237
@@ -225,6 +247,10 @@ TEST(AccessTests, TestReadWrite) {
225
247
226
248
ASSERT_EQ (unlink (path.c_str ()), 0 );
227
249
250
+ if (userSkipsPermissionChecks ()) {
251
+ return ;
252
+ }
253
+
228
254
ASSERT_EQ (res, 0 );
229
255
}
230
256
@@ -242,6 +268,10 @@ TEST(AccessTests, TestNotReadWrite0) {
242
268
243
269
ASSERT_EQ (unlink (path.c_str ()), 0 );
244
270
271
+ if (userSkipsPermissionChecks ()) {
272
+ return ;
273
+ }
274
+
245
275
ASSERT_NE (res, 0 );
246
276
}
247
277
@@ -259,6 +289,10 @@ TEST(AccessTests, TestNotReadWrite1) {
259
289
260
290
ASSERT_EQ (unlink (path.c_str ()), 0 );
261
291
292
+ if (userSkipsPermissionChecks ()) {
293
+ return ;
294
+ }
295
+
262
296
ASSERT_NE (res, 0 );
263
297
}
264
298
@@ -276,6 +310,10 @@ TEST(AccessTests, TestNotReadWrite2) {
276
310
277
311
ASSERT_EQ (unlink (path.c_str ()), 0 );
278
312
313
+ if (userSkipsPermissionChecks ()) {
314
+ return ;
315
+ }
316
+
279
317
ASSERT_NE (res, 0 );
280
318
}
281
319
@@ -290,6 +328,10 @@ TEST(AccessTests, TestExecute) {
290
328
291
329
ASSERT_EQ (unlink (path.c_str ()), 0 );
292
330
331
+ if (userSkipsPermissionChecks ()) {
332
+ return ;
333
+ }
334
+
293
335
ASSERT_EQ (res, 0 );
294
336
}
295
337
@@ -305,6 +347,10 @@ TEST(AccessTests, TestNotExecute) {
305
347
306
348
ASSERT_EQ (unlink (path.c_str ()), 0 );
307
349
350
+ if (userSkipsPermissionChecks ()) {
351
+ return ;
352
+ }
353
+
308
354
ASSERT_NE (res, 0 );
309
355
}
310
356
@@ -321,6 +367,10 @@ TEST(AccessTests, TestRWX) {
321
367
322
368
ASSERT_EQ (unlink (path.c_str ()), 0 );
323
369
370
+ if (userSkipsPermissionChecks ()) {
371
+ return ;
372
+ }
373
+
324
374
ASSERT_EQ (res, 0 );
325
375
}
326
376
@@ -340,6 +390,10 @@ TEST(AccessTests, TestNotRWX0) {
340
390
341
391
ASSERT_EQ (unlink (path.c_str ()), 0 );
342
392
393
+ if (userSkipsPermissionChecks ()) {
394
+ return ;
395
+ }
396
+
343
397
ASSERT_NE (res, 0 );
344
398
}
345
399
@@ -359,6 +413,10 @@ TEST(AccessTests, TestNotRWX1) {
359
413
360
414
ASSERT_EQ (unlink (path.c_str ()), 0 );
361
415
416
+ if (userSkipsPermissionChecks ()) {
417
+ return ;
418
+ }
419
+
362
420
ASSERT_NE (res, 0 );
363
421
}
364
422
@@ -378,6 +436,10 @@ TEST(AccessTests, TestNotRWX2) {
378
436
379
437
ASSERT_EQ (unlink (path.c_str ()), 0 );
380
438
439
+ if (userSkipsPermissionChecks ()) {
440
+ return ;
441
+ }
442
+
381
443
ASSERT_NE (res, 0 );
382
444
}
383
445
@@ -397,6 +459,10 @@ TEST(AccessTests, TestNotRWX3) {
397
459
398
460
ASSERT_EQ (unlink (path.c_str ()), 0 );
399
461
462
+ if (userSkipsPermissionChecks ()) {
463
+ return ;
464
+ }
465
+
400
466
ASSERT_NE (res, 0 );
401
467
}
402
468
@@ -416,6 +482,10 @@ TEST(AccessTests, TestNotRWX4) {
416
482
417
483
ASSERT_EQ (unlink (path.c_str ()), 0 );
418
484
485
+ if (userSkipsPermissionChecks ()) {
486
+ return ;
487
+ }
488
+
419
489
ASSERT_NE (res, 0 );
420
490
}
421
491
0 commit comments