Lines Matching refs:ASSERT_EQ
185 ASSERT_EQ(0, mkdir(path, 0700)) in create_directory()
196 ASSERT_EQ(0, mknod(path, S_IFREG | 0700, 0)) in create_file()
267 ASSERT_EQ(0, unshare(CLONE_NEWNS | CLONE_NEWCGROUP)); in prepare_layout_opt()
268 ASSERT_EQ(0, mount_opt(mnt, TMP_DIR)) in prepare_layout_opt()
280 ASSERT_EQ(0, mount(NULL, TMP_DIR, NULL, MS_PRIVATE | MS_REC, NULL)); in prepare_layout_opt()
328 ASSERT_EQ(0, mount_opt(&mnt_tmp, dir_s3d2)); in create_layout1()
331 ASSERT_EQ(0, mkdir(dir_s3d3, 0700)); in create_layout1()
405 ASSERT_EQ(0, test_open(dir_s1d1, O_RDONLY)); in TEST_F_FORK()
406 ASSERT_EQ(0, test_open(file1_s1d1, O_RDONLY)); in TEST_F_FORK()
407 ASSERT_EQ(0, test_open(file2_s1d1, O_RDONLY)); in TEST_F_FORK()
408 ASSERT_EQ(0, test_open(dir_s1d2, O_RDONLY)); in TEST_F_FORK()
409 ASSERT_EQ(0, test_open(file1_s1d2, O_RDONLY)); in TEST_F_FORK()
410 ASSERT_EQ(0, test_open(file2_s1d2, O_RDONLY)); in TEST_F_FORK()
411 ASSERT_EQ(0, test_open(dir_s1d3, O_RDONLY)); in TEST_F_FORK()
412 ASSERT_EQ(0, test_open(file1_s1d3, O_RDONLY)); in TEST_F_FORK()
414 ASSERT_EQ(0, test_open(dir_s2d1, O_RDONLY)); in TEST_F_FORK()
415 ASSERT_EQ(0, test_open(file1_s2d1, O_RDONLY)); in TEST_F_FORK()
416 ASSERT_EQ(0, test_open(dir_s2d2, O_RDONLY)); in TEST_F_FORK()
417 ASSERT_EQ(0, test_open(file1_s2d2, O_RDONLY)); in TEST_F_FORK()
418 ASSERT_EQ(0, test_open(dir_s2d3, O_RDONLY)); in TEST_F_FORK()
419 ASSERT_EQ(0, test_open(file1_s2d3, O_RDONLY)); in TEST_F_FORK()
421 ASSERT_EQ(0, test_open(dir_s3d1, O_RDONLY)); in TEST_F_FORK()
422 ASSERT_EQ(0, test_open(dir_s3d2, O_RDONLY)); in TEST_F_FORK()
423 ASSERT_EQ(0, test_open(dir_s3d3, O_RDONLY)); in TEST_F_FORK()
445 ASSERT_EQ(-1, landlock_add_rule(ruleset_fd, LANDLOCK_RULE_PATH_BENEATH, in TEST_F_FORK()
448 ASSERT_EQ(EBADF, errno); in TEST_F_FORK()
449 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
453 ASSERT_EQ(-1, landlock_add_rule(ruleset_fd, LANDLOCK_RULE_PATH_BENEATH, in TEST_F_FORK()
456 ASSERT_EQ(EBADFD, errno); in TEST_F_FORK()
457 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
463 ASSERT_EQ(0, landlock_add_rule(ruleset_fd, LANDLOCK_RULE_PATH_BENEATH, in TEST_F_FORK()
465 ASSERT_EQ(0, close(path_beneath.parent_fd)); in TEST_F_FORK()
470 ASSERT_EQ(0, landlock_add_rule(ruleset_fd, LANDLOCK_RULE_PATH_BENEATH, in TEST_F_FORK()
472 ASSERT_EQ(0, close(path_beneath.parent_fd)); in TEST_F_FORK()
476 ASSERT_EQ(-1, landlock_add_rule(ruleset_fd, LANDLOCK_RULE_PATH_BENEATH, in TEST_F_FORK()
478 ASSERT_EQ(EBADFD, errno); in TEST_F_FORK()
487 ASSERT_EQ(-1, landlock_add_rule(ruleset_fd, LANDLOCK_RULE_PATH_BENEATH, in TEST_F_FORK()
489 ASSERT_EQ(EINVAL, errno); in TEST_F_FORK()
494 ASSERT_EQ(-1, landlock_add_rule(ruleset_fd, LANDLOCK_RULE_PATH_BENEATH, in TEST_F_FORK()
496 ASSERT_EQ(EINVAL, errno); in TEST_F_FORK()
501 ASSERT_EQ(-1, landlock_add_rule(ruleset_fd, LANDLOCK_RULE_PATH_BENEATH, in TEST_F_FORK()
503 ASSERT_EQ(EINVAL, errno); in TEST_F_FORK()
508 ASSERT_EQ(-1, landlock_add_rule(ruleset_fd, LANDLOCK_RULE_PATH_BENEATH, in TEST_F_FORK()
510 ASSERT_EQ(ENOMSG, errno); in TEST_F_FORK()
513 ASSERT_EQ(0, close(path_beneath.parent_fd)); in TEST_F_FORK()
516 ASSERT_EQ(0, prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0)); in TEST_F_FORK()
517 ASSERT_EQ(0, landlock_restrict_self(ruleset_fd, 0)); in TEST_F_FORK()
519 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
573 ASSERT_EQ(0, landlock_add_rule(ruleset_fd, in TEST_F_FORK()
581 ASSERT_EQ(0, err); in TEST_F_FORK()
583 ASSERT_EQ(-1, err); in TEST_F_FORK()
584 ASSERT_EQ(EINVAL, errno); in TEST_F_FORK()
587 ASSERT_EQ(0, close(path_beneath_file.parent_fd)); in TEST_F_FORK()
588 ASSERT_EQ(0, close(path_beneath_dir.parent_fd)); in TEST_F_FORK()
589 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
602 ASSERT_EQ(-1, landlock_create_ruleset(&ruleset_attr, in TEST_F_FORK()
604 ASSERT_EQ(EINVAL, errno); in TEST_F_FORK()
622 ASSERT_EQ(0, landlock_add_rule(ruleset_fd, LANDLOCK_RULE_PATH_BENEATH, in add_path_beneath()
628 ASSERT_EQ(0, close(path_beneath.parent_fd)); in add_path_beneath()
683 ASSERT_EQ(0, prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0)); in enforce_ruleset()
684 ASSERT_EQ(0, landlock_restrict_self(ruleset_fd, 0)) in enforce_ruleset()
706 ASSERT_EQ(0, test_open("/proc/self/ns/mnt", O_RDONLY)); in TEST_F_FORK()
710 ASSERT_EQ(EACCES, test_open("/", O_RDONLY)); in TEST_F_FORK()
711 ASSERT_EQ(EACCES, test_open("/dev", O_RDONLY)); in TEST_F_FORK()
712 ASSERT_EQ(0, test_open("/dev/null", O_RDONLY)); in TEST_F_FORK()
713 ASSERT_EQ(EACCES, test_open("/dev/full", O_RDONLY)); in TEST_F_FORK()
715 ASSERT_EQ(EACCES, test_open("/proc", O_RDONLY)); in TEST_F_FORK()
716 ASSERT_EQ(EACCES, test_open("/proc/self", O_RDONLY)); in TEST_F_FORK()
717 ASSERT_EQ(EACCES, test_open("/proc/self/ns", O_RDONLY)); in TEST_F_FORK()
723 ASSERT_EQ(0, test_open("/proc/self/ns/mnt", O_RDONLY)); in TEST_F_FORK()
733 ASSERT_EQ(-1, landlock_add_rule(ruleset_fd, LANDLOCK_RULE_PATH_BENEATH, in TEST_F_FORK()
735 ASSERT_EQ(EBADFD, errno); in TEST_F_FORK()
736 ASSERT_EQ(0, close(path_beneath.parent_fd)); in TEST_F_FORK()
754 ASSERT_EQ(-1, landlock_restrict_self(ruleset_fd, 0)); in TEST_F_FORK()
755 ASSERT_EQ(EPERM, errno); in TEST_F_FORK()
759 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
782 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
785 ASSERT_EQ(EACCES, test_open("/", O_RDONLY)); in TEST_F_FORK()
786 ASSERT_EQ(0, test_open("/", O_RDONLY | O_PATH)); in TEST_F_FORK()
787 ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY)); in TEST_F_FORK()
788 ASSERT_EQ(0, test_open(dir_s1d1, O_RDONLY | O_PATH)); in TEST_F_FORK()
789 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_RDONLY)); in TEST_F_FORK()
790 ASSERT_EQ(0, test_open(file1_s1d1, O_RDONLY | O_PATH)); in TEST_F_FORK()
792 ASSERT_EQ(0, test_open(dir_s1d2, O_RDONLY)); in TEST_F_FORK()
793 ASSERT_EQ(0, test_open(file1_s1d2, O_RDONLY)); in TEST_F_FORK()
794 ASSERT_EQ(0, test_open(dir_s1d3, O_RDONLY)); in TEST_F_FORK()
795 ASSERT_EQ(0, test_open(file1_s1d3, O_RDONLY)); in TEST_F_FORK()
798 ASSERT_EQ(EACCES, test_open(dir_s2d2, O_RDONLY)); in TEST_F_FORK()
799 ASSERT_EQ(0, test_open(dir_s2d2, O_RDONLY | O_PATH)); in TEST_F_FORK()
801 ASSERT_EQ(0, test_open(file1_s2d2, O_RDONLY)); in TEST_F_FORK()
806 ASSERT_EQ(1, write(reg_fd, ".", 1)); in TEST_F_FORK()
808 ASSERT_EQ(1, read(reg_fd, &buf, 1)); in TEST_F_FORK()
809 ASSERT_EQ('.', buf); in TEST_F_FORK()
810 ASSERT_EQ(0, close(reg_fd)); in TEST_F_FORK()
815 ASSERT_EQ(-1, write(reg_fd, &buf, 1)); in TEST_F_FORK()
816 ASSERT_EQ(EBADF, errno); in TEST_F_FORK()
817 ASSERT_EQ(0, close(reg_fd)); in TEST_F_FORK()
834 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
840 ASSERT_EQ(0, test_open(file1_s1d1, O_WRONLY)); in TEST_F_FORK()
841 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_RDWR)); in TEST_F_FORK()
843 ASSERT_EQ(0, test_open(file1_s1d2, O_WRONLY)); in TEST_F_FORK()
844 ASSERT_EQ(0, test_open(file1_s1d2, O_RDWR)); in TEST_F_FORK()
867 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
870 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_RDONLY)); in TEST_F_FORK()
871 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_WRONLY)); in TEST_F_FORK()
872 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_RDWR)); in TEST_F_FORK()
873 ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
876 ASSERT_EQ(0, test_open(file1_s1d2, O_RDONLY)); in TEST_F_FORK()
877 ASSERT_EQ(0, test_open(file1_s1d2, O_WRONLY)); in TEST_F_FORK()
878 ASSERT_EQ(0, test_open(file1_s1d2, O_RDWR)); in TEST_F_FORK()
879 ASSERT_EQ(0, test_open(dir_s1d2, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
882 ASSERT_EQ(0, test_open(file1_s1d3, O_RDONLY)); in TEST_F_FORK()
883 ASSERT_EQ(0, test_open(file1_s1d3, O_WRONLY)); in TEST_F_FORK()
884 ASSERT_EQ(0, test_open(file1_s1d3, O_RDWR)); in TEST_F_FORK()
885 ASSERT_EQ(0, test_open(dir_s1d3, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
923 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
926 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_RDONLY)); in TEST_F_FORK()
927 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_WRONLY)); in TEST_F_FORK()
928 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_RDWR)); in TEST_F_FORK()
929 ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
932 ASSERT_EQ(0, test_open(file1_s1d2, O_RDONLY)); in TEST_F_FORK()
933 ASSERT_EQ(EACCES, test_open(file1_s1d2, O_WRONLY)); in TEST_F_FORK()
934 ASSERT_EQ(EACCES, test_open(file1_s1d2, O_RDWR)); in TEST_F_FORK()
935 ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
938 ASSERT_EQ(0, test_open(file1_s1d3, O_RDONLY)); in TEST_F_FORK()
939 ASSERT_EQ(0, test_open(file1_s1d3, O_WRONLY)); in TEST_F_FORK()
941 ASSERT_EQ(0, test_open(file1_s1d3, O_RDWR)); in TEST_F_FORK()
942 ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
948 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
951 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_RDONLY)); in TEST_F_FORK()
952 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_WRONLY)); in TEST_F_FORK()
953 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_RDWR)); in TEST_F_FORK()
954 ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
957 ASSERT_EQ(0, test_open(file1_s1d2, O_RDONLY)); in TEST_F_FORK()
958 ASSERT_EQ(EACCES, test_open(file1_s1d2, O_WRONLY)); in TEST_F_FORK()
959 ASSERT_EQ(EACCES, test_open(file1_s1d2, O_RDWR)); in TEST_F_FORK()
960 ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
963 ASSERT_EQ(0, test_open(file1_s1d3, O_RDONLY)); in TEST_F_FORK()
964 ASSERT_EQ(0, test_open(file1_s1d3, O_WRONLY)); in TEST_F_FORK()
966 ASSERT_EQ(0, test_open(file1_s1d3, O_RDWR)); in TEST_F_FORK()
967 ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
973 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
976 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_RDONLY)); in TEST_F_FORK()
977 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_WRONLY)); in TEST_F_FORK()
978 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_RDWR)); in TEST_F_FORK()
979 ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
982 ASSERT_EQ(EACCES, test_open(file1_s1d2, O_RDONLY)); in TEST_F_FORK()
983 ASSERT_EQ(EACCES, test_open(file1_s1d2, O_WRONLY)); in TEST_F_FORK()
984 ASSERT_EQ(EACCES, test_open(file1_s1d2, O_RDWR)); in TEST_F_FORK()
985 ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
988 ASSERT_EQ(EACCES, test_open(file1_s1d3, O_RDONLY)); in TEST_F_FORK()
989 ASSERT_EQ(0, test_open(file1_s1d3, O_WRONLY)); in TEST_F_FORK()
991 ASSERT_EQ(EACCES, test_open(file1_s1d3, O_RDWR)); in TEST_F_FORK()
992 ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
1013 ASSERT_EQ(0, unlink(file1_s1d1)); in TEST_F_FORK()
1014 ASSERT_EQ(0, unlink(file1_s1d2)); in TEST_F_FORK()
1020 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1022 ASSERT_EQ(-1, mknod(file1_s1d1, S_IFREG | 0700, 0)); in TEST_F_FORK()
1023 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
1024 ASSERT_EQ(0, mknod(file1_s1d2, S_IFREG | 0700, 0)); in TEST_F_FORK()
1025 ASSERT_EQ(0, unlink(file1_s1d2)); in TEST_F_FORK()
1031 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1034 ASSERT_EQ(-1, mknod(file1_s1d1, S_IFREG | 0700, 0)); in TEST_F_FORK()
1035 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
1036 ASSERT_EQ(0, mknod(file1_s1d2, S_IFREG | 0700, 0)); in TEST_F_FORK()
1039 ASSERT_EQ(-1, unlink(file1_s1d2)); in TEST_F_FORK()
1040 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
1041 ASSERT_EQ(0, unlink(file1_s1d3)); in TEST_F_FORK()
1141 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1144 ASSERT_EQ(0, test_open(file1_s1d3, O_RDWR)); in TEST_F_FORK()
1145 ASSERT_EQ(EACCES, test_open(file2_s1d3, O_RDONLY)); in TEST_F_FORK()
1146 ASSERT_EQ(0, test_open(file2_s1d3, O_WRONLY)); in TEST_F_FORK()
1154 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1157 ASSERT_EQ(0, test_open(file1_s1d3, O_RDWR)); in TEST_F_FORK()
1158 ASSERT_EQ(EACCES, test_open(file2_s1d3, O_RDONLY)); in TEST_F_FORK()
1159 ASSERT_EQ(0, test_open(file2_s1d3, O_WRONLY)); in TEST_F_FORK()
1165 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1168 ASSERT_EQ(0, test_open(file1_s1d3, O_RDWR)); in TEST_F_FORK()
1169 ASSERT_EQ(EACCES, test_open(file2_s1d3, O_RDONLY)); in TEST_F_FORK()
1170 ASSERT_EQ(0, test_open(file2_s1d3, O_WRONLY)); in TEST_F_FORK()
1179 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1185 ASSERT_EQ(0, test_open(file1_s1d3, O_RDONLY)); in TEST_F_FORK()
1186 ASSERT_EQ(EACCES, test_open(file1_s1d3, O_WRONLY)); in TEST_F_FORK()
1187 ASSERT_EQ(EACCES, test_open(file2_s1d3, O_RDONLY)); in TEST_F_FORK()
1188 ASSERT_EQ(EACCES, test_open(file2_s1d3, O_WRONLY)); in TEST_F_FORK()
1194 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1197 ASSERT_EQ(0, test_open(file1_s1d3, O_RDONLY)); in TEST_F_FORK()
1198 ASSERT_EQ(EACCES, test_open(file1_s1d3, O_WRONLY)); in TEST_F_FORK()
1199 ASSERT_EQ(EACCES, test_open(file2_s1d3, O_WRONLY)); in TEST_F_FORK()
1200 ASSERT_EQ(EACCES, test_open(file2_s1d3, O_RDONLY)); in TEST_F_FORK()
1206 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1209 ASSERT_EQ(0, test_open(file1_s1d3, O_RDONLY)); in TEST_F_FORK()
1210 ASSERT_EQ(EACCES, test_open(file1_s1d3, O_WRONLY)); in TEST_F_FORK()
1211 ASSERT_EQ(EACCES, test_open(file2_s1d3, O_WRONLY)); in TEST_F_FORK()
1212 ASSERT_EQ(EACCES, test_open(file2_s1d3, O_RDONLY)); in TEST_F_FORK()
1220 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1223 ASSERT_EQ(EACCES, test_open(file1_s1d3, O_RDONLY)); in TEST_F_FORK()
1224 ASSERT_EQ(EACCES, test_open(file1_s1d3, O_WRONLY)); in TEST_F_FORK()
1225 ASSERT_EQ(EACCES, test_open(file2_s1d3, O_WRONLY)); in TEST_F_FORK()
1226 ASSERT_EQ(EACCES, test_open(file2_s1d3, O_RDONLY)); in TEST_F_FORK()
1244 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_WRONLY)); in TEST_F_FORK()
1245 ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
1248 ASSERT_EQ(EACCES, test_open(file1_s1d2, O_WRONLY)); in TEST_F_FORK()
1250 ASSERT_EQ(0, test_open(dir_s1d2, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
1253 ASSERT_EQ(EACCES, test_open(file1_s1d3, O_WRONLY)); in TEST_F_FORK()
1255 ASSERT_EQ(0, test_open(dir_s1d3, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
1278 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_WRONLY)); in TEST_F_FORK()
1279 ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
1282 ASSERT_EQ(EACCES, test_open(file1_s1d2, O_WRONLY)); in TEST_F_FORK()
1284 ASSERT_EQ(0, test_open(dir_s1d2, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
1287 ASSERT_EQ(EACCES, test_open(file1_s1d3, O_WRONLY)); in TEST_F_FORK()
1289 ASSERT_EQ(0, test_open(dir_s1d3, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
1299 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_WRONLY)); in TEST_F_FORK()
1300 ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
1303 ASSERT_EQ(EACCES, test_open(file1_s1d2, O_WRONLY)); in TEST_F_FORK()
1305 ASSERT_EQ(0, test_open(dir_s1d2, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
1308 ASSERT_EQ(EACCES, test_open(file1_s1d3, O_WRONLY)); in TEST_F_FORK()
1310 ASSERT_EQ(0, test_open(dir_s1d3, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
1320 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1329 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_WRONLY)); in TEST_F_FORK()
1330 ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
1333 ASSERT_EQ(EACCES, test_open(file1_s1d2, O_WRONLY)); in TEST_F_FORK()
1335 ASSERT_EQ(0, test_open(dir_s1d2, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
1338 ASSERT_EQ(EACCES, test_open(file1_s1d3, O_WRONLY)); in TEST_F_FORK()
1343 ASSERT_EQ(0, test_open(dir_s1d3, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
1361 ASSERT_EQ(EACCES, test_open(dir_s1d2, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
1363 ASSERT_EQ(0, test_open(dir_s1d3, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
1365 ASSERT_EQ(0, test_open(file1_s1d3, O_RDONLY)); in TEST_F_FORK()
1373 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1376 ASSERT_EQ(EACCES, test_open(dir_s1d2, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
1378 ASSERT_EQ(0, test_open(dir_s1d3, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
1380 ASSERT_EQ(0, test_open(file1_s1d3, O_RDONLY)); in TEST_F_FORK()
1401 ASSERT_EQ(-1, err); in TEST_F_FORK()
1402 ASSERT_EQ(E2BIG, errno); in TEST_F_FORK()
1404 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1416 ASSERT_EQ(ENOMSG, errno); in TEST_F_FORK()
1424 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_RDONLY)); in TEST_F_FORK()
1425 ASSERT_EQ(0, test_open(dir_s1d1, O_RDONLY)); in TEST_F_FORK()
1433 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_RDONLY)); in TEST_F_FORK()
1434 ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY)); in TEST_F_FORK()
1438 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1459 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1461 ASSERT_EQ(0, test_open(dir_s1d1, O_RDONLY)); in TEST_F_FORK()
1463 ASSERT_EQ(EACCES, test_open(dir_s2d1, O_RDONLY)); in TEST_F_FORK()
1465 ASSERT_EQ(EACCES, test_open(dir_s3d1, O_RDONLY)); in TEST_F_FORK()
1466 ASSERT_EQ(0, test_open(dir_s3d2, O_RDONLY)); in TEST_F_FORK()
1467 ASSERT_EQ(0, test_open(dir_s3d3, O_RDONLY)); in TEST_F_FORK()
1488 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1490 ASSERT_EQ(0, test_open(dir_s1d1, O_RDONLY)); in TEST_F_FORK()
1492 ASSERT_EQ(EACCES, test_open(dir_s2d1, O_RDONLY)); in TEST_F_FORK()
1494 ASSERT_EQ(0, test_open(dir_s3d1, O_RDONLY)); in TEST_F_FORK()
1495 ASSERT_EQ(0, test_open(dir_s3d2, O_RDONLY)); in TEST_F_FORK()
1496 ASSERT_EQ(0, test_open(dir_s3d3, O_RDONLY)); in TEST_F_FORK()
1516 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1519 ASSERT_EQ(0, test_open("/", O_RDONLY)); in TEST_F_FORK()
1520 ASSERT_EQ(0, test_open(dir_s1d1, O_RDONLY)); in TEST_F_FORK()
1526 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1529 ASSERT_EQ(EACCES, test_open("/", O_RDONLY)); in TEST_F_FORK()
1530 ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY)); in TEST_F_FORK()
1546 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1549 ASSERT_EQ(EACCES, test_open("/", O_RDONLY)); in TEST_F_FORK()
1550 ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY)); in TEST_F_FORK()
1565 ASSERT_EQ(0, syscall(__NR_pivot_root, dir_s3d2, dir_s3d3)) in TEST_F_FORK()
1569 ASSERT_EQ(0, chdir("/")); in TEST_F_FORK()
1575 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1577 ASSERT_EQ(0, test_open("s3d3", O_RDONLY)); in TEST_F_FORK()
1578 ASSERT_EQ(EACCES, test_open("/", O_RDONLY)); in TEST_F_FORK()
1594 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1597 ASSERT_EQ(-1, mount(NULL, dir_s3d2, NULL, MS_RDONLY, NULL)); in TEST_F_FORK()
1598 ASSERT_EQ(EPERM, errno); in TEST_F_FORK()
1599 ASSERT_EQ(-1, syscall(__NR_pivot_root, dir_s3d2, dir_s3d3)); in TEST_F_FORK()
1600 ASSERT_EQ(EPERM, errno); in TEST_F_FORK()
1618 ASSERT_EQ(0, syscall(__NR_move_mount, AT_FDCWD, dir_s3d2, AT_FDCWD, in TEST_F_FORK()
1624 ASSERT_EQ(0, syscall(__NR_move_mount, AT_FDCWD, dir_s1d2, AT_FDCWD, in TEST_F_FORK()
1629 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1632 ASSERT_EQ(-1, syscall(__NR_move_mount, AT_FDCWD, dir_s3d2, AT_FDCWD, in TEST_F_FORK()
1634 ASSERT_EQ(EPERM, errno); in TEST_F_FORK()
1660 ASSERT_EQ(0, umount(dir_s3d2)); in TEST_F_FORK()
1664 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1666 ASSERT_EQ(0, test_open(file1_s1d1, O_RDONLY)); in TEST_F_FORK()
1667 ASSERT_EQ(EACCES, test_open(dir_s3d2, O_RDONLY)); in TEST_F_FORK()
1669 ASSERT_EQ(ENOENT, test_open(dir_s3d3, O_RDONLY)); in TEST_F_FORK()
1709 ASSERT_EQ(0, close(ruleset_fd)); in test_relative_path()
1719 ASSERT_EQ(0, chdir(dir_s2d2)); in test_relative_path()
1722 ASSERT_EQ(0, chdir(dir_s1d2)); in test_relative_path()
1738 ASSERT_EQ(0, chdir(dir_s1d2)); in test_relative_path()
1743 ASSERT_EQ(0, chroot("../../s1d1/s1d2")) in test_relative_path()
1751 ASSERT_EQ(0, chroot(".")) in test_relative_path()
1759 ASSERT_EQ((rel == REL_CHROOT_CHDIR) ? 0 : EACCES, in test_relative_path()
1761 ASSERT_EQ(0, test_open_rel(dirfd, ".", O_RDONLY)); in test_relative_path()
1765 ASSERT_EQ(0, test_open_rel(dirfd, "./s2d3", O_RDONLY)); in test_relative_path()
1768 ASSERT_EQ(0, test_open_rel(dirfd, "./s1d3", O_RDONLY)); in test_relative_path()
1773 ASSERT_EQ(0, test_open_rel(dirfd, "/..", O_RDONLY)); in test_relative_path()
1774 ASSERT_EQ(0, test_open_rel(dirfd, "/", O_RDONLY)); in test_relative_path()
1775 ASSERT_EQ(0, test_open_rel(dirfd, "/f1", O_RDONLY)); in test_relative_path()
1776 ASSERT_EQ(0, test_open_rel(dirfd, "/s1d3", O_RDONLY)); in test_relative_path()
1780 ASSERT_EQ(EACCES, test_open_rel(dirfd, "../../s1d1", O_RDONLY)); in test_relative_path()
1781 ASSERT_EQ(0, test_open_rel(dirfd, "../../s1d1/s1d2", O_RDONLY)); in test_relative_path()
1782 ASSERT_EQ(0, test_open_rel(dirfd, "../../s1d1/s1d2/s1d3", in test_relative_path()
1785 ASSERT_EQ(EACCES, test_open_rel(dirfd, "../../s2d1", O_RDONLY)); in test_relative_path()
1786 ASSERT_EQ(0, test_open_rel(dirfd, "../../s2d1/s2d2", O_RDONLY)); in test_relative_path()
1787 ASSERT_EQ(0, test_open_rel(dirfd, "../../s2d1/s2d2/s2d3", in test_relative_path()
1792 ASSERT_EQ(0, close(dirfd)); in test_relative_path()
1793 ASSERT_EQ(0, close(ruleset_fd)); in test_relative_path()
1833 ASSERT_EQ(0, fstat(src_fd, &statbuf)); in copy_binary()
1834 ASSERT_EQ(statbuf.st_size, in copy_binary()
1836 ASSERT_EQ(0, close(src_fd)); in copy_binary()
1837 ASSERT_EQ(0, close(dst_fd)); in copy_binary()
1849 ASSERT_EQ(err ? -1 : 0, execve(path, argv, NULL)) in test_execute()
1854 ASSERT_EQ(err, errno); in test_execute()
1858 ASSERT_EQ(child, waitpid(child, &status, 0)); in test_execute()
1859 ASSERT_EQ(1, WIFEXITED(status)); in test_execute()
1860 ASSERT_EQ(err ? 2 : 0, WEXITSTATUS(status)) in test_execute()
1885 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1887 ASSERT_EQ(0, test_open(dir_s1d1, O_RDONLY)); in TEST_F_FORK()
1888 ASSERT_EQ(0, test_open(file1_s1d1, O_RDONLY)); in TEST_F_FORK()
1891 ASSERT_EQ(0, test_open(dir_s1d2, O_RDONLY)); in TEST_F_FORK()
1892 ASSERT_EQ(0, test_open(file1_s1d2, O_RDONLY)); in TEST_F_FORK()
1895 ASSERT_EQ(0, test_open(dir_s1d3, O_RDONLY)); in TEST_F_FORK()
1896 ASSERT_EQ(0, test_open(file1_s1d3, O_RDONLY)); in TEST_F_FORK()
1920 ASSERT_EQ(0, unlink(file1_s1d1)); in TEST_F_FORK()
1921 ASSERT_EQ(0, unlink(file1_s1d2)); in TEST_F_FORK()
1922 ASSERT_EQ(0, unlink(file1_s1d3)); in TEST_F_FORK()
1925 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1927 ASSERT_EQ(-1, link(file2_s1d1, file1_s1d1)); in TEST_F_FORK()
1928 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
1931 ASSERT_EQ(-1, link(file1_s2d1, file1_s1d2)); in TEST_F_FORK()
1932 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
1933 ASSERT_EQ(-1, link(file2_s1d2, file1_s1d3)); in TEST_F_FORK()
1934 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
1935 ASSERT_EQ(-1, link(file2_s1d3, file1_s1d2)); in TEST_F_FORK()
1936 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
1938 ASSERT_EQ(0, link(file2_s1d2, file1_s1d2)); in TEST_F_FORK()
1939 ASSERT_EQ(0, link(file2_s1d3, file1_s1d3)); in TEST_F_FORK()
1942 ASSERT_EQ(0, unlink(file2_s1d2)); in TEST_F_FORK()
1943 ASSERT_EQ(0, unlink(file2_s1d3)); in TEST_F_FORK()
1948 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1951 ASSERT_EQ(0, link(file1_s1d2, file2_s1d2)); in TEST_F_FORK()
1952 ASSERT_EQ(0, link(file1_s1d3, file2_s1d3)); in TEST_F_FORK()
1987 ASSERT_EQ(0, unlink(file1_s1d2)); in TEST_F_FORK()
1990 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
1996 ASSERT_EQ(-1, rename(file1_s2d3, file1_s1d3)); in TEST_F_FORK()
1997 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
1998 ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d3, AT_FDCWD, file1_s1d3, in TEST_F_FORK()
2000 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2001 ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d3, AT_FDCWD, dir_s1d3, in TEST_F_FORK()
2003 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2009 ASSERT_EQ(-1, rename(file1_s2d1, file1_s1d3)); in TEST_F_FORK()
2010 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2011 ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d1, AT_FDCWD, file1_s1d3, in TEST_F_FORK()
2013 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2014 ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_s2d2, AT_FDCWD, file1_s1d3, in TEST_F_FORK()
2016 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2019 ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_s2d2, AT_FDCWD, file1_s2d1, in TEST_F_FORK()
2021 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2023 ASSERT_EQ(-1, rename(dir_s2d2, file1_s2d1)); in TEST_F_FORK()
2024 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2025 ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d1, AT_FDCWD, dir_s2d2, in TEST_F_FORK()
2027 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2029 ASSERT_EQ(-1, rename(file1_s1d1, dir_s1d2)); in TEST_F_FORK()
2030 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2033 ASSERT_EQ(-1, rename(file1_s2d2, file1_s1d2)); in TEST_F_FORK()
2034 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2035 ASSERT_EQ(0, unlink(file1_s1d3)); in TEST_F_FORK()
2036 ASSERT_EQ(-1, rename(file1_s2d1, file1_s1d3)); in TEST_F_FORK()
2037 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2040 ASSERT_EQ(0, renameat2(AT_FDCWD, file2_s2d3, AT_FDCWD, file1_s2d3, in TEST_F_FORK()
2042 ASSERT_EQ(0, rename(file2_s2d3, file1_s2d3)); in TEST_F_FORK()
2045 ASSERT_EQ(0, renameat2(AT_FDCWD, file1_s2d2, AT_FDCWD, dir_s2d3, in TEST_F_FORK()
2047 ASSERT_EQ(0, renameat2(AT_FDCWD, file1_s2d2, AT_FDCWD, dir_s2d3, in TEST_F_FORK()
2070 ASSERT_EQ(0, unlink(file1_s1d3)); in TEST_F_FORK()
2071 ASSERT_EQ(0, unlink(file2_s1d3)); in TEST_F_FORK()
2074 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
2077 ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_s2d3, AT_FDCWD, dir_s1d3, in TEST_F_FORK()
2079 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2080 ASSERT_EQ(-1, rename(dir_s2d3, dir_s1d3)); in TEST_F_FORK()
2081 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2082 ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d2, AT_FDCWD, dir_s1d3, in TEST_F_FORK()
2084 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2090 ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_s1d1, AT_FDCWD, dir_s2d1, in TEST_F_FORK()
2092 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2094 ASSERT_EQ(-1, rename(dir_s1d2, file1_s1d1)); in TEST_F_FORK()
2095 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2096 ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s1d1, AT_FDCWD, dir_s1d2, in TEST_F_FORK()
2098 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2100 ASSERT_EQ(-1, rename(file1_s1d1, dir_s1d2)); in TEST_F_FORK()
2101 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2107 ASSERT_EQ(0, renameat2(AT_FDCWD, dir_s1d3, AT_FDCWD, file1_s1d2, in TEST_F_FORK()
2109 ASSERT_EQ(0, unlink(dir_s1d3)); in TEST_F_FORK()
2110 ASSERT_EQ(0, mkdir(dir_s1d3, 0700)); in TEST_F_FORK()
2111 ASSERT_EQ(0, rename(file1_s1d2, dir_s1d3)); in TEST_F_FORK()
2112 ASSERT_EQ(0, rmdir(dir_s1d3)); in TEST_F_FORK()
2133 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
2135 ASSERT_EQ(-1, rename(dir_s1d2, dir_s2d1)); in TEST_F_FORK()
2136 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2137 ASSERT_EQ(-1, rename(dir_s1d2, dir_s2d2)); in TEST_F_FORK()
2138 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2139 ASSERT_EQ(-1, rename(dir_s1d2, dir_s2d3)); in TEST_F_FORK()
2140 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2142 ASSERT_EQ(-1, rename(dir_s1d3, dir_s2d1)); in TEST_F_FORK()
2143 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2144 ASSERT_EQ(-1, rename(dir_s1d3, dir_s2d2)); in TEST_F_FORK()
2145 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2150 ASSERT_EQ(-1, rename(dir_s1d3, dir_s2d3)); in TEST_F_FORK()
2151 ASSERT_EQ(ENOTEMPTY, errno); in TEST_F_FORK()
2152 ASSERT_EQ(0, unlink(file1_s2d3)); in TEST_F_FORK()
2153 ASSERT_EQ(0, unlink(file2_s2d3)); in TEST_F_FORK()
2154 ASSERT_EQ(0, rename(dir_s1d3, dir_s2d3)); in TEST_F_FORK()
2165 ASSERT_EQ(0, unlink(file1_s1d2)); in refer_denied_by_default()
2170 ASSERT_EQ(0, close(ruleset_fd)); in refer_denied_by_default()
2176 ASSERT_EQ(layer1_err, test_rename(file1_s1d1, file1_s1d2)); in refer_denied_by_default()
2178 ASSERT_EQ(layer1_err, test_rename(file1_s1d2, file1_s1d1)); in refer_denied_by_default()
2179 ASSERT_EQ(layer1_err, test_exchange(file2_s1d1, file2_s1d2)); in refer_denied_by_default()
2180 ASSERT_EQ(layer1_err, test_exchange(file2_s1d2, file2_s1d1)); in refer_denied_by_default()
2185 ASSERT_EQ(0, close(ruleset_fd)); in refer_denied_by_default()
2193 ASSERT_EQ(EXDEV, test_rename(file1_s1d1, file1_s1d2)); in refer_denied_by_default()
2194 ASSERT_EQ(EXDEV, test_exchange(file2_s1d1, file2_s1d2)); in refer_denied_by_default()
2195 ASSERT_EQ(EXDEV, test_exchange(file2_s1d2, file2_s1d1)); in refer_denied_by_default()
2293 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
2295 ASSERT_EQ(0, unlink(file1_s1d1)); in TEST_F_FORK()
2296 ASSERT_EQ(0, unlink(file1_s1d2)); in TEST_F_FORK()
2297 ASSERT_EQ(0, unlink(file1_s1d3)); in TEST_F_FORK()
2300 ASSERT_EQ(-1, link(file2_s1d1, file1_s1d1)); in TEST_F_FORK()
2301 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2303 ASSERT_EQ(-1, link(file1_s2d1, file1_s1d2)); in TEST_F_FORK()
2304 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2306 ASSERT_EQ(-1, link(file1_s2d1, file1_s1d3)); in TEST_F_FORK()
2307 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2310 ASSERT_EQ(-1, link(file1_s2d2, file1_s1d1)); in TEST_F_FORK()
2311 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2313 ASSERT_EQ(-1, link(file1_s2d2, file1_s1d2)); in TEST_F_FORK()
2314 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2317 ASSERT_EQ(0, link(file1_s2d2, file1_s1d3)); in TEST_F_FORK()
2318 ASSERT_EQ(0, unlink(file1_s2d2)); in TEST_F_FORK()
2320 ASSERT_EQ(-1, link(file1_s1d3, file1_s2d2)); in TEST_F_FORK()
2321 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2322 ASSERT_EQ(0, unlink(file1_s2d3)); in TEST_F_FORK()
2324 ASSERT_EQ(0, link(file1_s1d3, file1_s2d3)); in TEST_F_FORK()
2325 ASSERT_EQ(0, unlink(file1_s1d3)); in TEST_F_FORK()
2331 ASSERT_EQ(0, link(file1_s2d3, file1_s1d3)); in TEST_F_FORK()
2332 ASSERT_EQ(0, unlink(file1_s1d3)); in TEST_F_FORK()
2334 ASSERT_EQ(-1, link(file2_s1d2, file1_s1d3)); in TEST_F_FORK()
2335 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2336 ASSERT_EQ(-1, link(file2_s1d3, file1_s1d2)); in TEST_F_FORK()
2337 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2339 ASSERT_EQ(0, link(file2_s1d2, file1_s1d2)); in TEST_F_FORK()
2340 ASSERT_EQ(0, link(file2_s1d3, file1_s1d3)); in TEST_F_FORK()
2371 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
2373 ASSERT_EQ(0, unlink(file1_s1d2)); in TEST_F_FORK()
2374 ASSERT_EQ(0, unlink(file1_s1d3)); in TEST_F_FORK()
2377 ASSERT_EQ(-1, renameat2(AT_FDCWD, file2_s1d1, AT_FDCWD, file1_s1d1, in TEST_F_FORK()
2379 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2380 ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s1d1, AT_FDCWD, file2_s1d1, in TEST_F_FORK()
2382 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2383 ASSERT_EQ(0, unlink(file1_s1d1)); in TEST_F_FORK()
2384 ASSERT_EQ(-1, rename(file2_s1d1, file1_s1d1)); in TEST_F_FORK()
2385 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2387 ASSERT_EQ(-1, renameat2(AT_FDCWD, file2_s1d1, AT_FDCWD, file2_s1d1, in TEST_F_FORK()
2389 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2392 ASSERT_EQ(-1, rename(file1_s2d1, file1_s1d2)); in TEST_F_FORK()
2393 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2398 ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d1, AT_FDCWD, file2_s1d1, in TEST_F_FORK()
2400 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2401 ASSERT_EQ(-1, renameat2(AT_FDCWD, file2_s1d1, AT_FDCWD, file1_s2d1, in TEST_F_FORK()
2403 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2406 ASSERT_EQ(-1, rename(file1_s2d1, file1_s1d3)); in TEST_F_FORK()
2407 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2409 ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d1, AT_FDCWD, file2_s1d3, in TEST_F_FORK()
2411 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2414 ASSERT_EQ(-1, rename(file1_s2d2, file1_s1d1)); in TEST_F_FORK()
2415 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2417 ASSERT_EQ(-1, rename(file1_s2d2, file1_s1d2)); in TEST_F_FORK()
2418 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2421 ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d2, AT_FDCWD, file2_s1d3, in TEST_F_FORK()
2423 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2425 ASSERT_EQ(0, rename(file1_s2d2, file1_s1d3)); in TEST_F_FORK()
2428 ASSERT_EQ(-1, rename(file1_s1d3, file1_s2d2)); in TEST_F_FORK()
2429 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2430 ASSERT_EQ(0, unlink(file1_s2d3)); in TEST_F_FORK()
2431 ASSERT_EQ(0, rename(file1_s1d3, file1_s2d3)); in TEST_F_FORK()
2434 ASSERT_EQ(0, rename(file1_s2d3, file1_s1d3)); in TEST_F_FORK()
2435 ASSERT_EQ(0, renameat2(AT_FDCWD, file2_s2d3, AT_FDCWD, file1_s1d3, in TEST_F_FORK()
2437 ASSERT_EQ(0, rename(file1_s1d3, file1_s2d3)); in TEST_F_FORK()
2443 ASSERT_EQ(0, rename(file1_s2d3, file1_s1d3)); in TEST_F_FORK()
2444 ASSERT_EQ(0, rename(file1_s1d3, file1_s2d3)); in TEST_F_FORK()
2453 ASSERT_EQ(0, rename(dir_s2d3, file1_s1d3)); in TEST_F_FORK()
2454 ASSERT_EQ(0, rename(file1_s1d3, dir_s2d3)); in TEST_F_FORK()
2459 ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d3, AT_FDCWD, dir_s1d3, in TEST_F_FORK()
2461 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2462 ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_s1d3, AT_FDCWD, file1_s2d3, in TEST_F_FORK()
2464 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2465 ASSERT_EQ(-1, rename(file1_s2d3, dir_s1d3)); in TEST_F_FORK()
2466 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2468 ASSERT_EQ(-1, rename(file2_s1d2, file1_s1d3)); in TEST_F_FORK()
2469 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2470 ASSERT_EQ(-1, rename(file2_s1d3, file1_s1d2)); in TEST_F_FORK()
2471 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2474 ASSERT_EQ(0, rename(file2_s1d2, file1_s1d2)); in TEST_F_FORK()
2475 ASSERT_EQ(0, rename(file2_s1d3, file1_s1d3)); in TEST_F_FORK()
2477 ASSERT_EQ(0, unlink(file1_s1d2)); in TEST_F_FORK()
2479 ASSERT_EQ(-1, rename(dir_s2d3, file1_s1d2)); in TEST_F_FORK()
2480 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2482 ASSERT_EQ(0, unlink(file1_s1d3)); in TEST_F_FORK()
2484 ASSERT_EQ(-1, rename(dir_s2d2, file1_s1d3)); in TEST_F_FORK()
2485 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2517 ASSERT_EQ(0, close(ruleset_fd)); in reparent_exdev_layers_enforce1()
2539 ASSERT_EQ(0, close(ruleset_fd)); in reparent_exdev_layers_enforce2()
2544 ASSERT_EQ(0, unlink(file1_s2d2)); in TEST_F_FORK()
2545 ASSERT_EQ(0, unlink(file1_s2d3)); in TEST_F_FORK()
2553 ASSERT_EQ(0, rename(dir_s1d3, file1_s2d2)); in TEST_F_FORK()
2554 ASSERT_EQ(0, rename(file1_s2d2, dir_s1d3)); in TEST_F_FORK()
2561 ASSERT_EQ(0, rename(dir_s1d3, file1_s2d3)); in TEST_F_FORK()
2562 ASSERT_EQ(0, rename(file1_s2d3, dir_s1d3)); in TEST_F_FORK()
2569 ASSERT_EQ(0, rename(file1_s1d3, file1_s2d3)); in TEST_F_FORK()
2577 ASSERT_EQ(-1, rename(dir_s1d3, file1_s2d2)); in TEST_F_FORK()
2578 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2584 ASSERT_EQ(-1, rename(dir_s1d3, file1_s2d3)); in TEST_F_FORK()
2585 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2592 ASSERT_EQ(-1, rename(file2_s1d3, file1_s2d3)); in TEST_F_FORK()
2593 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2601 ASSERT_EQ(-1, rename(file1_s1d1, file1_s2d2)); in TEST_F_FORK()
2602 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2603 ASSERT_EQ(-1, rename(file1_s1d2, file1_s2d2)); in TEST_F_FORK()
2604 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2605 ASSERT_EQ(-1, rename(file1_s1d1, file1_s2d3)); in TEST_F_FORK()
2606 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2608 ASSERT_EQ(0, rename(file1_s1d2, file1_s2d3)); in TEST_F_FORK()
2611 ASSERT_EQ(-1, rename(dir_s1d1, file1_s2d2)); in TEST_F_FORK()
2612 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2613 ASSERT_EQ(-1, rename(dir_s1d2, file1_s2d2)); in TEST_F_FORK()
2614 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2619 ASSERT_EQ(-1, rename(file1_s1d1, file1_s2d2)); in TEST_F_FORK()
2620 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2622 ASSERT_EQ(-1, rename(file2_s1d2, file1_s2d2)); in TEST_F_FORK()
2623 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2624 ASSERT_EQ(-1, rename(file1_s1d1, file1_s2d3)); in TEST_F_FORK()
2625 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2630 ASSERT_EQ(-1, rename(file2_s1d2, file1_s2d3)); in TEST_F_FORK()
2631 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2634 ASSERT_EQ(-1, rename(dir_s1d1, file1_s2d2)); in TEST_F_FORK()
2635 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2636 ASSERT_EQ(-1, rename(dir_s1d2, file1_s2d2)); in TEST_F_FORK()
2637 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2645 ASSERT_EQ(0, unlink(file1_s1d2)); in TEST_F_FORK()
2646 ASSERT_EQ(0, mkdir(file1_s1d2, 0700)); in TEST_F_FORK()
2647 ASSERT_EQ(0, unlink(file2_s2d3)); in TEST_F_FORK()
2648 ASSERT_EQ(0, mkdir(file2_s2d3, 0700)); in TEST_F_FORK()
2653 ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s1d1, AT_FDCWD, file1_s2d3, in TEST_F_FORK()
2655 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2656 ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d3, AT_FDCWD, file1_s1d1, in TEST_F_FORK()
2658 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2664 ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_file1_s1d2, AT_FDCWD, in TEST_F_FORK()
2666 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2667 ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_file2_s2d3, AT_FDCWD, in TEST_F_FORK()
2669 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2672 ASSERT_EQ(0, renameat2(AT_FDCWD, dir_s1d3, AT_FDCWD, dir_s2d3, in TEST_F_FORK()
2674 ASSERT_EQ(0, renameat2(AT_FDCWD, dir_s2d3, AT_FDCWD, dir_s1d3, in TEST_F_FORK()
2678 ASSERT_EQ(0, renameat2(AT_FDCWD, dir_s2d3, AT_FDCWD, dir_file1_s1d2, in TEST_F_FORK()
2680 ASSERT_EQ(0, renameat2(AT_FDCWD, dir_file1_s1d2, AT_FDCWD, dir_s2d3, in TEST_F_FORK()
2693 ASSERT_EQ(0, renameat2(AT_FDCWD, file1_s2d2, AT_FDCWD, dir_file2_s2d3, in TEST_F_FORK()
2700 ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_file2_s2d3, AT_FDCWD, file1_s2d2, in TEST_F_FORK()
2702 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2703 ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d2, AT_FDCWD, dir_file2_s2d3, in TEST_F_FORK()
2705 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2710 ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s1d1, AT_FDCWD, file1_s2d3, in TEST_F_FORK()
2712 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2713 ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d3, AT_FDCWD, file1_s1d1, in TEST_F_FORK()
2715 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2718 ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_file1_s1d2, AT_FDCWD, in TEST_F_FORK()
2720 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2721 ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_file2_s2d3, AT_FDCWD, in TEST_F_FORK()
2723 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2726 ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_s1d3, AT_FDCWD, dir_s2d3, in TEST_F_FORK()
2729 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2730 ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_s2d3, AT_FDCWD, dir_s1d3, in TEST_F_FORK()
2732 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2735 ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_s2d3, AT_FDCWD, dir_file1_s1d2, in TEST_F_FORK()
2738 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2739 ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_file1_s1d2, AT_FDCWD, dir_s2d3, in TEST_F_FORK()
2741 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2750 ASSERT_EQ(0, unlink(file2_s2d3)); in TEST_F_FORK()
2751 ASSERT_EQ(0, mkdir(file2_s2d3, 0700)); in TEST_F_FORK()
2757 ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d2, AT_FDCWD, dir_file2_s2d3, in TEST_F_FORK()
2759 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2760 ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_file2_s2d3, AT_FDCWD, file1_s2d2, in TEST_F_FORK()
2762 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2769 ASSERT_EQ(0, unlink(file2_s2d3)); in TEST_F_FORK()
2770 ASSERT_EQ(0, mkdir(file2_s2d3, 0700)); in TEST_F_FORK()
2779 ASSERT_EQ(0, renameat2(AT_FDCWD, dir_file2_s2d3, AT_FDCWD, file1_s2d2, in TEST_F_FORK()
2781 ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d2, AT_FDCWD, dir_file2_s2d3, in TEST_F_FORK()
2783 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2784 ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_file2_s2d3, AT_FDCWD, file1_s2d2, in TEST_F_FORK()
2786 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2816 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
2819 ASSERT_EQ(-1, rename(file1_s1d1, dir_s2d2)); in TEST_F_FORK()
2820 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2821 ASSERT_EQ(-1, rename(dir_s2d2, file1_s1d1)); in TEST_F_FORK()
2822 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2823 ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s1d1, AT_FDCWD, dir_s2d2, in TEST_F_FORK()
2825 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2826 ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s1d1, AT_FDCWD, dir_s2d3, in TEST_F_FORK()
2828 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2831 ASSERT_EQ(-1, rename(file1_s2d1, dir_s1d2)); in TEST_F_FORK()
2832 ASSERT_EQ(EISDIR, errno); in TEST_F_FORK()
2833 ASSERT_EQ(-1, rename(dir_s1d2, file1_s2d1)); in TEST_F_FORK()
2834 ASSERT_EQ(ENOTDIR, errno); in TEST_F_FORK()
2835 ASSERT_EQ(-1, rename(dir_s1d3, file1_s2d1)); in TEST_F_FORK()
2836 ASSERT_EQ(ENOTDIR, errno); in TEST_F_FORK()
2837 ASSERT_EQ(0, unlink(file1_s2d1)); in TEST_F_FORK()
2838 ASSERT_EQ(0, unlink(file1_s1d3)); in TEST_F_FORK()
2839 ASSERT_EQ(0, unlink(file2_s1d3)); in TEST_F_FORK()
2840 ASSERT_EQ(0, rename(dir_s1d3, file1_s2d1)); in TEST_F_FORK()
2843 ASSERT_EQ(0, mkdir(dir_s1d3, 0700)); in TEST_F_FORK()
2844 ASSERT_EQ(0, renameat2(AT_FDCWD, file1_s2d2, AT_FDCWD, dir_s1d3, in TEST_F_FORK()
2846 ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d2, AT_FDCWD, dir_s1d3, in TEST_F_FORK()
2848 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2890 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
2892 ASSERT_EQ(-1, rename(file1_s1d2, file1_s2d1)); in TEST_F_FORK()
2893 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2898 ASSERT_EQ(-1, rename(file1_s1d2, file1_s2d3)); in TEST_F_FORK()
2899 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2905 ASSERT_EQ(0, rename(file1_s1d2, file1_s2d2)); in TEST_F_FORK()
2906 ASSERT_EQ(0, rename(file1_s2d2, file1_s1d2)); in TEST_F_FORK()
2908 ASSERT_EQ(-1, rename(dir_s1d3, file1_s2d1)); in TEST_F_FORK()
2909 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2914 ASSERT_EQ(-1, rename(dir_s1d3, file1_s2d3)); in TEST_F_FORK()
2915 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2921 ASSERT_EQ(0, rename(dir_s1d3, file1_s2d2)); in TEST_F_FORK()
2922 ASSERT_EQ(0, rename(file1_s2d2, dir_s1d3)); in TEST_F_FORK()
2930 ASSERT_EQ(0, rename(file1_s2d3, file2_s1d2)); in TEST_F_FORK()
2931 ASSERT_EQ(-1, rename(file2_s1d2, file1_s2d3)); in TEST_F_FORK()
2932 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2933 ASSERT_EQ(0, unlink(file2_s1d2)); in TEST_F_FORK()
2934 ASSERT_EQ(0, unlink(file2_s2d3)); in TEST_F_FORK()
2939 ASSERT_EQ(0, rename(dir_s2d3, file2_s1d2)); in TEST_F_FORK()
2940 ASSERT_EQ(-1, rename(file2_s1d2, dir_s2d3)); in TEST_F_FORK()
2941 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
2958 ASSERT_EQ(0, unlink(file1_s1d1)); in TEST_F_FORK()
2959 ASSERT_EQ(0, unlink(file1_s1d2)); in TEST_F_FORK()
2960 ASSERT_EQ(0, unlink(file1_s1d3)); in TEST_F_FORK()
2961 ASSERT_EQ(0, unlink(file2_s1d3)); in TEST_F_FORK()
2964 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
2966 ASSERT_EQ(0, rmdir(dir_s1d3)); in TEST_F_FORK()
2967 ASSERT_EQ(0, mkdir(dir_s1d3, 0700)); in TEST_F_FORK()
2968 ASSERT_EQ(0, unlinkat(AT_FDCWD, dir_s1d3, AT_REMOVEDIR)); in TEST_F_FORK()
2971 ASSERT_EQ(-1, rmdir(dir_s1d2)); in TEST_F_FORK()
2972 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2973 ASSERT_EQ(-1, unlinkat(AT_FDCWD, dir_s1d2, AT_REMOVEDIR)); in TEST_F_FORK()
2974 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2975 ASSERT_EQ(-1, rmdir(dir_s1d1)); in TEST_F_FORK()
2976 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2977 ASSERT_EQ(-1, unlinkat(AT_FDCWD, dir_s1d1, AT_REMOVEDIR)); in TEST_F_FORK()
2978 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2995 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
2997 ASSERT_EQ(-1, unlink(file1_s1d1)); in TEST_F_FORK()
2998 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
2999 ASSERT_EQ(-1, unlinkat(AT_FDCWD, file1_s1d1, 0)); in TEST_F_FORK()
3000 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
3001 ASSERT_EQ(0, unlink(file1_s1d2)); in TEST_F_FORK()
3002 ASSERT_EQ(0, unlinkat(AT_FDCWD, file1_s1d3, 0)); in TEST_F_FORK()
3020 ASSERT_EQ(0, unlink(file1_s1d1)); in test_make_file()
3021 ASSERT_EQ(0, unlink(file2_s1d1)); in test_make_file()
3022 ASSERT_EQ(0, mknod(file2_s1d1, mode | 0400, dev)) in test_make_file()
3028 ASSERT_EQ(0, unlink(file1_s1d2)); in test_make_file()
3029 ASSERT_EQ(0, unlink(file2_s1d2)); in test_make_file()
3031 ASSERT_EQ(0, unlink(file1_s1d3)); in test_make_file()
3032 ASSERT_EQ(0, unlink(file2_s1d3)); in test_make_file()
3035 ASSERT_EQ(0, close(ruleset_fd)); in test_make_file()
3037 ASSERT_EQ(-1, mknod(file1_s1d1, mode | 0400, dev)); in test_make_file()
3038 ASSERT_EQ(EACCES, errno); in test_make_file()
3039 ASSERT_EQ(-1, link(file2_s1d1, file1_s1d1)); in test_make_file()
3040 ASSERT_EQ(EACCES, errno); in test_make_file()
3041 ASSERT_EQ(-1, rename(file2_s1d1, file1_s1d1)); in test_make_file()
3042 ASSERT_EQ(EACCES, errno); in test_make_file()
3044 ASSERT_EQ(0, mknod(file1_s1d2, mode | 0400, dev)) in test_make_file()
3049 ASSERT_EQ(0, link(file1_s1d2, file2_s1d2)); in test_make_file()
3050 ASSERT_EQ(0, unlink(file2_s1d2)); in test_make_file()
3051 ASSERT_EQ(0, rename(file1_s1d2, file2_s1d2)); in test_make_file()
3053 ASSERT_EQ(0, mknod(file1_s1d3, mode | 0400, dev)); in test_make_file()
3054 ASSERT_EQ(0, link(file1_s1d3, file2_s1d3)); in test_make_file()
3055 ASSERT_EQ(0, unlink(file2_s1d3)); in test_make_file()
3056 ASSERT_EQ(0, rename(file1_s1d3, file2_s1d3)); in test_make_file()
3109 ASSERT_EQ(0, unlink(file1_s1d1)); in TEST_F_FORK()
3110 ASSERT_EQ(0, unlink(file2_s1d1)); in TEST_F_FORK()
3111 ASSERT_EQ(0, symlink("none", file2_s1d1)); in TEST_F_FORK()
3113 ASSERT_EQ(0, unlink(file1_s1d2)); in TEST_F_FORK()
3114 ASSERT_EQ(0, unlink(file2_s1d2)); in TEST_F_FORK()
3116 ASSERT_EQ(0, unlink(file1_s1d3)); in TEST_F_FORK()
3117 ASSERT_EQ(0, unlink(file2_s1d3)); in TEST_F_FORK()
3120 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
3122 ASSERT_EQ(-1, symlink("none", file1_s1d1)); in TEST_F_FORK()
3123 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
3124 ASSERT_EQ(-1, link(file2_s1d1, file1_s1d1)); in TEST_F_FORK()
3125 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
3126 ASSERT_EQ(-1, rename(file2_s1d1, file1_s1d1)); in TEST_F_FORK()
3127 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
3129 ASSERT_EQ(0, symlink("none", file1_s1d2)); in TEST_F_FORK()
3130 ASSERT_EQ(0, link(file1_s1d2, file2_s1d2)); in TEST_F_FORK()
3131 ASSERT_EQ(0, unlink(file2_s1d2)); in TEST_F_FORK()
3132 ASSERT_EQ(0, rename(file1_s1d2, file2_s1d2)); in TEST_F_FORK()
3134 ASSERT_EQ(0, symlink("none", file1_s1d3)); in TEST_F_FORK()
3135 ASSERT_EQ(0, link(file1_s1d3, file2_s1d3)); in TEST_F_FORK()
3136 ASSERT_EQ(0, unlink(file2_s1d3)); in TEST_F_FORK()
3137 ASSERT_EQ(0, rename(file1_s1d3, file2_s1d3)); in TEST_F_FORK()
3154 ASSERT_EQ(0, unlink(file1_s1d1)); in TEST_F_FORK()
3155 ASSERT_EQ(0, unlink(file1_s1d2)); in TEST_F_FORK()
3156 ASSERT_EQ(0, unlink(file1_s1d3)); in TEST_F_FORK()
3159 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
3162 ASSERT_EQ(-1, mkdir(file1_s1d1, 0700)); in TEST_F_FORK()
3163 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
3164 ASSERT_EQ(0, mkdir(file1_s1d2, 0700)); in TEST_F_FORK()
3165 ASSERT_EQ(0, mkdir(file1_s1d3, 0700)); in TEST_F_FORK()
3197 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
3199 ASSERT_EQ(EACCES, test_open(file1_s1d2, O_RDWR)); in TEST_F_FORK()
3200 ASSERT_EQ(0, test_open(file1_s1d2, O_RDONLY)); in TEST_F_FORK()
3203 ASSERT_EQ(0, unlink(file1_s1d2)); in TEST_F_FORK()
3207 ASSERT_EQ(0, close(proc_fd)); in TEST_F_FORK()
3210 ASSERT_EQ(-1, proc_fd) in TEST_F_FORK()
3215 ASSERT_EQ(EACCES, errno); in TEST_F_FORK()
3217 ASSERT_EQ(0, close(reg_fd)); in TEST_F_FORK()
3239 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
3242 ASSERT_EQ(0, test_open(file1_s1d2, O_RDWR)); in TEST_F_FORK()
3243 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_RDWR)); in TEST_F_FORK()
3246 ASSERT_EQ(0, pipe2(pipe_fds, O_CLOEXEC)); in TEST_F_FORK()
3247 ASSERT_EQ(1, write(pipe_fds[1], ".", 1)) in TEST_F_FORK()
3251 ASSERT_EQ(1, read(pipe_fds[0], &buf, 1)); in TEST_F_FORK()
3252 ASSERT_EQ('.', buf); in TEST_F_FORK()
3257 ASSERT_EQ(1, write(proc_fd, ".", 1)) in TEST_F_FORK()
3262 ASSERT_EQ(0, close(proc_fd)); in TEST_F_FORK()
3268 ASSERT_EQ(1, read(proc_fd, &buf, 1)) in TEST_F_FORK()
3273 ASSERT_EQ(0, close(proc_fd)); in TEST_F_FORK()
3275 ASSERT_EQ(0, close(pipe_fds[0])); in TEST_F_FORK()
3276 ASSERT_EQ(0, close(pipe_fds[1])); in TEST_F_FORK()
3338 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
3421 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
3467 ASSERT_EQ(0, unlink(file_in_dir_w)); in TEST_F_FORK()
3529 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
3538 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
3548 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
3556 ASSERT_EQ(0, close(fd_layer0)); in TEST_F_FORK()
3557 ASSERT_EQ(0, close(fd_layer1)); in TEST_F_FORK()
3558 ASSERT_EQ(0, close(fd_layer2)); in TEST_F_FORK()
3559 ASSERT_EQ(0, close(fd_layer3)); in TEST_F_FORK()
3647 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
3654 ASSERT_EQ(0, close(fd)); in TEST_F_FORK()
3663 ASSERT_EQ(0, socketpair(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0, in TEST_F_FORK()
3687 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
3690 ASSERT_EQ(variant->expected_open_result, (fd < 0 ? errno : 0)); in TEST_F_FORK()
3693 ASSERT_EQ(0, send_fd(socket_fds[0], fd)); in TEST_F_FORK()
3694 ASSERT_EQ(0, close(fd)); in TEST_F_FORK()
3697 ASSERT_EQ(0, close(socket_fds[0])); in TEST_F_FORK()
3709 ASSERT_EQ(0, close(fd)); in TEST_F_FORK()
3712 ASSERT_EQ(child, waitpid(child, &status, 0)); in TEST_F_FORK()
3713 ASSERT_EQ(1, WIFEXITED(status)); in TEST_F_FORK()
3714 ASSERT_EQ(EXIT_SUCCESS, WEXITSTATUS(status)); in TEST_F_FORK()
3716 ASSERT_EQ(0, close(socket_fds[0])); in TEST_F_FORK()
3717 ASSERT_EQ(0, close(socket_fds[1])); in TEST_F_FORK()
3733 ASSERT_EQ(0, close(fd)); in TEST()
3747 ASSERT_EQ(0, mount(dir_s1d2, dir_s2d2, NULL, MS_BIND, NULL)); in FIXTURE_SETUP()
3793 ASSERT_EQ(0, test_open(dir_s1d1, O_RDONLY)); in TEST_F_FORK()
3794 ASSERT_EQ(0, test_open(file1_s1d1, O_RDONLY)); in TEST_F_FORK()
3795 ASSERT_EQ(0, test_open(dir_s1d2, O_RDONLY)); in TEST_F_FORK()
3796 ASSERT_EQ(0, test_open(file1_s1d2, O_RDONLY)); in TEST_F_FORK()
3797 ASSERT_EQ(0, test_open(dir_s1d3, O_RDONLY)); in TEST_F_FORK()
3798 ASSERT_EQ(0, test_open(file1_s1d3, O_RDONLY)); in TEST_F_FORK()
3800 ASSERT_EQ(0, test_open(dir_s2d1, O_RDONLY)); in TEST_F_FORK()
3801 ASSERT_EQ(0, test_open(file1_s2d1, O_RDONLY)); in TEST_F_FORK()
3802 ASSERT_EQ(0, test_open(dir_s2d2, O_RDONLY)); in TEST_F_FORK()
3803 ASSERT_EQ(0, test_open(file1_s2d2, O_RDONLY)); in TEST_F_FORK()
3804 ASSERT_EQ(ENOENT, test_open(dir_s2d3, O_RDONLY)); in TEST_F_FORK()
3805 ASSERT_EQ(ENOENT, test_open(file1_s2d3, O_RDONLY)); in TEST_F_FORK()
3807 ASSERT_EQ(0, test_open(bind_dir_s1d3, O_RDONLY)); in TEST_F_FORK()
3808 ASSERT_EQ(0, test_open(bind_file1_s1d3, O_RDONLY)); in TEST_F_FORK()
3810 ASSERT_EQ(0, test_open(dir_s3d1, O_RDONLY)); in TEST_F_FORK()
3868 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
3871 ASSERT_EQ(0, test_open(file1_s1d1, O_RDONLY)); in TEST_F_FORK()
3872 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_WRONLY)); in TEST_F_FORK()
3873 ASSERT_EQ(0, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
3875 ASSERT_EQ(0, test_open(file1_s1d2, O_RDONLY)); in TEST_F_FORK()
3876 ASSERT_EQ(EACCES, test_open(file1_s1d2, O_WRONLY)); in TEST_F_FORK()
3877 ASSERT_EQ(0, test_open(dir_s1d2, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
3880 ASSERT_EQ(0, test_open(file1_s2d1, O_RDWR)); in TEST_F_FORK()
3881 ASSERT_EQ(0, test_open(dir_s2d1, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
3883 ASSERT_EQ(0, test_open(file1_s2d2, O_RDWR)); in TEST_F_FORK()
3884 ASSERT_EQ(0, test_open(dir_s2d2, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
3890 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
3893 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_RDONLY)); in TEST_F_FORK()
3894 ASSERT_EQ(EACCES, test_open(file1_s1d1, O_WRONLY)); in TEST_F_FORK()
3895 ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
3897 ASSERT_EQ(0, test_open(file1_s1d2, O_RDONLY)); in TEST_F_FORK()
3898 ASSERT_EQ(EACCES, test_open(file1_s1d2, O_WRONLY)); in TEST_F_FORK()
3899 ASSERT_EQ(0, test_open(dir_s1d2, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
3902 ASSERT_EQ(EACCES, test_open(file1_s2d1, O_RDONLY)); in TEST_F_FORK()
3903 ASSERT_EQ(EACCES, test_open(file1_s2d1, O_WRONLY)); in TEST_F_FORK()
3904 ASSERT_EQ(EACCES, test_open(dir_s2d1, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
3906 ASSERT_EQ(0, test_open(file1_s2d2, O_RDWR)); in TEST_F_FORK()
3907 ASSERT_EQ(0, test_open(dir_s2d2, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
3908 ASSERT_EQ(0, test_open(bind_dir_s1d3, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
3914 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
3917 ASSERT_EQ(EACCES, test_open(file1_s1d2, O_RDONLY)); in TEST_F_FORK()
3918 ASSERT_EQ(EACCES, test_open(file1_s1d2, O_WRONLY)); in TEST_F_FORK()
3919 ASSERT_EQ(EACCES, test_open(dir_s1d2, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
3921 ASSERT_EQ(0, test_open(file1_s1d3, O_RDONLY)); in TEST_F_FORK()
3922 ASSERT_EQ(EACCES, test_open(file1_s1d3, O_WRONLY)); in TEST_F_FORK()
3923 ASSERT_EQ(EACCES, test_open(dir_s1d3, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
3926 ASSERT_EQ(EACCES, test_open(file1_s2d2, O_RDONLY)); in TEST_F_FORK()
3927 ASSERT_EQ(EACCES, test_open(file1_s2d2, O_WRONLY)); in TEST_F_FORK()
3928 ASSERT_EQ(EACCES, test_open(dir_s2d2, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
3930 ASSERT_EQ(0, test_open(bind_file1_s1d3, O_RDONLY)); in TEST_F_FORK()
3931 ASSERT_EQ(EACCES, test_open(bind_file1_s1d3, O_WRONLY)); in TEST_F_FORK()
3932 ASSERT_EQ(EACCES, test_open(bind_dir_s1d3, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
3938 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
3941 ASSERT_EQ(EACCES, test_open(file1_s1d3, O_RDONLY)); in TEST_F_FORK()
3942 ASSERT_EQ(EACCES, test_open(file1_s1d3, O_WRONLY)); in TEST_F_FORK()
3945 ASSERT_EQ(EACCES, test_open(bind_file1_s1d3, O_RDONLY)); in TEST_F_FORK()
3946 ASSERT_EQ(EACCES, test_open(bind_file1_s1d3, O_WRONLY)); in TEST_F_FORK()
3969 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
3972 ASSERT_EQ(-1, rename(file1_s1d1, file1_s1d2)); in TEST_F_FORK()
3973 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
3976 ASSERT_EQ(-1, rename(file1_s2d1, file1_s2d2)); in TEST_F_FORK()
3977 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
3980 ASSERT_EQ(-1, rename(file1_s2d2, bind_file1_s1d3)); in TEST_F_FORK()
3981 ASSERT_EQ(EXDEV, errno); in TEST_F_FORK()
3984 ASSERT_EQ(0, rename(bind_file1_s1d3, file1_s2d2)); in TEST_F_FORK()
4129 ASSERT_EQ(0, mount_opt(&mnt_tmp, LOWER_BASE)); in FIXTURE_SETUP()
4139 ASSERT_EQ(0, mount_opt(&mnt_tmp, UPPER_BASE)); in FIXTURE_SETUP()
4146 ASSERT_EQ(0, mkdir(UPPER_WORK, 0700)); in FIXTURE_SETUP()
4151 ASSERT_EQ(0, mount("overlay", MERGE_DATA, "overlay", 0, in FIXTURE_SETUP()
4197 ASSERT_EQ(0, test_open(lower_fl1, O_RDONLY)); in TEST_F_FORK()
4198 ASSERT_EQ(0, test_open(lower_dl1, O_RDONLY)); in TEST_F_FORK()
4199 ASSERT_EQ(0, test_open(lower_dl1_fl2, O_RDONLY)); in TEST_F_FORK()
4200 ASSERT_EQ(0, test_open(lower_fo1, O_RDONLY)); in TEST_F_FORK()
4201 ASSERT_EQ(0, test_open(lower_do1, O_RDONLY)); in TEST_F_FORK()
4202 ASSERT_EQ(0, test_open(lower_do1_fo2, O_RDONLY)); in TEST_F_FORK()
4203 ASSERT_EQ(0, test_open(lower_do1_fl3, O_RDONLY)); in TEST_F_FORK()
4205 ASSERT_EQ(0, test_open(upper_fu1, O_RDONLY)); in TEST_F_FORK()
4206 ASSERT_EQ(0, test_open(upper_du1, O_RDONLY)); in TEST_F_FORK()
4207 ASSERT_EQ(0, test_open(upper_du1_fu2, O_RDONLY)); in TEST_F_FORK()
4208 ASSERT_EQ(0, test_open(upper_fo1, O_RDONLY)); in TEST_F_FORK()
4209 ASSERT_EQ(0, test_open(upper_do1, O_RDONLY)); in TEST_F_FORK()
4210 ASSERT_EQ(0, test_open(upper_do1_fo2, O_RDONLY)); in TEST_F_FORK()
4211 ASSERT_EQ(0, test_open(upper_do1_fu3, O_RDONLY)); in TEST_F_FORK()
4213 ASSERT_EQ(0, test_open(merge_fl1, O_RDONLY)); in TEST_F_FORK()
4214 ASSERT_EQ(0, test_open(merge_dl1, O_RDONLY)); in TEST_F_FORK()
4215 ASSERT_EQ(0, test_open(merge_dl1_fl2, O_RDONLY)); in TEST_F_FORK()
4216 ASSERT_EQ(0, test_open(merge_fu1, O_RDONLY)); in TEST_F_FORK()
4217 ASSERT_EQ(0, test_open(merge_du1, O_RDONLY)); in TEST_F_FORK()
4218 ASSERT_EQ(0, test_open(merge_du1_fu2, O_RDONLY)); in TEST_F_FORK()
4219 ASSERT_EQ(0, test_open(merge_fo1, O_RDONLY)); in TEST_F_FORK()
4220 ASSERT_EQ(0, test_open(merge_do1, O_RDONLY)); in TEST_F_FORK()
4221 ASSERT_EQ(0, test_open(merge_do1_fo2, O_RDONLY)); in TEST_F_FORK()
4222 ASSERT_EQ(0, test_open(merge_do1_fl3, O_RDONLY)); in TEST_F_FORK()
4223 ASSERT_EQ(0, test_open(merge_do1_fu3, O_RDONLY)); in TEST_F_FORK()
4367 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
4371 ASSERT_EQ(0, test_open(path_entry, O_RDONLY)); in TEST_F_FORK()
4372 ASSERT_EQ(EACCES, test_open(path_entry, O_WRONLY)); in TEST_F_FORK()
4375 ASSERT_EQ(EACCES, in TEST_F_FORK()
4379 ASSERT_EQ(0, test_open(path_entry, O_RDONLY)); in TEST_F_FORK()
4380 ASSERT_EQ(EACCES, test_open(path_entry, O_WRONLY)); in TEST_F_FORK()
4384 ASSERT_EQ(0, test_open(path_entry, O_RDONLY)); in TEST_F_FORK()
4385 ASSERT_EQ(EACCES, test_open(path_entry, O_WRONLY)); in TEST_F_FORK()
4388 ASSERT_EQ(EACCES, in TEST_F_FORK()
4392 ASSERT_EQ(0, test_open(path_entry, O_RDONLY)); in TEST_F_FORK()
4393 ASSERT_EQ(EACCES, test_open(path_entry, O_WRONLY)); in TEST_F_FORK()
4402 ASSERT_EQ(0, test_open(path_entry, O_RDWR)); in TEST_F_FORK()
4405 ASSERT_EQ(0, test_open(path_entry, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
4408 ASSERT_EQ(0, test_open(path_entry, O_RDWR)); in TEST_F_FORK()
4415 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
4419 ASSERT_EQ(0, test_open(path_entry, O_RDWR)); in TEST_F_FORK()
4422 ASSERT_EQ(0, test_open(path_entry, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
4425 ASSERT_EQ(0, test_open(path_entry, O_RDWR)); in TEST_F_FORK()
4432 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
4436 ASSERT_EQ(EACCES, test_open(path_entry, O_RDONLY)); in TEST_F_FORK()
4440 ASSERT_EQ(EACCES, test_open(path_entry, O_RDONLY)); in TEST_F_FORK()
4444 ASSERT_EQ(EACCES, test_open(path_entry, O_RDWR)); in TEST_F_FORK()
4447 ASSERT_EQ(0, test_open(path_entry, O_RDONLY | O_DIRECTORY)); in TEST_F_FORK()
4450 ASSERT_EQ(0, test_open(path_entry, O_RDWR)); in TEST_F_FORK()
4457 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
4461 ASSERT_EQ(0, test_open(path_entry, O_RDONLY)); in TEST_F_FORK()
4462 ASSERT_EQ(EACCES, test_open(path_entry, O_WRONLY)); in TEST_F_FORK()
4466 ASSERT_EQ(0, test_open(path_entry, O_RDONLY)); in TEST_F_FORK()
4467 ASSERT_EQ(EACCES, test_open(path_entry, O_WRONLY)); in TEST_F_FORK()
4471 ASSERT_EQ(EACCES, test_open(path_entry, O_RDWR)); in TEST_F_FORK()
4474 ASSERT_EQ(EACCES, in TEST_F_FORK()
4478 ASSERT_EQ(0, test_open(path_entry, O_RDWR)); in TEST_F_FORK()
4485 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
4489 ASSERT_EQ(EACCES, test_open(path_entry, O_RDONLY)); in TEST_F_FORK()
4493 ASSERT_EQ(EACCES, test_open(path_entry, O_RDONLY)); in TEST_F_FORK()
4497 ASSERT_EQ(EACCES, test_open(path_entry, O_RDWR)); in TEST_F_FORK()
4500 ASSERT_EQ(EACCES, in TEST_F_FORK()
4504 ASSERT_EQ(0, test_open(path_entry, O_RDWR)); in TEST_F_FORK()
4750 ASSERT_EQ(0, umount(TMP_DIR)); in TEST_F_FORK()
4755 ASSERT_EQ(0, mount_opt(&mnt_tmp, TMP_DIR)); in TEST_F_FORK()
4759 ASSERT_EQ(0, close(ruleset_fd)); in TEST_F_FORK()
4762 ASSERT_EQ(EACCES, test_open(TMP_DIR, O_RDONLY)); in TEST_F_FORK()