Lines Matching refs:ASSERT_EQ
106 ASSERT_EQ(0, mkdir(path, 0700)) { in create_directory()
116 ASSERT_EQ(0, mknod(path, S_IFREG | 0700, 0)) { in create_file()
167 ASSERT_EQ(0, unshare(CLONE_NEWNS)); in prepare_layout()
168 ASSERT_EQ(0, mount("tmp", TMP_DIR, "tmpfs", 0, "size=4m,mode=700")); in prepare_layout()
169 ASSERT_EQ(0, mount(NULL, TMP_DIR, NULL, MS_PRIVATE | MS_REC, NULL)); in prepare_layout()
197 ASSERT_EQ(0, mount("tmp", dir_s3d2, "tmpfs", 0, "size=4m,mode=700")); in create_layout1()
200 ASSERT_EQ(0, mkdir(dir_s3d3, 0700)); in create_layout1()
269 ASSERT_EQ(0, test_open(dir_s1d1, O_RDONLY)); in TEST_F_FORK()
270 ASSERT_EQ(0, test_open(file1_s1d1, O_RDONLY)); in TEST_F_FORK()
271 ASSERT_EQ(0, test_open(file2_s1d1, O_RDONLY)); in TEST_F_FORK()
272 ASSERT_EQ(0, test_open(dir_s1d2, O_RDONLY)); in TEST_F_FORK()
273 ASSERT_EQ(0, test_open(file1_s1d2, O_RDONLY)); in TEST_F_FORK()
274 ASSERT_EQ(0, test_open(file2_s1d2, O_RDONLY)); in TEST_F_FORK()
275 ASSERT_EQ(0, test_open(dir_s1d3, O_RDONLY)); in TEST_F_FORK()
276 ASSERT_EQ(0, test_open(file1_s1d3, O_RDONLY)); in TEST_F_FORK()
278 ASSERT_EQ(0, test_open(dir_s2d1, O_RDONLY)); in TEST_F_FORK()
279 ASSERT_EQ(0, test_open(file1_s2d1, O_RDONLY)); in TEST_F_FORK()
280 ASSERT_EQ(0, test_open(dir_s2d2, O_RDONLY)); in TEST_F_FORK()
281 ASSERT_EQ(0, test_open(file1_s2d2, O_RDONLY)); in TEST_F_FORK()
282 ASSERT_EQ(0, test_open(dir_s2d3, O_RDONLY)); in TEST_F_FORK()
283 ASSERT_EQ(0, test_open(file1_s2d3, O_RDONLY)); in TEST_F_FORK()
285 ASSERT_EQ(0, test_open(dir_s3d1, O_RDONLY)); in TEST_F_FORK()
286 ASSERT_EQ(0, test_open(dir_s3d2, O_RDONLY)); in TEST_F_FORK()
287 ASSERT_EQ(0, test_open(dir_s3d3, O_RDONLY)); in TEST_F_FORK()
309 ASSERT_EQ(-1, landlock_add_rule(ruleset_fd, LANDLOCK_RULE_PATH_BENEATH, in TEST_F_FORK()
312 ASSERT_EQ(EBADF, errno); in TEST_F_FORK()
313 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
317 ASSERT_EQ(-1, landlock_add_rule(ruleset_fd, LANDLOCK_RULE_PATH_BENEATH, in TEST_F_FORK()
320 ASSERT_EQ(EBADFD, errno); in TEST_F_FORK()
321 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
327 ASSERT_EQ(0, landlock_add_rule(ruleset_fd, LANDLOCK_RULE_PATH_BENEATH, in TEST_F_FORK()
329 ASSERT_EQ(0, close(path_beneath.parent_fd)); in TEST_F_FORK()
334 ASSERT_EQ(0, landlock_add_rule(ruleset_fd, LANDLOCK_RULE_PATH_BENEATH, in TEST_F_FORK()
336 ASSERT_EQ(0, close(path_beneath.parent_fd)); in TEST_F_FORK()
340 ASSERT_EQ(-1, landlock_add_rule(ruleset_fd, LANDLOCK_RULE_PATH_BENEATH, in TEST_F_FORK()
342 ASSERT_EQ(EBADFD, errno); in TEST_F_FORK()
351 ASSERT_EQ(-1, landlock_add_rule(ruleset_fd, LANDLOCK_RULE_PATH_BENEATH, in TEST_F_FORK()
353 ASSERT_EQ(EINVAL, errno); in TEST_F_FORK()
358 ASSERT_EQ(-1, landlock_add_rule(ruleset_fd, LANDLOCK_RULE_PATH_BENEATH, in TEST_F_FORK()
360 ASSERT_EQ(EINVAL, errno); in TEST_F_FORK()
365 ASSERT_EQ(-1, landlock_add_rule(ruleset_fd, LANDLOCK_RULE_PATH_BENEATH, in TEST_F_FORK()
367 ASSERT_EQ(ENOMSG, errno); in TEST_F_FORK()
370 ASSERT_EQ(0, close(path_beneath.parent_fd)); in TEST_F_FORK()
373 ASSERT_EQ(0, prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0)); in TEST_F_FORK()
374 ASSERT_EQ(0, landlock_restrict_self(ruleset_fd, 0)); in TEST_F_FORK()
376 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
420 ASSERT_EQ(0, err); in TEST_F_FORK()
422 ASSERT_EQ(-1, err); in TEST_F_FORK()
423 ASSERT_EQ(EINVAL, errno); in TEST_F_FORK()
426 ASSERT_EQ(0, close(path_beneath.parent_fd)); in TEST_F_FORK()
442 ASSERT_EQ(0, landlock_add_rule(ruleset_fd, LANDLOCK_RULE_PATH_BENEATH, in add_path_beneath()
447 ASSERT_EQ(0, close(path_beneath.parent_fd)); in add_path_beneath()
494 ASSERT_EQ(0, prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0)); in enforce_ruleset()
495 ASSERT_EQ(0, landlock_restrict_self(ruleset_fd, 0)) { in enforce_ruleset()
515 ASSERT_EQ(0, test_open("/proc/self/ns/mnt", O_RDONLY)); in TEST_F_FORK()
519 ASSERT_EQ(EACCES, test_open("/", O_RDONLY)); in TEST_F_FORK()
520 ASSERT_EQ(EACCES, test_open("/dev", O_RDONLY)); in TEST_F_FORK()
521 ASSERT_EQ(0, test_open("/dev/null", O_RDONLY)); in TEST_F_FORK()
522 ASSERT_EQ(EACCES, test_open("/dev/full", O_RDONLY)); in TEST_F_FORK()
524 ASSERT_EQ(EACCES, test_open("/proc", O_RDONLY)); in TEST_F_FORK()
525 ASSERT_EQ(EACCES, test_open("/proc/self", O_RDONLY)); in TEST_F_FORK()
526 ASSERT_EQ(EACCES, test_open("/proc/self/ns", O_RDONLY)); in TEST_F_FORK()
532 ASSERT_EQ(0, test_open("/proc/self/ns/mnt", O_RDONLY)); in TEST_F_FORK()
542 ASSERT_EQ(-1, landlock_add_rule(ruleset_fd, LANDLOCK_RULE_PATH_BENEATH, in TEST_F_FORK()
544 ASSERT_EQ(EBADFD, errno); in TEST_F_FORK()
545 ASSERT_EQ(0, close(path_beneath.parent_fd)); in TEST_F_FORK()
562 ASSERT_EQ(-1, landlock_restrict_self(ruleset_fd, 0)); in TEST_F_FORK()
563 ASSERT_EQ(EPERM, errno); in TEST_F_FORK()
567 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
590 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
593 ASSERT_EQ(EACCES, test_open("/", O_RDONLY)); in TEST_F_FORK()
594 ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY)); in TEST_F_FORK()
595 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_RDONLY)); in TEST_F_FORK()
596 ASSERT_EQ(0, test_open(dir_s1d2, O_RDONLY)); in TEST_F_FORK()
597 ASSERT_EQ(0, test_open(file1_s1d2, O_RDONLY)); in TEST_F_FORK()
598 ASSERT_EQ(0, test_open(dir_s1d3, O_RDONLY)); in TEST_F_FORK()
599 ASSERT_EQ(0, test_open(file1_s1d3, O_RDONLY)); in TEST_F_FORK()
602 ASSERT_EQ(EACCES, test_open(dir_s2d2, O_RDONLY)); in TEST_F_FORK()
603 ASSERT_EQ(0, test_open(file1_s2d2, O_RDONLY)); in TEST_F_FORK()
608 ASSERT_EQ(1, write(reg_fd, ".", 1)); in TEST_F_FORK()
610 ASSERT_EQ(1, read(reg_fd, &buf, 1)); in TEST_F_FORK()
611 ASSERT_EQ('.', buf); in TEST_F_FORK()
612 ASSERT_EQ(0, close(reg_fd)); in TEST_F_FORK()
617 ASSERT_EQ(-1, write(reg_fd, &buf, 1)); in TEST_F_FORK()
618 ASSERT_EQ(EBADF, errno); in TEST_F_FORK()
619 ASSERT_EQ(0, close(reg_fd)); in TEST_F_FORK()
636 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
642 ASSERT_EQ(0, test_open(file1_s1d1, O_WRONLY)); in TEST_F_FORK()
643 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_RDWR)); in TEST_F_FORK()
645 ASSERT_EQ(0, test_open(file1_s1d2, O_WRONLY)); in TEST_F_FORK()
646 ASSERT_EQ(0, test_open(file1_s1d2, O_RDWR)); in TEST_F_FORK()
669 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
672 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_RDONLY)); in TEST_F_FORK()
673 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_WRONLY)); in TEST_F_FORK()
674 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_RDWR)); in TEST_F_FORK()
675 ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
678 ASSERT_EQ(0, test_open(file1_s1d2, O_RDONLY)); in TEST_F_FORK()
679 ASSERT_EQ(0, test_open(file1_s1d2, O_WRONLY)); in TEST_F_FORK()
680 ASSERT_EQ(0, test_open(file1_s1d2, O_RDWR)); in TEST_F_FORK()
681 ASSERT_EQ(0, test_open(dir_s1d2, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
684 ASSERT_EQ(0, test_open(file1_s1d3, O_RDONLY)); in TEST_F_FORK()
685 ASSERT_EQ(0, test_open(file1_s1d3, O_WRONLY)); in TEST_F_FORK()
686 ASSERT_EQ(0, test_open(file1_s1d3, O_RDWR)); in TEST_F_FORK()
687 ASSERT_EQ(0, test_open(dir_s1d3, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
708 ASSERT_EQ(0, unlink(file1_s1d1)); in TEST_F_FORK()
709 ASSERT_EQ(0, unlink(file1_s1d2)); in TEST_F_FORK()
715 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
717 ASSERT_EQ(-1, mknod(file1_s1d1, S_IFREG | 0700, 0)); in TEST_F_FORK()
718 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
719 ASSERT_EQ(0, mknod(file1_s1d2, S_IFREG | 0700, 0)); in TEST_F_FORK()
720 ASSERT_EQ(0, unlink(file1_s1d2)); in TEST_F_FORK()
726 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
729 ASSERT_EQ(-1, mknod(file1_s1d1, S_IFREG | 0700, 0)); in TEST_F_FORK()
730 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
731 ASSERT_EQ(0, mknod(file1_s1d2, S_IFREG | 0700, 0)); in TEST_F_FORK()
734 ASSERT_EQ(-1, unlink(file1_s1d2)); in TEST_F_FORK()
735 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
736 ASSERT_EQ(0, unlink(file1_s1d3)); in TEST_F_FORK()
836 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
839 ASSERT_EQ(0, test_open(file1_s1d3, O_RDWR)); in TEST_F_FORK()
840 ASSERT_EQ(EACCES, test_open(file2_s1d3, O_RDONLY)); in TEST_F_FORK()
841 ASSERT_EQ(0, test_open(file2_s1d3, O_WRONLY)); in TEST_F_FORK()
847 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
850 ASSERT_EQ(0, test_open(file1_s1d3, O_RDWR)); in TEST_F_FORK()
851 ASSERT_EQ(EACCES, test_open(file2_s1d3, O_RDONLY)); in TEST_F_FORK()
852 ASSERT_EQ(0, test_open(file2_s1d3, O_WRONLY)); in TEST_F_FORK()
858 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
861 ASSERT_EQ(0, test_open(file1_s1d3, O_RDWR)); in TEST_F_FORK()
862 ASSERT_EQ(EACCES, test_open(file2_s1d3, O_RDONLY)); in TEST_F_FORK()
863 ASSERT_EQ(0, test_open(file2_s1d3, O_WRONLY)); in TEST_F_FORK()
870 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
876 ASSERT_EQ(0, test_open(file1_s1d3, O_RDONLY)); in TEST_F_FORK()
877 ASSERT_EQ(EACCES, test_open(file1_s1d3, O_WRONLY)); in TEST_F_FORK()
878 ASSERT_EQ(EACCES, test_open(file2_s1d3, O_RDONLY)); in TEST_F_FORK()
879 ASSERT_EQ(EACCES, test_open(file2_s1d3, O_WRONLY)); in TEST_F_FORK()
885 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
888 ASSERT_EQ(0, test_open(file1_s1d3, O_RDONLY)); in TEST_F_FORK()
889 ASSERT_EQ(EACCES, test_open(file1_s1d3, O_WRONLY)); in TEST_F_FORK()
890 ASSERT_EQ(EACCES, test_open(file2_s1d3, O_WRONLY)); in TEST_F_FORK()
891 ASSERT_EQ(EACCES, test_open(file2_s1d3, O_RDONLY)); in TEST_F_FORK()
897 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
900 ASSERT_EQ(0, test_open(file1_s1d3, O_RDONLY)); in TEST_F_FORK()
901 ASSERT_EQ(EACCES, test_open(file1_s1d3, O_WRONLY)); in TEST_F_FORK()
902 ASSERT_EQ(EACCES, test_open(file2_s1d3, O_WRONLY)); in TEST_F_FORK()
903 ASSERT_EQ(EACCES, test_open(file2_s1d3, O_RDONLY)); in TEST_F_FORK()
909 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
912 ASSERT_EQ(EACCES, test_open(file1_s1d3, O_RDONLY)); in TEST_F_FORK()
913 ASSERT_EQ(EACCES, test_open(file1_s1d3, O_WRONLY)); in TEST_F_FORK()
914 ASSERT_EQ(EACCES, test_open(file2_s1d3, O_WRONLY)); in TEST_F_FORK()
915 ASSERT_EQ(EACCES, test_open(file2_s1d3, O_RDONLY)); in TEST_F_FORK()
933 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_WRONLY)); in TEST_F_FORK()
934 ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
937 ASSERT_EQ(EACCES, test_open(file1_s1d2, O_WRONLY)); in TEST_F_FORK()
939 ASSERT_EQ(0, test_open(dir_s1d2, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
942 ASSERT_EQ(EACCES, test_open(file1_s1d3, O_WRONLY)); in TEST_F_FORK()
944 ASSERT_EQ(0, test_open(dir_s1d3, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
967 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_WRONLY)); in TEST_F_FORK()
968 ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
971 ASSERT_EQ(EACCES, test_open(file1_s1d2, O_WRONLY)); in TEST_F_FORK()
973 ASSERT_EQ(0, test_open(dir_s1d2, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
976 ASSERT_EQ(EACCES, test_open(file1_s1d3, O_WRONLY)); in TEST_F_FORK()
978 ASSERT_EQ(0, test_open(dir_s1d3, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
988 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_WRONLY)); in TEST_F_FORK()
989 ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
992 ASSERT_EQ(EACCES, test_open(file1_s1d2, O_WRONLY)); in TEST_F_FORK()
994 ASSERT_EQ(0, test_open(dir_s1d2, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
997 ASSERT_EQ(EACCES, test_open(file1_s1d3, O_WRONLY)); in TEST_F_FORK()
999 ASSERT_EQ(0, test_open(dir_s1d3, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
1009 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1018 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_WRONLY)); in TEST_F_FORK()
1019 ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
1022 ASSERT_EQ(EACCES, test_open(file1_s1d2, O_WRONLY)); in TEST_F_FORK()
1024 ASSERT_EQ(0, test_open(dir_s1d2, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
1027 ASSERT_EQ(EACCES, test_open(file1_s1d3, O_WRONLY)); in TEST_F_FORK()
1032 ASSERT_EQ(0, test_open(dir_s1d3, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
1050 ASSERT_EQ(EACCES, test_open(dir_s1d2, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
1052 ASSERT_EQ(0, test_open(dir_s1d3, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
1054 ASSERT_EQ(0, test_open(file1_s1d3, O_RDONLY)); in TEST_F_FORK()
1060 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1063 ASSERT_EQ(EACCES, test_open(dir_s1d2, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
1065 ASSERT_EQ(0, test_open(dir_s1d3, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
1067 ASSERT_EQ(0, test_open(file1_s1d3, O_RDONLY)); in TEST_F_FORK()
1088 ASSERT_EQ(-1, err); in TEST_F_FORK()
1089 ASSERT_EQ(E2BIG, errno); in TEST_F_FORK()
1091 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1103 ASSERT_EQ(ENOMSG, errno); in TEST_F_FORK()
1111 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_RDONLY)); in TEST_F_FORK()
1112 ASSERT_EQ(0, test_open(dir_s1d1, O_RDONLY)); in TEST_F_FORK()
1120 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_RDONLY)); in TEST_F_FORK()
1121 ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY)); in TEST_F_FORK()
1125 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1146 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1148 ASSERT_EQ(0, test_open(dir_s1d1, O_RDONLY)); in TEST_F_FORK()
1150 ASSERT_EQ(EACCES, test_open(dir_s2d1, O_RDONLY)); in TEST_F_FORK()
1152 ASSERT_EQ(EACCES, test_open(dir_s3d1, O_RDONLY)); in TEST_F_FORK()
1153 ASSERT_EQ(0, test_open(dir_s3d2, O_RDONLY)); in TEST_F_FORK()
1154 ASSERT_EQ(0, test_open(dir_s3d3, O_RDONLY)); in TEST_F_FORK()
1175 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1177 ASSERT_EQ(0, test_open(dir_s1d1, O_RDONLY)); in TEST_F_FORK()
1179 ASSERT_EQ(EACCES, test_open(dir_s2d1, O_RDONLY)); in TEST_F_FORK()
1181 ASSERT_EQ(0, test_open(dir_s3d1, O_RDONLY)); in TEST_F_FORK()
1182 ASSERT_EQ(0, test_open(dir_s3d2, O_RDONLY)); in TEST_F_FORK()
1183 ASSERT_EQ(0, test_open(dir_s3d3, O_RDONLY)); in TEST_F_FORK()
1203 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1206 ASSERT_EQ(0, test_open("/", O_RDONLY)); in TEST_F_FORK()
1207 ASSERT_EQ(0, test_open(dir_s1d1, O_RDONLY)); in TEST_F_FORK()
1213 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1216 ASSERT_EQ(EACCES, test_open("/", O_RDONLY)); in TEST_F_FORK()
1217 ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY)); in TEST_F_FORK()
1233 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1236 ASSERT_EQ(EACCES, test_open("/", O_RDONLY)); in TEST_F_FORK()
1237 ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY)); in TEST_F_FORK()
1252 ASSERT_EQ(0, syscall(SYS_pivot_root, dir_s3d2, dir_s3d3)) { in TEST_F_FORK()
1255 ASSERT_EQ(0, chdir("/")); in TEST_F_FORK()
1261 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1263 ASSERT_EQ(0, test_open("s3d3", O_RDONLY)); in TEST_F_FORK()
1264 ASSERT_EQ(EACCES, test_open("/", O_RDONLY)); in TEST_F_FORK()
1280 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1283 ASSERT_EQ(-1, mount(NULL, dir_s3d2, NULL, MS_RDONLY, NULL)); in TEST_F_FORK()
1284 ASSERT_EQ(EPERM, errno); in TEST_F_FORK()
1285 ASSERT_EQ(-1, syscall(SYS_pivot_root, dir_s3d2, dir_s3d3)); in TEST_F_FORK()
1286 ASSERT_EQ(EPERM, errno); in TEST_F_FORK()
1304 ASSERT_EQ(0, syscall(SYS_move_mount, AT_FDCWD, dir_s3d2, AT_FDCWD, in TEST_F_FORK()
1309 ASSERT_EQ(0, syscall(SYS_move_mount, AT_FDCWD, dir_s1d2, AT_FDCWD, in TEST_F_FORK()
1314 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1317 ASSERT_EQ(-1, syscall(SYS_move_mount, AT_FDCWD, dir_s3d2, AT_FDCWD, in TEST_F_FORK()
1319 ASSERT_EQ(EPERM, errno); in TEST_F_FORK()
1345 ASSERT_EQ(0, umount(dir_s3d2)); in TEST_F_FORK()
1349 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1351 ASSERT_EQ(0, test_open(file1_s1d1, O_RDONLY)); in TEST_F_FORK()
1352 ASSERT_EQ(EACCES, test_open(dir_s3d2, O_RDONLY)); in TEST_F_FORK()
1354 ASSERT_EQ(ENOENT, test_open(dir_s3d3, O_RDONLY)); in TEST_F_FORK()
1394 ASSERT_EQ(0, close(ruleset_fd)); in test_relative_path()
1404 ASSERT_EQ(0, chdir(dir_s2d2)); in test_relative_path()
1407 ASSERT_EQ(0, chdir(dir_s1d2)); in test_relative_path()
1423 ASSERT_EQ(0, chdir(dir_s1d2)); in test_relative_path()
1428 ASSERT_EQ(0, chroot("../../s1d1/s1d2")) { in test_relative_path()
1435 ASSERT_EQ(0, chroot(".")) { in test_relative_path()
1442 ASSERT_EQ((rel == REL_CHROOT_CHDIR) ? 0 : EACCES, in test_relative_path()
1444 ASSERT_EQ(0, test_open_rel(dirfd, ".", O_RDONLY)); in test_relative_path()
1448 ASSERT_EQ(0, test_open_rel(dirfd, "./s2d3", O_RDONLY)); in test_relative_path()
1451 ASSERT_EQ(0, test_open_rel(dirfd, "./s1d3", O_RDONLY)); in test_relative_path()
1456 ASSERT_EQ(0, test_open_rel(dirfd, "/..", O_RDONLY)); in test_relative_path()
1457 ASSERT_EQ(0, test_open_rel(dirfd, "/", O_RDONLY)); in test_relative_path()
1458 ASSERT_EQ(0, test_open_rel(dirfd, "/f1", O_RDONLY)); in test_relative_path()
1459 ASSERT_EQ(0, test_open_rel(dirfd, "/s1d3", O_RDONLY)); in test_relative_path()
1463 ASSERT_EQ(EACCES, test_open_rel(dirfd, "../../s1d1", O_RDONLY)); in test_relative_path()
1464 ASSERT_EQ(0, test_open_rel(dirfd, "../../s1d1/s1d2", O_RDONLY)); in test_relative_path()
1465 ASSERT_EQ(0, test_open_rel(dirfd, "../../s1d1/s1d2/s1d3", O_RDONLY)); in test_relative_path()
1467 ASSERT_EQ(EACCES, test_open_rel(dirfd, "../../s2d1", O_RDONLY)); in test_relative_path()
1468 ASSERT_EQ(0, test_open_rel(dirfd, "../../s2d1/s2d2", O_RDONLY)); in test_relative_path()
1469 ASSERT_EQ(0, test_open_rel(dirfd, "../../s2d1/s2d2/s2d3", O_RDONLY)); in test_relative_path()
1473 ASSERT_EQ(0, close(dirfd)); in test_relative_path()
1474 ASSERT_EQ(0, close(ruleset_fd)); in test_relative_path()
1513 ASSERT_EQ(0, fstat(src_fd, &statbuf)); in copy_binary()
1514 ASSERT_EQ(statbuf.st_size, sendfile(dst_fd, src_fd, 0, in copy_binary()
1516 ASSERT_EQ(0, close(src_fd)); in copy_binary()
1517 ASSERT_EQ(0, close(dst_fd)); in copy_binary()
1529 ASSERT_EQ(err ? -1 : 0, execve(path, argv, NULL)) { in test_execute()
1533 ASSERT_EQ(err, errno); in test_execute()
1537 ASSERT_EQ(child, waitpid(child, &status, 0)); in test_execute()
1538 ASSERT_EQ(1, WIFEXITED(status)); in test_execute()
1539 ASSERT_EQ(err ? 2 : 0, WEXITSTATUS(status)) { in test_execute()
1563 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1565 ASSERT_EQ(0, test_open(dir_s1d1, O_RDONLY)); in TEST_F_FORK()
1566 ASSERT_EQ(0, test_open(file1_s1d1, O_RDONLY)); in TEST_F_FORK()
1569 ASSERT_EQ(0, test_open(dir_s1d2, O_RDONLY)); in TEST_F_FORK()
1570 ASSERT_EQ(0, test_open(file1_s1d2, O_RDONLY)); in TEST_F_FORK()
1573 ASSERT_EQ(0, test_open(dir_s1d3, O_RDONLY)); in TEST_F_FORK()
1574 ASSERT_EQ(0, test_open(file1_s1d3, O_RDONLY)); in TEST_F_FORK()
1592 ASSERT_EQ(0, unlink(file1_s1d1)); in TEST_F_FORK()
1593 ASSERT_EQ(0, unlink(file1_s1d2)); in TEST_F_FORK()
1594 ASSERT_EQ(0, unlink(file1_s1d3)); in TEST_F_FORK()
1597 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1599 ASSERT_EQ(-1, link(file2_s1d1, file1_s1d1)); in TEST_F_FORK()
1600 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
1602 ASSERT_EQ(-1, link(file1_s2d1, file1_s1d2)); in TEST_F_FORK()
1603 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
1604 ASSERT_EQ(-1, link(file2_s1d2, file1_s1d3)); in TEST_F_FORK()
1605 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
1607 ASSERT_EQ(0, link(file2_s1d2, file1_s1d2)); in TEST_F_FORK()
1608 ASSERT_EQ(0, link(file2_s1d3, file1_s1d3)); in TEST_F_FORK()
1629 ASSERT_EQ(0, unlink(file1_s1d1)); in TEST_F_FORK()
1630 ASSERT_EQ(0, unlink(file1_s1d2)); in TEST_F_FORK()
1633 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1639 ASSERT_EQ(-1, rename(file1_s2d3, file1_s1d3)); in TEST_F_FORK()
1640 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
1641 ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d3, AT_FDCWD, file1_s1d3, in TEST_F_FORK()
1643 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
1644 ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d3, AT_FDCWD, dir_s1d3, in TEST_F_FORK()
1646 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
1652 ASSERT_EQ(-1, rename(file1_s2d1, file1_s1d3)); in TEST_F_FORK()
1653 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
1654 ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d1, AT_FDCWD, file1_s1d3, in TEST_F_FORK()
1656 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
1657 ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_s2d2, AT_FDCWD, file1_s1d3, in TEST_F_FORK()
1659 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
1662 ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_s2d2, AT_FDCWD, file1_s2d1, in TEST_F_FORK()
1664 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
1665 ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d1, AT_FDCWD, dir_s2d2, in TEST_F_FORK()
1667 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
1670 ASSERT_EQ(-1, rename(file1_s2d2, file1_s1d2)); in TEST_F_FORK()
1671 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
1672 ASSERT_EQ(0, unlink(file1_s1d3)); in TEST_F_FORK()
1673 ASSERT_EQ(-1, rename(file1_s2d1, file1_s1d3)); in TEST_F_FORK()
1674 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
1677 ASSERT_EQ(0, renameat2(AT_FDCWD, file2_s2d3, AT_FDCWD, file1_s2d3, in TEST_F_FORK()
1679 ASSERT_EQ(0, rename(file2_s2d3, file1_s2d3)); in TEST_F_FORK()
1682 ASSERT_EQ(0, renameat2(AT_FDCWD, file1_s2d2, AT_FDCWD, dir_s2d3, in TEST_F_FORK()
1684 ASSERT_EQ(0, renameat2(AT_FDCWD, file1_s2d2, AT_FDCWD, dir_s2d3, in TEST_F_FORK()
1707 ASSERT_EQ(0, unlink(file1_s1d3)); in TEST_F_FORK()
1708 ASSERT_EQ(0, unlink(file2_s1d3)); in TEST_F_FORK()
1711 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1714 ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_s2d3, AT_FDCWD, dir_s1d3, in TEST_F_FORK()
1716 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
1717 ASSERT_EQ(-1, rename(dir_s2d3, dir_s1d3)); in TEST_F_FORK()
1718 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
1719 ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d2, AT_FDCWD, dir_s1d3, in TEST_F_FORK()
1721 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
1727 ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_s1d1, AT_FDCWD, dir_s2d1, in TEST_F_FORK()
1729 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
1730 ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s1d1, AT_FDCWD, dir_s1d2, in TEST_F_FORK()
1732 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
1738 ASSERT_EQ(0, renameat2(AT_FDCWD, dir_s1d3, AT_FDCWD, file1_s1d2, in TEST_F_FORK()
1740 ASSERT_EQ(0, unlink(dir_s1d3)); in TEST_F_FORK()
1741 ASSERT_EQ(0, mkdir(dir_s1d3, 0700)); in TEST_F_FORK()
1742 ASSERT_EQ(0, rename(file1_s1d2, dir_s1d3)); in TEST_F_FORK()
1743 ASSERT_EQ(0, rmdir(dir_s1d3)); in TEST_F_FORK()
1760 ASSERT_EQ(0, unlink(file1_s1d1)); in TEST_F_FORK()
1761 ASSERT_EQ(0, unlink(file1_s1d2)); in TEST_F_FORK()
1762 ASSERT_EQ(0, unlink(file1_s1d3)); in TEST_F_FORK()
1763 ASSERT_EQ(0, unlink(file2_s1d3)); in TEST_F_FORK()
1766 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1768 ASSERT_EQ(0, rmdir(dir_s1d3)); in TEST_F_FORK()
1769 ASSERT_EQ(0, mkdir(dir_s1d3, 0700)); in TEST_F_FORK()
1770 ASSERT_EQ(0, unlinkat(AT_FDCWD, dir_s1d3, AT_REMOVEDIR)); in TEST_F_FORK()
1773 ASSERT_EQ(-1, rmdir(dir_s1d2)); in TEST_F_FORK()
1774 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
1775 ASSERT_EQ(-1, unlinkat(AT_FDCWD, dir_s1d2, AT_REMOVEDIR)); in TEST_F_FORK()
1776 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
1777 ASSERT_EQ(-1, rmdir(dir_s1d1)); in TEST_F_FORK()
1778 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
1779 ASSERT_EQ(-1, unlinkat(AT_FDCWD, dir_s1d1, AT_REMOVEDIR)); in TEST_F_FORK()
1780 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
1797 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1799 ASSERT_EQ(-1, unlink(file1_s1d1)); in TEST_F_FORK()
1800 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
1801 ASSERT_EQ(-1, unlinkat(AT_FDCWD, file1_s1d1, 0)); in TEST_F_FORK()
1802 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
1803 ASSERT_EQ(0, unlink(file1_s1d2)); in TEST_F_FORK()
1804 ASSERT_EQ(0, unlinkat(AT_FDCWD, file1_s1d3, 0)); in TEST_F_FORK()
1821 ASSERT_EQ(0, unlink(file1_s1d1)); in test_make_file()
1822 ASSERT_EQ(0, unlink(file2_s1d1)); in test_make_file()
1823 ASSERT_EQ(0, mknod(file2_s1d1, mode | 0400, dev)) { in test_make_file()
1828 ASSERT_EQ(0, unlink(file1_s1d2)); in test_make_file()
1829 ASSERT_EQ(0, unlink(file2_s1d2)); in test_make_file()
1831 ASSERT_EQ(0, unlink(file1_s1d3)); in test_make_file()
1832 ASSERT_EQ(0, unlink(file2_s1d3)); in test_make_file()
1835 ASSERT_EQ(0, close(ruleset_fd)); in test_make_file()
1837 ASSERT_EQ(-1, mknod(file1_s1d1, mode | 0400, dev)); in test_make_file()
1838 ASSERT_EQ(EACCES, errno); in test_make_file()
1839 ASSERT_EQ(-1, link(file2_s1d1, file1_s1d1)); in test_make_file()
1840 ASSERT_EQ(EACCES, errno); in test_make_file()
1841 ASSERT_EQ(-1, rename(file2_s1d1, file1_s1d1)); in test_make_file()
1842 ASSERT_EQ(EACCES, errno); in test_make_file()
1844 ASSERT_EQ(0, mknod(file1_s1d2, mode | 0400, dev)) { in test_make_file()
1848 ASSERT_EQ(0, link(file1_s1d2, file2_s1d2)); in test_make_file()
1849 ASSERT_EQ(0, unlink(file2_s1d2)); in test_make_file()
1850 ASSERT_EQ(0, rename(file1_s1d2, file2_s1d2)); in test_make_file()
1852 ASSERT_EQ(0, mknod(file1_s1d3, mode | 0400, dev)); in test_make_file()
1853 ASSERT_EQ(0, link(file1_s1d3, file2_s1d3)); in test_make_file()
1854 ASSERT_EQ(0, unlink(file2_s1d3)); in test_make_file()
1855 ASSERT_EQ(0, rename(file1_s1d3, file2_s1d3)); in test_make_file()
1908 ASSERT_EQ(0, unlink(file1_s1d1)); in TEST_F_FORK()
1909 ASSERT_EQ(0, unlink(file2_s1d1)); in TEST_F_FORK()
1910 ASSERT_EQ(0, symlink("none", file2_s1d1)); in TEST_F_FORK()
1912 ASSERT_EQ(0, unlink(file1_s1d2)); in TEST_F_FORK()
1913 ASSERT_EQ(0, unlink(file2_s1d2)); in TEST_F_FORK()
1915 ASSERT_EQ(0, unlink(file1_s1d3)); in TEST_F_FORK()
1916 ASSERT_EQ(0, unlink(file2_s1d3)); in TEST_F_FORK()
1919 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1921 ASSERT_EQ(-1, symlink("none", file1_s1d1)); in TEST_F_FORK()
1922 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
1923 ASSERT_EQ(-1, link(file2_s1d1, file1_s1d1)); in TEST_F_FORK()
1924 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
1925 ASSERT_EQ(-1, rename(file2_s1d1, file1_s1d1)); in TEST_F_FORK()
1926 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
1928 ASSERT_EQ(0, symlink("none", file1_s1d2)); in TEST_F_FORK()
1929 ASSERT_EQ(0, link(file1_s1d2, file2_s1d2)); in TEST_F_FORK()
1930 ASSERT_EQ(0, unlink(file2_s1d2)); in TEST_F_FORK()
1931 ASSERT_EQ(0, rename(file1_s1d2, file2_s1d2)); in TEST_F_FORK()
1933 ASSERT_EQ(0, symlink("none", file1_s1d3)); in TEST_F_FORK()
1934 ASSERT_EQ(0, link(file1_s1d3, file2_s1d3)); in TEST_F_FORK()
1935 ASSERT_EQ(0, unlink(file2_s1d3)); in TEST_F_FORK()
1936 ASSERT_EQ(0, rename(file1_s1d3, file2_s1d3)); in TEST_F_FORK()
1953 ASSERT_EQ(0, unlink(file1_s1d1)); in TEST_F_FORK()
1954 ASSERT_EQ(0, unlink(file1_s1d2)); in TEST_F_FORK()
1955 ASSERT_EQ(0, unlink(file1_s1d3)); in TEST_F_FORK()
1958 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1961 ASSERT_EQ(-1, mkdir(file1_s1d1, 0700)); in TEST_F_FORK()
1962 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
1963 ASSERT_EQ(0, mkdir(file1_s1d2, 0700)); in TEST_F_FORK()
1964 ASSERT_EQ(0, mkdir(file1_s1d3, 0700)); in TEST_F_FORK()
1995 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1997 ASSERT_EQ(EACCES, test_open(file1_s1d2, O_RDWR)); in TEST_F_FORK()
1998 ASSERT_EQ(0, test_open(file1_s1d2, O_RDONLY)); in TEST_F_FORK()
2001 ASSERT_EQ(0, unlink(file1_s1d2)); in TEST_F_FORK()
2005 ASSERT_EQ(0, close(proc_fd)); in TEST_F_FORK()
2008 ASSERT_EQ(-1, proc_fd) { in TEST_F_FORK()
2012 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2014 ASSERT_EQ(0, close(reg_fd)); in TEST_F_FORK()
2036 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
2039 ASSERT_EQ(0, test_open(file1_s1d2, O_RDWR)); in TEST_F_FORK()
2040 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_RDWR)); in TEST_F_FORK()
2043 ASSERT_EQ(0, pipe2(pipe_fds, O_CLOEXEC)); in TEST_F_FORK()
2044 ASSERT_EQ(1, write(pipe_fds[1], ".", 1)) { in TEST_F_FORK()
2047 ASSERT_EQ(1, read(pipe_fds[0], &buf, 1)); in TEST_F_FORK()
2048 ASSERT_EQ('.', buf); in TEST_F_FORK()
2053 ASSERT_EQ(1, write(proc_fd, ".", 1)) { in TEST_F_FORK()
2057 ASSERT_EQ(0, close(proc_fd)); in TEST_F_FORK()
2063 ASSERT_EQ(1, read(proc_fd, &buf, 1)) { in TEST_F_FORK()
2067 ASSERT_EQ(0, close(proc_fd)); in TEST_F_FORK()
2069 ASSERT_EQ(0, close(pipe_fds[0])); in TEST_F_FORK()
2070 ASSERT_EQ(0, close(pipe_fds[1])); in TEST_F_FORK()
2083 ASSERT_EQ(0, mount(dir_s1d2, dir_s2d2, NULL, MS_BIND, NULL)); in FIXTURE_SETUP()
2129 ASSERT_EQ(0, test_open(dir_s1d1, O_RDONLY)); in TEST_F_FORK()
2130 ASSERT_EQ(0, test_open(file1_s1d1, O_RDONLY)); in TEST_F_FORK()
2131 ASSERT_EQ(0, test_open(dir_s1d2, O_RDONLY)); in TEST_F_FORK()
2132 ASSERT_EQ(0, test_open(file1_s1d2, O_RDONLY)); in TEST_F_FORK()
2133 ASSERT_EQ(0, test_open(dir_s1d3, O_RDONLY)); in TEST_F_FORK()
2134 ASSERT_EQ(0, test_open(file1_s1d3, O_RDONLY)); in TEST_F_FORK()
2136 ASSERT_EQ(0, test_open(dir_s2d1, O_RDONLY)); in TEST_F_FORK()
2137 ASSERT_EQ(0, test_open(file1_s2d1, O_RDONLY)); in TEST_F_FORK()
2138 ASSERT_EQ(0, test_open(dir_s2d2, O_RDONLY)); in TEST_F_FORK()
2139 ASSERT_EQ(0, test_open(file1_s2d2, O_RDONLY)); in TEST_F_FORK()
2140 ASSERT_EQ(ENOENT, test_open(dir_s2d3, O_RDONLY)); in TEST_F_FORK()
2141 ASSERT_EQ(ENOENT, test_open(file1_s2d3, O_RDONLY)); in TEST_F_FORK()
2143 ASSERT_EQ(0, test_open(bind_dir_s1d3, O_RDONLY)); in TEST_F_FORK()
2144 ASSERT_EQ(0, test_open(bind_file1_s1d3, O_RDONLY)); in TEST_F_FORK()
2146 ASSERT_EQ(0, test_open(dir_s3d1, O_RDONLY)); in TEST_F_FORK()
2204 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
2207 ASSERT_EQ(0, test_open(file1_s1d1, O_RDONLY)); in TEST_F_FORK()
2208 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_WRONLY)); in TEST_F_FORK()
2209 ASSERT_EQ(0, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
2211 ASSERT_EQ(0, test_open(file1_s1d2, O_RDONLY)); in TEST_F_FORK()
2212 ASSERT_EQ(EACCES, test_open(file1_s1d2, O_WRONLY)); in TEST_F_FORK()
2213 ASSERT_EQ(0, test_open(dir_s1d2, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
2216 ASSERT_EQ(0, test_open(file1_s2d1, O_RDWR)); in TEST_F_FORK()
2217 ASSERT_EQ(0, test_open(dir_s2d1, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
2219 ASSERT_EQ(0, test_open(file1_s2d2, O_RDWR)); in TEST_F_FORK()
2220 ASSERT_EQ(0, test_open(dir_s2d2, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
2226 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
2229 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_RDONLY)); in TEST_F_FORK()
2230 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_WRONLY)); in TEST_F_FORK()
2231 ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
2233 ASSERT_EQ(0, test_open(file1_s1d2, O_RDONLY)); in TEST_F_FORK()
2234 ASSERT_EQ(EACCES, test_open(file1_s1d2, O_WRONLY)); in TEST_F_FORK()
2235 ASSERT_EQ(0, test_open(dir_s1d2, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
2238 ASSERT_EQ(EACCES, test_open(file1_s2d1, O_RDONLY)); in TEST_F_FORK()
2239 ASSERT_EQ(EACCES, test_open(file1_s2d1, O_WRONLY)); in TEST_F_FORK()
2240 ASSERT_EQ(EACCES, test_open(dir_s2d1, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
2242 ASSERT_EQ(0, test_open(file1_s2d2, O_RDWR)); in TEST_F_FORK()
2243 ASSERT_EQ(0, test_open(dir_s2d2, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
2244 ASSERT_EQ(0, test_open(bind_dir_s1d3, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
2250 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
2253 ASSERT_EQ(EACCES, test_open(file1_s1d2, O_RDONLY)); in TEST_F_FORK()
2254 ASSERT_EQ(EACCES, test_open(file1_s1d2, O_WRONLY)); in TEST_F_FORK()
2255 ASSERT_EQ(EACCES, test_open(dir_s1d2, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
2257 ASSERT_EQ(0, test_open(file1_s1d3, O_RDONLY)); in TEST_F_FORK()
2258 ASSERT_EQ(EACCES, test_open(file1_s1d3, O_WRONLY)); in TEST_F_FORK()
2259 ASSERT_EQ(EACCES, test_open(dir_s1d3, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
2262 ASSERT_EQ(EACCES, test_open(file1_s2d2, O_RDONLY)); in TEST_F_FORK()
2263 ASSERT_EQ(EACCES, test_open(file1_s2d2, O_WRONLY)); in TEST_F_FORK()
2264 ASSERT_EQ(EACCES, test_open(dir_s2d2, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
2266 ASSERT_EQ(0, test_open(bind_file1_s1d3, O_RDONLY)); in TEST_F_FORK()
2267 ASSERT_EQ(EACCES, test_open(bind_file1_s1d3, O_WRONLY)); in TEST_F_FORK()
2268 ASSERT_EQ(EACCES, test_open(bind_dir_s1d3, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
2274 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
2277 ASSERT_EQ(EACCES, test_open(file1_s1d3, O_RDONLY)); in TEST_F_FORK()
2278 ASSERT_EQ(EACCES, test_open(file1_s1d3, O_WRONLY)); in TEST_F_FORK()
2281 ASSERT_EQ(EACCES, test_open(bind_file1_s1d3, O_RDONLY)); in TEST_F_FORK()
2282 ASSERT_EQ(EACCES, test_open(bind_file1_s1d3, O_WRONLY)); in TEST_F_FORK()
2424 ASSERT_EQ(0, mount("tmp", LOWER_BASE, "tmpfs", 0, "size=4m,mode=700")); in FIXTURE_SETUP()
2434 ASSERT_EQ(0, mount("tmp", UPPER_BASE, "tmpfs", 0, "size=4m,mode=700")); in FIXTURE_SETUP()
2441 ASSERT_EQ(0, mkdir(UPPER_WORK, 0700)); in FIXTURE_SETUP()
2446 ASSERT_EQ(0, mount("overlay", MERGE_DATA, "overlay", 0, in FIXTURE_SETUP()
2487 ASSERT_EQ(0, test_open(lower_fl1, O_RDONLY)); in TEST_F_FORK()
2488 ASSERT_EQ(0, test_open(lower_dl1, O_RDONLY)); in TEST_F_FORK()
2489 ASSERT_EQ(0, test_open(lower_dl1_fl2, O_RDONLY)); in TEST_F_FORK()
2490 ASSERT_EQ(0, test_open(lower_fo1, O_RDONLY)); in TEST_F_FORK()
2491 ASSERT_EQ(0, test_open(lower_do1, O_RDONLY)); in TEST_F_FORK()
2492 ASSERT_EQ(0, test_open(lower_do1_fo2, O_RDONLY)); in TEST_F_FORK()
2493 ASSERT_EQ(0, test_open(lower_do1_fl3, O_RDONLY)); in TEST_F_FORK()
2495 ASSERT_EQ(0, test_open(upper_fu1, O_RDONLY)); in TEST_F_FORK()
2496 ASSERT_EQ(0, test_open(upper_du1, O_RDONLY)); in TEST_F_FORK()
2497 ASSERT_EQ(0, test_open(upper_du1_fu2, O_RDONLY)); in TEST_F_FORK()
2498 ASSERT_EQ(0, test_open(upper_fo1, O_RDONLY)); in TEST_F_FORK()
2499 ASSERT_EQ(0, test_open(upper_do1, O_RDONLY)); in TEST_F_FORK()
2500 ASSERT_EQ(0, test_open(upper_do1_fo2, O_RDONLY)); in TEST_F_FORK()
2501 ASSERT_EQ(0, test_open(upper_do1_fu3, O_RDONLY)); in TEST_F_FORK()
2503 ASSERT_EQ(0, test_open(merge_fl1, O_RDONLY)); in TEST_F_FORK()
2504 ASSERT_EQ(0, test_open(merge_dl1, O_RDONLY)); in TEST_F_FORK()
2505 ASSERT_EQ(0, test_open(merge_dl1_fl2, O_RDONLY)); in TEST_F_FORK()
2506 ASSERT_EQ(0, test_open(merge_fu1, O_RDONLY)); in TEST_F_FORK()
2507 ASSERT_EQ(0, test_open(merge_du1, O_RDONLY)); in TEST_F_FORK()
2508 ASSERT_EQ(0, test_open(merge_du1_fu2, O_RDONLY)); in TEST_F_FORK()
2509 ASSERT_EQ(0, test_open(merge_fo1, O_RDONLY)); in TEST_F_FORK()
2510 ASSERT_EQ(0, test_open(merge_do1, O_RDONLY)); in TEST_F_FORK()
2511 ASSERT_EQ(0, test_open(merge_do1_fo2, O_RDONLY)); in TEST_F_FORK()
2512 ASSERT_EQ(0, test_open(merge_do1_fl3, O_RDONLY)); in TEST_F_FORK()
2513 ASSERT_EQ(0, test_open(merge_do1_fu3, O_RDONLY)); in TEST_F_FORK()
2654 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
2658 ASSERT_EQ(0, test_open(path_entry, O_RDONLY)); in TEST_F_FORK()
2659 ASSERT_EQ(EACCES, test_open(path_entry, O_WRONLY)); in TEST_F_FORK()
2662 ASSERT_EQ(EACCES, test_open(path_entry, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
2665 ASSERT_EQ(0, test_open(path_entry, O_RDONLY)); in TEST_F_FORK()
2666 ASSERT_EQ(EACCES, test_open(path_entry, O_WRONLY)); in TEST_F_FORK()
2670 ASSERT_EQ(0, test_open(path_entry, O_RDONLY)); in TEST_F_FORK()
2671 ASSERT_EQ(EACCES, test_open(path_entry, O_WRONLY)); in TEST_F_FORK()
2674 ASSERT_EQ(EACCES, test_open(path_entry, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
2677 ASSERT_EQ(0, test_open(path_entry, O_RDONLY)); in TEST_F_FORK()
2678 ASSERT_EQ(EACCES, test_open(path_entry, O_WRONLY)); in TEST_F_FORK()
2687 ASSERT_EQ(0, test_open(path_entry, O_RDWR)); in TEST_F_FORK()
2690 ASSERT_EQ(0, test_open(path_entry, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
2693 ASSERT_EQ(0, test_open(path_entry, O_RDWR)); in TEST_F_FORK()
2700 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
2704 ASSERT_EQ(0, test_open(path_entry, O_RDWR)); in TEST_F_FORK()
2707 ASSERT_EQ(0, test_open(path_entry, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
2710 ASSERT_EQ(0, test_open(path_entry, O_RDWR)); in TEST_F_FORK()
2717 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
2721 ASSERT_EQ(EACCES, test_open(path_entry, O_RDONLY)); in TEST_F_FORK()
2725 ASSERT_EQ(EACCES, test_open(path_entry, O_RDONLY)); in TEST_F_FORK()
2729 ASSERT_EQ(EACCES, test_open(path_entry, O_RDWR)); in TEST_F_FORK()
2732 ASSERT_EQ(0, test_open(path_entry, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
2735 ASSERT_EQ(0, test_open(path_entry, O_RDWR)); in TEST_F_FORK()
2742 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
2746 ASSERT_EQ(0, test_open(path_entry, O_RDONLY)); in TEST_F_FORK()
2747 ASSERT_EQ(EACCES, test_open(path_entry, O_WRONLY)); in TEST_F_FORK()
2751 ASSERT_EQ(0, test_open(path_entry, O_RDONLY)); in TEST_F_FORK()
2752 ASSERT_EQ(EACCES, test_open(path_entry, O_WRONLY)); in TEST_F_FORK()
2756 ASSERT_EQ(EACCES, test_open(path_entry, O_RDWR)); in TEST_F_FORK()
2759 ASSERT_EQ(EACCES, test_open(path_entry, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
2762 ASSERT_EQ(0, test_open(path_entry, O_RDWR)); in TEST_F_FORK()
2769 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
2773 ASSERT_EQ(EACCES, test_open(path_entry, O_RDONLY)); in TEST_F_FORK()
2777 ASSERT_EQ(EACCES, test_open(path_entry, O_RDONLY)); in TEST_F_FORK()
2781 ASSERT_EQ(EACCES, test_open(path_entry, O_RDWR)); in TEST_F_FORK()
2784 ASSERT_EQ(EACCES, test_open(path_entry, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
2787 ASSERT_EQ(0, test_open(path_entry, O_RDWR)); in TEST_F_FORK()