@@ -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+
3541static 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