• Home
  • Raw
  • Download

Lines Matching refs:fs

35 namespace fs = boost::filesystem;
69 inline void setenv_(const char* name, const fs::path::value_type* val, int) in setenv_()
120 fs::directory_iterator end_itr;
121 fs::path dir;
122 fs::path d1;
123 fs::path d2;
124 fs::path f0;
125 fs::path f1;
126 fs::path d1f1;
130 fs::path ng(" no-way, Jose");
134 const fs::path temp_dir(fs::unique_path("op-test-%%%%-%%%%"));
136 void create_file(const fs::path & ph, const std::string & contents = std::string()) in create_file()
140 throw fs::filesystem_error("operations_test create_file", in create_file()
145 void verify_file(const fs::path & ph, const std::string & expected) in verify_file()
149 throw fs::filesystem_error("operations_test verify_file", in verify_file()
154 throw fs::filesystem_error("operations_test verify_file contents \"" in verify_file()
163 catch (const fs::filesystem_error & ex) in throws_fs_error()
202 fs::path p; in do_the_right_thing_tests()
205 fs::copy_file(p, p); in do_the_right_thing_tests()
206 fs::copy_file(s, p); in do_the_right_thing_tests()
207 fs::copy_file(a, p); in do_the_right_thing_tests()
208 fs::copy_file(p, s); in do_the_right_thing_tests()
209 fs::copy_file(p, a); in do_the_right_thing_tests()
210 fs::copy_file(s, s); in do_the_right_thing_tests()
211 fs::copy_file(a, s); in do_the_right_thing_tests()
212 fs::copy_file(s, a); in do_the_right_thing_tests()
213 fs::copy_file(a, a); in do_the_right_thing_tests()
219 fs::file_size(" No way, Jose"); in bad_file_size()
224 fs::file_size(fs::current_path()); in bad_directory_size()
227 fs::path bad_create_directory_path;
230 fs::create_directory(bad_create_directory_path); in bad_create_directory()
235 fs::equivalent("no-such-path", "another-not-present-path"); in bad_equivalent()
238 fs::path bad_remove_dir;
241 fs::remove(bad_remove_dir); in bad_remove()
247 renamer(const fs::path & p1, const fs::path & p2) in renamer()
251 fs::rename(from, to); in operator ()()
254 fs::path from;
255 fs::path to;
316 fs::create_directory("no-such-dir/foo/bar"); in exception_tests()
337 fs::create_directory("no-such-dir/foo/bar"); in exception_tests()
355 fs::create_directory("no-such-dir/foo/bar"); in exception_tests()
357 catch (fs::filesystem_error x) in exception_tests()
380 fs::create_directory("no-such-dir/foo/bar"); in exception_tests()
382 catch (const fs::filesystem_error& x) in exception_tests()
411 fs::file_size(ng); // will throw in exception_tests()
413 catch (fs::filesystem_error& ex) in exception_tests()
438 BOOST_TEST(!fs::create_directory(dir)); in create_tree()
439 BOOST_TEST(!fs::is_symlink(dir)); in create_tree()
440 BOOST_TEST(!fs::is_symlink("nosuchfileordirectory")); in create_tree()
442 BOOST_TEST(fs::create_directory(d1)); in create_tree()
443 BOOST_TEST(fs::exists(d1)); in create_tree()
444 BOOST_TEST(fs::is_directory(d1)); in create_tree()
445 BOOST_TEST(fs::is_empty(d1)); in create_tree()
450 BOOST_TEST(fs::exists(d1f1)); in create_tree()
451 BOOST_TEST(!fs::is_directory(d1f1)); in create_tree()
452 BOOST_TEST(fs::is_regular_file(d1f1)); in create_tree()
453 BOOST_TEST(fs::is_empty(d1f1)); in create_tree()
454 BOOST_TEST(fs::file_size(d1f1) == 0); in create_tree()
455 BOOST_TEST(fs::hard_link_count(d1f1) == 1); in create_tree()
460 BOOST_TEST(fs::exists(f0)); in create_tree()
461 BOOST_TEST(!fs::is_directory(f0)); in create_tree()
462 BOOST_TEST(fs::is_regular_file(f0)); in create_tree()
463 BOOST_TEST(fs::is_empty(f0)); in create_tree()
464 BOOST_TEST(fs::file_size(f0) == 0); in create_tree()
465 BOOST_TEST(fs::hard_link_count(f0) == 1); in create_tree()
470 BOOST_TEST(fs::exists(f1)); in create_tree()
471 BOOST_TEST(!fs::is_directory(f1)); in create_tree()
472 BOOST_TEST(fs::is_regular_file(f1)); in create_tree()
473 BOOST_TEST(fs::file_size(f1) == 7); in create_tree()
484 try { fs::directory_iterator it(""); } in directory_iterator_tests()
485 catch (const fs::filesystem_error &) { dir_itr_exception = true; } in directory_iterator_tests()
491 fs::directory_iterator it("", ec); in directory_iterator_tests()
495 try { fs::directory_iterator itx("nosuchdirectory"); } in directory_iterator_tests()
496 catch (const fs::filesystem_error &) { dir_itr_exception = true; } in directory_iterator_tests()
500 fs::directory_iterator it2x("nosuchdirectory", ec); in directory_iterator_tests()
507 fs::directory_iterator itx("nosuchdirectory", ecx); in directory_iterator_tests()
511 catch (const fs::filesystem_error &) { dir_itr_exception = true; } in directory_iterator_tests()
516 fs::create_directory(d2); in directory_iterator_tests()
517 BOOST_TEST(fs::exists(d2)); in directory_iterator_tests()
518 BOOST_TEST(fs::is_directory(d2)); in directory_iterator_tests()
523 typedef std::vector<fs::directory_entry> vec_type; in directory_iterator_tests()
526 fs::directory_iterator it1(dir); in directory_iterator_tests()
527 BOOST_TEST(it1 != fs::directory_iterator()); in directory_iterator_tests()
528 BOOST_TEST(fs::exists(it1->status())); in directory_iterator_tests()
532 fs::directory_iterator it2(dir); in directory_iterator_tests()
533 BOOST_TEST(it2 != fs::directory_iterator()); in directory_iterator_tests()
537 BOOST_TEST(it1 != fs::directory_iterator()); in directory_iterator_tests()
538 BOOST_TEST(fs::exists(it1->status())); in directory_iterator_tests()
545 BOOST_TEST(it1 != fs::directory_iterator()); in directory_iterator_tests()
546 BOOST_TEST(fs::exists(it1->status())); in directory_iterator_tests()
552 BOOST_TEST(it1 != fs::directory_iterator()); in directory_iterator_tests()
553 BOOST_TEST(fs::exists(it1->status())); in directory_iterator_tests()
559 BOOST_TEST(it1 == fs::directory_iterator()); in directory_iterator_tests()
565 BOOST_TEST(it2 != fs::directory_iterator()); in directory_iterator_tests()
566 BOOST_TEST(it1 == fs::directory_iterator()); in directory_iterator_tests()
570 BOOST_TEST(it1 == fs::directory_iterator()); in directory_iterator_tests()
574 BOOST_TEST(it1 == fs::directory_iterator()); in directory_iterator_tests()
575 BOOST_TEST(it2 == fs::directory_iterator()); in directory_iterator_tests()
587 fs::directory_iterator dir_itr(dir); in directory_iterator_tests()
588 BOOST_TEST(dir_itr != fs::directory_iterator()); in directory_iterator_tests()
589 fs::path p = dir_itr->path(); in directory_iterator_tests()
591 BOOST_TEST(dir_itr != fs::directory_iterator()); in directory_iterator_tests()
596 fs::directory_iterator itx(dir); in directory_iterator_tests()
597 fs::directory_iterator itx2(itx); in directory_iterator_tests()
599 const fs::path p1 = (*itx++).path(); in directory_iterator_tests()
601 BOOST_TEST(itx != fs::directory_iterator()); in directory_iterator_tests()
602 const fs::path p2 = (*itx++).path(); in directory_iterator_tests()
609 BOOST_TEST(itx == fs::directory_iterator()); in directory_iterator_tests()
610 BOOST_TEST(itx2 == fs::directory_iterator()); in directory_iterator_tests()
618 fs::path root_name_path(fs::current_path().root_name()); in directory_iterator_tests()
619 fs::directory_iterator itx(root_name_path); in directory_iterator_tests()
620 BOOST_TEST(itx != fs::directory_iterator()); in directory_iterator_tests()
622 BOOST_TEST(fs::exists(itx->path())); in directory_iterator_tests()
629 } while (++itx != fs::directory_iterator()); in directory_iterator_tests()
636 fs::directory_iterator di; in directory_iterator_tests()
638 di = fs::directory_iterator(dir); in directory_iterator_tests()
640 BOOST_TEST(++di != fs::directory_iterator()); in directory_iterator_tests()
653 for (fs::recursive_directory_iterator it (dir, in walk_tree()
654 …recursive ? (fs::directory_options::follow_directory_symlink | fs::directory_options::skip_danglin… in walk_tree()
655 it != fs::recursive_directory_iterator(); in walk_tree()
677 fs::recursive_directory_iterator it(dir, fs::directory_options::none); in recursive_directory_iterator_tests()
678 fs::recursive_directory_iterator it2(it); // test single pass shallow copy semantics in recursive_directory_iterator_tests()
680 it != fs::recursive_directory_iterator(); in recursive_directory_iterator_tests()
702 fs::create_symlink(dir/"f0", dir/"f0_symlink", ec); in iterator_status_tests()
703 fs::create_symlink(dir/"no such file", dir/"dangling_symlink", ec); in iterator_status_tests()
704 fs::create_directory_symlink(dir/"d1", dir/"d1_symlink", ec); in iterator_status_tests()
705 fs::create_directory_symlink(dir/"no such directory", in iterator_status_tests()
708 for (fs::directory_iterator it(dir); in iterator_status_tests()
709 it != fs::directory_iterator(); ++it) in iterator_status_tests()
711 BOOST_TEST(fs::status(it->path()).type() == it->status().type()); in iterator_status_tests()
712 BOOST_TEST(fs::symlink_status(it->path()).type() == it->symlink_status().type()); in iterator_status_tests()
715 BOOST_TEST(fs::is_directory(it->status())); in iterator_status_tests()
716 BOOST_TEST(fs::is_directory(it->symlink_status())); in iterator_status_tests()
720 BOOST_TEST(fs::is_directory(it->status())); in iterator_status_tests()
721 BOOST_TEST(fs::is_directory(it->symlink_status())); in iterator_status_tests()
725 BOOST_TEST(fs::is_regular_file(it->status())); in iterator_status_tests()
726 BOOST_TEST(fs::is_regular_file(it->symlink_status())); in iterator_status_tests()
730 BOOST_TEST(fs::is_regular_file(it->status())); in iterator_status_tests()
731 BOOST_TEST(fs::is_regular_file(it->symlink_status())); in iterator_status_tests()
735 BOOST_TEST(fs::is_regular_file(it->status())); in iterator_status_tests()
736 BOOST_TEST(fs::is_symlink(it->symlink_status())); in iterator_status_tests()
737 BOOST_TEST(fs::is_symlink(*it)); in iterator_status_tests()
741 BOOST_TEST(it->status().type() == fs::file_not_found); in iterator_status_tests()
742 BOOST_TEST(fs::is_symlink(it->symlink_status())); in iterator_status_tests()
746 BOOST_TEST(fs::is_directory(it->status())); in iterator_status_tests()
747 BOOST_TEST(fs::is_symlink(it->symlink_status())); in iterator_status_tests()
751 BOOST_TEST(it->status().type() == fs::file_not_found); in iterator_status_tests()
752 BOOST_TEST(fs::is_symlink(it->symlink_status())); in iterator_status_tests()
764 for (fs::recursive_directory_iterator it (dir); in recursive_iterator_status_tests()
765 it != fs::recursive_directory_iterator(); in recursive_iterator_status_tests()
768 BOOST_TEST(fs::status(it->path()).type() == it->status().type()); in recursive_iterator_status_tests()
769 BOOST_TEST(fs::symlink_status(it->path()).type() == it->symlink_status().type()); in recursive_iterator_status_tests()
779 fs::path from_ph(dir / "f3"); in create_hard_link_tests()
780 fs::path f1x(dir / "f1"); in create_hard_link_tests()
782 BOOST_TEST(!fs::exists(from_ph)); in create_hard_link_tests()
783 BOOST_TEST(fs::exists(f1x)); in create_hard_link_tests()
785 try { fs::create_hard_link(f1x, from_ph); } in create_hard_link_tests()
786 catch (const fs::filesystem_error & ex) in create_hard_link_tests()
801 BOOST_TEST(fs::exists(from_ph)); in create_hard_link_tests()
802 BOOST_TEST(fs::exists(f1x)); in create_hard_link_tests()
803 BOOST_TEST(fs::equivalent(from_ph, f1x)); in create_hard_link_tests()
804 BOOST_TEST(fs::hard_link_count(from_ph) == 2); in create_hard_link_tests()
805 BOOST_TEST(fs::hard_link_count(f1x) == 2); in create_hard_link_tests()
814 fs::create_hard_link(fs::path("doesnotexist"), in create_hard_link_tests()
815 fs::path("shouldnotwork"), ec); in create_hard_link_tests()
825 fs::path from_ph(dir / "f4"); in create_symlink_tests()
826 fs::path f1x(dir / "f1"); in create_symlink_tests()
827 BOOST_TEST(!fs::exists(from_ph)); in create_symlink_tests()
828 BOOST_TEST(fs::exists(f1x)); in create_symlink_tests()
829 try { fs::create_symlink(f1x, from_ph); } in create_symlink_tests()
830 catch (const fs::filesystem_error & ex) in create_symlink_tests()
845 BOOST_TEST(fs::exists(from_ph)); in create_symlink_tests()
846 BOOST_TEST(fs::is_symlink(from_ph)); in create_symlink_tests()
847 BOOST_TEST(fs::exists(f1x)); in create_symlink_tests()
848 BOOST_TEST(fs::equivalent(from_ph, f1x)); in create_symlink_tests()
849 BOOST_TEST(fs::read_symlink(from_ph) == f1x); in create_symlink_tests()
851 fs::file_status stat = fs::symlink_status(from_ph); in create_symlink_tests()
852 BOOST_TEST(fs::exists(stat)); in create_symlink_tests()
853 BOOST_TEST(!fs::is_directory(stat)); in create_symlink_tests()
854 BOOST_TEST(!fs::is_regular_file(stat)); in create_symlink_tests()
855 BOOST_TEST(!fs::is_other(stat)); in create_symlink_tests()
856 BOOST_TEST(fs::is_symlink(stat)); in create_symlink_tests()
858 stat = fs::status(from_ph); in create_symlink_tests()
859 BOOST_TEST(fs::exists(stat)); in create_symlink_tests()
860 BOOST_TEST(!fs::is_directory(stat)); in create_symlink_tests()
861 BOOST_TEST(fs::is_regular_file(stat)); in create_symlink_tests()
862 BOOST_TEST(!fs::is_other(stat)); in create_symlink_tests()
863 BOOST_TEST(!fs::is_symlink(stat)); in create_symlink_tests()
866 fs::path symlink2_ph(dir / "symlink2"); in create_symlink_tests()
867 fs::copy_symlink(from_ph, symlink2_ph); in create_symlink_tests()
868 stat = fs::symlink_status(symlink2_ph); in create_symlink_tests()
869 BOOST_TEST(fs::is_symlink(stat)); in create_symlink_tests()
870 BOOST_TEST(fs::exists(stat)); in create_symlink_tests()
871 BOOST_TEST(!fs::is_directory(stat)); in create_symlink_tests()
872 BOOST_TEST(!fs::is_regular_file(stat)); in create_symlink_tests()
873 BOOST_TEST(!fs::is_other(stat)); in create_symlink_tests()
877 fs::create_symlink("doesnotexist", "", ec); in create_symlink_tests()
887 fs::path p(dir / "permissions.txt"); in permissions_tests()
892 cout << " fs::status(p).permissions() " << std::oct << fs::status(p).permissions() in permissions_tests()
894 BOOST_TEST((fs::status(p).permissions() & 0600) == 0600); // 0644, 0664 sometimes returned in permissions_tests()
896 fs::permissions(p, fs::owner_all); in permissions_tests()
897 BOOST_TEST(fs::status(p).permissions() == fs::owner_all); in permissions_tests()
899 fs::permissions(p, fs::add_perms | fs::group_all); in permissions_tests()
900 BOOST_TEST(fs::status(p).permissions() == (fs::owner_all | fs::group_all)); in permissions_tests()
902 fs::permissions(p, fs::remove_perms | fs::group_all); in permissions_tests()
903 BOOST_TEST(fs::status(p).permissions() == fs::owner_all); in permissions_tests()
907 for (fs::directory_iterator itr(dir); itr != fs::directory_iterator(); ++itr) in permissions_tests()
908 if (itr->path().filename() == fs::path("permissions.txt")) in permissions_tests()
909 BOOST_TEST(itr->status().permissions() == fs::owner_all); in permissions_tests()
913 BOOST_TEST(fs::status(p).permissions() == fs::owner_all); in permissions_tests()
914 fs::path p2(dir / "permissions-symlink.txt"); in permissions_tests()
915 fs::create_symlink(p, p2); in permissions_tests()
917 cout << " status(p).permissions() " << fs::status(p).permissions() << endl; in permissions_tests()
918 cout << " status(p2).permissions() " << fs::status(p).permissions() << endl; in permissions_tests()
919 fs::permissions(p2, fs::add_perms | fs::others_read); in permissions_tests()
920 cout << " status(p).permissions(): " << fs::status(p).permissions() << endl; in permissions_tests()
921 cout << " status(p2).permissions(): " << fs::status(p2).permissions() << endl; in permissions_tests()
928 BOOST_TEST(fs::status(p).permissions() == 0666); in permissions_tests()
929 fs::permissions(p, fs::remove_perms | fs::group_write); in permissions_tests()
930 BOOST_TEST(fs::status(p).permissions() == 0444); in permissions_tests()
931 fs::permissions(p, fs::add_perms | fs::group_write); in permissions_tests()
932 BOOST_TEST(fs::status(p).permissions() == 0666); in permissions_tests()
942 fs::path f1x(dir / "f1"); in rename_tests()
943 BOOST_TEST(fs::exists(f1x)); in rename_tests()
946 BOOST_TEST(!fs::exists(d1 / "f99")); in rename_tests()
947 BOOST_TEST(!fs::exists(d1 / "f98")); in rename_tests()
950 renamer n1b(fs::path(""), d1 / "f98"); in rename_tests()
960 fs::rename(dir / "ff2", dir / "ff1"); in rename_tests()
961 BOOST_TEST(fs::exists(dir / "ff1")); in rename_tests()
963 BOOST_TEST(!fs::exists(dir / "ff2")); in rename_tests()
966 BOOST_TEST(fs::exists(dir / "f1")); in rename_tests()
967 fs::rename(dir / "f1", dir / "f1"); in rename_tests()
968 BOOST_TEST(fs::exists(dir / "f1")); in rename_tests()
971 BOOST_TEST(fs::exists(dir / "f1")); in rename_tests()
972 BOOST_TEST(fs::exists(d1 / "f2")); in rename_tests()
979 BOOST_TEST(!fs::is_directory(dir / "f1")); in rename_tests()
980 BOOST_TEST(!fs::exists(dir / "d3/f3")); in rename_tests()
985 BOOST_TEST(fs::exists(d1 / "f2")); in rename_tests()
986 BOOST_TEST(!fs::exists(d1 / "f50")); in rename_tests()
987 fs::rename(d1 / "f2", d1 / "f50"); in rename_tests()
988 BOOST_TEST(!fs::exists(d1 / "f2")); in rename_tests()
989 BOOST_TEST(fs::exists(d1 / "f50")); in rename_tests()
990 fs::rename(d1 / "f50", d1 / "f2"); in rename_tests()
991 BOOST_TEST(fs::exists(d1 / "f2")); in rename_tests()
992 BOOST_TEST(!fs::exists(d1 / "f50")); in rename_tests()
995 fs::rename(d1 / "f2", d2 / "f3"); in rename_tests()
996 BOOST_TEST(!fs::exists(d1 / "f2")); in rename_tests()
997 BOOST_TEST(!fs::exists(d2 / "f2")); in rename_tests()
998 BOOST_TEST(fs::exists(d2 / "f3")); in rename_tests()
999 BOOST_TEST(!fs::is_directory(d2 / "f3")); in rename_tests()
1001 fs::rename(d2 / "f3", d1 / "f2"); in rename_tests()
1002 BOOST_TEST(fs::exists(d1 / "f2")); in rename_tests()
1005 BOOST_TEST(fs::exists(d1)); in rename_tests()
1006 BOOST_TEST(!fs::exists(dir / "d3/d5")); in rename_tests()
1007 BOOST_TEST(!fs::exists(dir / "d3")); in rename_tests()
1012 fs::path d3(dir / "d3"); in rename_tests()
1013 BOOST_TEST(fs::exists(d1)); in rename_tests()
1014 BOOST_TEST(fs::exists(d1 / "f2")); in rename_tests()
1015 BOOST_TEST(!fs::exists(d3)); in rename_tests()
1016 fs::rename(d1, d3); in rename_tests()
1017 BOOST_TEST(!fs::exists(d1)); in rename_tests()
1018 BOOST_TEST(fs::exists(d3)); in rename_tests()
1019 BOOST_TEST(fs::is_directory(d3)); in rename_tests()
1020 BOOST_TEST(!fs::exists(d1 / "f2")); in rename_tests()
1021 BOOST_TEST(fs::exists(d3 / "f2")); in rename_tests()
1022 fs::rename(d3, d1); in rename_tests()
1023 BOOST_TEST(fs::exists(d1)); in rename_tests()
1024 BOOST_TEST(fs::exists(d1 / "f2")); in rename_tests()
1025 BOOST_TEST(!fs::exists(d3)); in rename_tests()
1028 BOOST_TEST(fs::exists(d1)); in rename_tests()
1029 BOOST_TEST(!fs::exists(d2 / "d20")); in rename_tests()
1030 BOOST_TEST(fs::exists(d1 / "f2")); in rename_tests()
1031 fs::rename(d1, d2 / "d20"); in rename_tests()
1032 BOOST_TEST(!fs::exists(d1)); in rename_tests()
1033 BOOST_TEST(fs::exists(d2 / "d20")); in rename_tests()
1034 BOOST_TEST(fs::exists(d2 / "d20" / "f2")); in rename_tests()
1035 fs::rename(d2 / "d20", d1); in rename_tests()
1036 BOOST_TEST(fs::exists(d1)); in rename_tests()
1037 BOOST_TEST(!fs::exists(d2 / "d20")); in rename_tests()
1038 BOOST_TEST(fs::exists(d1 / "f2")); in rename_tests()
1047 BOOST_TEST(!fs::exists(ng)); in predicate_and_status_tests()
1048 BOOST_TEST(!fs::is_directory(ng)); in predicate_and_status_tests()
1049 BOOST_TEST(!fs::is_regular_file(ng)); in predicate_and_status_tests()
1050 BOOST_TEST(!fs::is_symlink(ng)); in predicate_and_status_tests()
1051 fs::file_status stat(fs::status(ng)); in predicate_and_status_tests()
1052 BOOST_TEST(fs::type_present(stat)); in predicate_and_status_tests()
1053 BOOST_TEST(fs::permissions_present(stat)); in predicate_and_status_tests()
1054 BOOST_TEST(fs::status_known(stat)); in predicate_and_status_tests()
1055 BOOST_TEST(!fs::exists(stat)); in predicate_and_status_tests()
1056 BOOST_TEST(!fs::is_directory(stat)); in predicate_and_status_tests()
1057 BOOST_TEST(!fs::is_regular_file(stat)); in predicate_and_status_tests()
1058 BOOST_TEST(!fs::is_other(stat)); in predicate_and_status_tests()
1059 BOOST_TEST(!fs::is_symlink(stat)); in predicate_and_status_tests()
1060 stat = fs::status(""); in predicate_and_status_tests()
1061 BOOST_TEST(fs::type_present(stat)); in predicate_and_status_tests()
1062 BOOST_TEST(fs::permissions_present(stat)); in predicate_and_status_tests()
1063 BOOST_TEST(fs::status_known(stat)); in predicate_and_status_tests()
1064 BOOST_TEST(!fs::exists(stat)); in predicate_and_status_tests()
1065 BOOST_TEST(!fs::is_directory(stat)); in predicate_and_status_tests()
1066 BOOST_TEST(!fs::is_regular_file(stat)); in predicate_and_status_tests()
1067 BOOST_TEST(!fs::is_other(stat)); in predicate_and_status_tests()
1068 BOOST_TEST(!fs::is_symlink(stat)); in predicate_and_status_tests()
1078 BOOST_TEST(!fs::create_directory("", ec)); in create_directory_tests()
1083 BOOST_TEST(!fs::create_directory(" ", ec)); // OK on Linux in create_directory_tests()
1088 BOOST_TEST(!fs::create_directory("/", ec)); in create_directory_tests()
1090 BOOST_TEST(fs::is_directory("/")); // this is a post-condition in create_directory_tests()
1093 BOOST_TEST(!fs::create_directory(".", ec)); in create_directory_tests()
1097 BOOST_TEST(!fs::create_directory("..", ec)); in create_directory_tests()
1105 fs::create_directory(dir); in create_directory_tests()
1108 catch (const fs::filesystem_error & x) in create_directory_tests()
1126 BOOST_TEST(fs::exists(dir)); in create_directory_tests()
1127 BOOST_TEST(fs::is_empty(dir)); in create_directory_tests()
1128 BOOST_TEST(fs::is_directory(dir)); in create_directory_tests()
1129 BOOST_TEST(!fs::is_regular_file(dir)); in create_directory_tests()
1130 BOOST_TEST(!fs::is_other(dir)); in create_directory_tests()
1131 BOOST_TEST(!fs::is_symlink(dir)); in create_directory_tests()
1132 fs::file_status stat = fs::status(dir); in create_directory_tests()
1133 BOOST_TEST(fs::exists(stat)); in create_directory_tests()
1134 BOOST_TEST(fs::is_directory(stat)); in create_directory_tests()
1135 BOOST_TEST(!fs::is_regular_file(stat)); in create_directory_tests()
1136 BOOST_TEST(!fs::is_other(stat)); in create_directory_tests()
1137 BOOST_TEST(!fs::is_symlink(stat)); in create_directory_tests()
1149 fs::path original_dir = fs::current_path(); in current_directory_tests()
1151 fs::current_path(dir); in current_directory_tests()
1152 BOOST_TEST(fs::current_path() == dir); in current_directory_tests()
1153 BOOST_TEST(fs::current_path() != original_dir); in current_directory_tests()
1154 fs::current_path(original_dir); in current_directory_tests()
1155 BOOST_TEST(fs::current_path() == original_dir); in current_directory_tests()
1156 BOOST_TEST(fs::current_path() != dir); in current_directory_tests()
1159 fs::current_path(dir.c_str()); in current_directory_tests()
1160 BOOST_TEST(fs::current_path() == dir); in current_directory_tests()
1161 BOOST_TEST(fs::current_path() != original_dir); in current_directory_tests()
1162 fs::current_path(original_dir.string()); in current_directory_tests()
1163 BOOST_TEST(fs::current_path() == original_dir); in current_directory_tests()
1164 BOOST_TEST(fs::current_path() != dir); in current_directory_tests()
1174 BOOST_TEST(!fs::create_directories("", ec)); in create_directories_tests()
1180 BOOST_TEST(!fs::create_directories(" ", ec)); in create_directories_tests()
1185 BOOST_TEST(!fs::create_directories("/", ec)); in create_directories_tests()
1189 BOOST_TEST(!fs::create_directories(".", ec)); in create_directories_tests()
1193 BOOST_TEST(!fs::create_directories("..", ec)); in create_directories_tests()
1198 BOOST_TEST(!fs::create_directories("/foo", ec)); // may be OK on Windows in create_directories_tests()
1203 fs::path p = dir / "level1/." / "level2/./.." / "level3/"; in create_directories_tests()
1208 BOOST_TEST(!fs::exists(p)); in create_directories_tests()
1209 BOOST_TEST(fs::create_directories(p)); in create_directories_tests()
1210 BOOST_TEST(fs::exists(p)); in create_directories_tests()
1211 BOOST_TEST(fs::is_directory(p)); in create_directories_tests()
1213 if (fs::exists("/permissions_test")) in create_directories_tests()
1215 BOOST_TEST(!fs::create_directories("/permissions_test", ec)); in create_directories_tests()
1216 BOOST_TEST(!fs::create_directories("/permissions_test/another_directory", ec)); in create_directories_tests()
1227 fs::path p(dir / "resize_file_test.txt"); in resize_file_tests()
1229 fs::remove(p); in resize_file_tests()
1232 BOOST_TEST(fs::exists(p)); in resize_file_tests()
1233 BOOST_TEST_EQ(fs::file_size(p), 10U); in resize_file_tests()
1234 fs::resize_file(p, 5); in resize_file_tests()
1235 BOOST_TEST(fs::exists(p)); in resize_file_tests()
1236 BOOST_TEST_EQ(fs::file_size(p), 5U); in resize_file_tests()
1237 fs::resize_file(p, 15); in resize_file_tests()
1238 BOOST_TEST(fs::exists(p)); in resize_file_tests()
1239 BOOST_TEST_EQ(fs::file_size(p), 15U); in resize_file_tests()
1242 fs::resize_file("no such file", 15, ec); in resize_file_tests()
1251 fs::path p ("nosuch"); in status_of_nonexistent_tests()
1252 BOOST_TEST(!fs::exists(p)); in status_of_nonexistent_tests()
1253 BOOST_TEST(!fs::is_regular_file(p)); in status_of_nonexistent_tests()
1254 BOOST_TEST(!fs::is_directory(p)); in status_of_nonexistent_tests()
1255 BOOST_TEST(!fs::is_symlink(p)); in status_of_nonexistent_tests()
1256 BOOST_TEST(!fs::is_other(p)); in status_of_nonexistent_tests()
1258 fs::file_status s = fs::status(p); in status_of_nonexistent_tests()
1259 BOOST_TEST(!fs::exists(s)); in status_of_nonexistent_tests()
1260 BOOST_TEST_EQ(s.type(), fs::file_not_found); in status_of_nonexistent_tests()
1261 BOOST_TEST(fs::type_present(s)); in status_of_nonexistent_tests()
1262 BOOST_TEST(!fs::is_regular_file(s)); in status_of_nonexistent_tests()
1263 BOOST_TEST(!fs::is_directory(s)); in status_of_nonexistent_tests()
1264 BOOST_TEST(!fs::is_symlink(s)); in status_of_nonexistent_tests()
1265 BOOST_TEST(!fs::is_other(s)); in status_of_nonexistent_tests()
1269 BOOST_TEST(!fs::is_directory(dir / "no-such-directory", ec)); in status_of_nonexistent_tests()
1273 BOOST_TEST(!fs::is_directory(dir / "no-such-directory" / "bar", ec)); in status_of_nonexistent_tests()
1290 fs::file_status s = fs::status(".",ec); in status_error_reporting_tests()
1293 BOOST_TEST(fs::exists(s)); in status_error_reporting_tests()
1294 BOOST_TEST(fs::is_directory(s)); in status_error_reporting_tests()
1297 fs::path p ("nosuch"); in status_error_reporting_tests()
1299 s = fs::status(p,ec); in status_error_reporting_tests()
1303 BOOST_TEST(!fs::exists(s)); in status_error_reporting_tests()
1304 BOOST_TEST_EQ(s.type(), fs::file_not_found); in status_error_reporting_tests()
1305 BOOST_TEST(fs::type_present(s)); in status_error_reporting_tests()
1306 BOOST_TEST(!fs::is_regular_file(s)); in status_error_reporting_tests()
1307 BOOST_TEST(!fs::is_directory(s)); in status_error_reporting_tests()
1308 BOOST_TEST(!fs::is_symlink(s)); in status_error_reporting_tests()
1309 BOOST_TEST(!fs::is_other(s)); in status_error_reporting_tests()
1313 BOOST_TEST(fs::exists(".", ec)); in status_error_reporting_tests()
1317 BOOST_TEST(!fs::is_regular_file(".", ec)); in status_error_reporting_tests()
1321 BOOST_TEST(fs::is_directory(".", ec)); in status_error_reporting_tests()
1327 BOOST_TEST(!fs::exists(p, ec)); in status_error_reporting_tests()
1331 BOOST_TEST(!fs::is_regular_file(p, ec)); in status_error_reporting_tests()
1335 BOOST_TEST(!fs::is_directory(p, ec)); in status_error_reporting_tests()
1342 void remove_tests(const fs::path& dirx) in remove_tests()
1347 fs::path f1x = dirx / "shortlife"; in remove_tests()
1348 BOOST_TEST(!fs::exists(f1x)); in remove_tests()
1350 BOOST_TEST(fs::exists(f1x)); in remove_tests()
1351 BOOST_TEST(!fs::is_directory(f1x)); in remove_tests()
1352 BOOST_TEST(fs::remove(f1x)); in remove_tests()
1353 BOOST_TEST(!fs::exists(f1x)); in remove_tests()
1354 BOOST_TEST(!fs::remove("no-such-file")); in remove_tests()
1355 BOOST_TEST(!fs::remove("no-such-directory/no-such-file")); in remove_tests()
1358 fs::path d1x = dirx / "shortlife_dir"; in remove_tests()
1359 BOOST_TEST(!fs::exists(d1x)); in remove_tests()
1360 fs::create_directory(d1x); in remove_tests()
1361 BOOST_TEST(fs::exists(d1x)); in remove_tests()
1362 BOOST_TEST(fs::is_directory(d1x)); in remove_tests()
1363 BOOST_TEST(fs::is_empty(d1x)); in remove_tests()
1366 BOOST_TEST(fs::remove(d1x)); in remove_tests()
1367 BOOST_TEST(!fs::exists(d1x)); in remove_tests()
1377 fs::path link("dangling_link"); in remove_symlink_tests()
1378 fs::remove(link); // remove any residue from past tests in remove_symlink_tests()
1379 BOOST_TEST(!fs::is_symlink(link)); in remove_symlink_tests()
1380 BOOST_TEST(!fs::exists(link)); in remove_symlink_tests()
1381 fs::create_symlink("nowhere", link); in remove_symlink_tests()
1382 BOOST_TEST(!fs::exists(link)); in remove_symlink_tests()
1383 BOOST_TEST(fs::is_symlink(link)); in remove_symlink_tests()
1384 BOOST_TEST(fs::remove(link)); in remove_symlink_tests()
1385 BOOST_TEST(!fs::is_symlink(link)); in remove_symlink_tests()
1389 fs::remove(link); // remove any residue from past tests in remove_symlink_tests()
1390 BOOST_TEST(!fs::is_symlink(link)); in remove_symlink_tests()
1391 BOOST_TEST(!fs::exists(link)); in remove_symlink_tests()
1392 fs::create_symlink(link, link); in remove_symlink_tests()
1393 BOOST_TEST(fs::remove(link)); in remove_symlink_tests()
1394 BOOST_TEST(!fs::exists(link)); in remove_symlink_tests()
1395 BOOST_TEST(!fs::is_symlink(link)); in remove_symlink_tests()
1399 fs::path link2("link_to_b"); in remove_symlink_tests()
1400 fs::remove(link); // remove any residue from past tests in remove_symlink_tests()
1401 fs::remove(link2); // remove any residue from past tests in remove_symlink_tests()
1402 BOOST_TEST(!fs::is_symlink(link)); in remove_symlink_tests()
1403 BOOST_TEST(!fs::exists(link)); in remove_symlink_tests()
1404 fs::create_symlink(link, link2); in remove_symlink_tests()
1405 fs::create_symlink(link2, link); in remove_symlink_tests()
1406 BOOST_TEST(fs::remove(link)); in remove_symlink_tests()
1407 BOOST_TEST(fs::remove(link2)); in remove_symlink_tests()
1408 BOOST_TEST(!fs::exists(link)); in remove_symlink_tests()
1409 BOOST_TEST(!fs::exists(link2)); in remove_symlink_tests()
1410 BOOST_TEST(!fs::is_symlink(link)); in remove_symlink_tests()
1413 fs::path f1x = "link_target"; in remove_symlink_tests()
1414 fs::remove(f1x); // remove any residue from past tests in remove_symlink_tests()
1415 BOOST_TEST(!fs::exists(f1x)); in remove_symlink_tests()
1417 BOOST_TEST(fs::exists(f1x)); in remove_symlink_tests()
1418 BOOST_TEST(!fs::is_directory(f1x)); in remove_symlink_tests()
1419 BOOST_TEST(fs::is_regular_file(f1x)); in remove_symlink_tests()
1421 fs::create_symlink(f1x, link); in remove_symlink_tests()
1422 BOOST_TEST(fs::exists(link)); in remove_symlink_tests()
1423 BOOST_TEST(!fs::is_directory(link)); in remove_symlink_tests()
1424 BOOST_TEST(fs::is_regular_file(link)); in remove_symlink_tests()
1425 BOOST_TEST(fs::is_symlink(link)); in remove_symlink_tests()
1426 BOOST_TEST(fs::remove(link)); in remove_symlink_tests()
1427 BOOST_TEST(fs::exists(f1x)); in remove_symlink_tests()
1428 BOOST_TEST(!fs::exists(link)); in remove_symlink_tests()
1429 BOOST_TEST(!fs::is_symlink(link)); in remove_symlink_tests()
1430 BOOST_TEST(fs::remove(f1x)); in remove_symlink_tests()
1431 BOOST_TEST(!fs::exists(f1x)); in remove_symlink_tests()
1440 BOOST_TEST_EQ(fs::absolute(""), fs::current_path() ); in absolute_tests()
1441 BOOST_TEST_EQ(fs::absolute("", ""), fs::current_path() ); in absolute_tests()
1442 BOOST_TEST_EQ(fs::absolute(fs::current_path() / "foo/bar"), fs::current_path() / "foo/bar"); in absolute_tests()
1443 BOOST_TEST_EQ(fs::absolute("foo"), fs::current_path() / "foo"); in absolute_tests()
1444 BOOST_TEST_EQ(fs::absolute("foo", fs::current_path()), fs::current_path() / "foo"); in absolute_tests()
1445 BOOST_TEST_EQ(fs::absolute("bar", "foo"), fs::current_path() / "foo" / "bar"); in absolute_tests()
1446 BOOST_TEST_EQ(fs::absolute("/foo"), fs::current_path().root_path().string() + "foo"); in absolute_tests()
1449 BOOST_TEST_EQ(fs::absolute("a:foo", "b:/bar"), "a:/bar/foo"); in absolute_tests()
1455 BOOST_TEST_EQ(fs::absolute(fs::path(), "//foo/bar"), "//foo/bar"); in absolute_tests()
1458 BOOST_TEST_EQ(fs::absolute(fs::path(), "a:/bar"), "a:/bar"); in absolute_tests()
1463 BOOST_TEST_EQ(fs::absolute(fs::path("//foo/bar"), "//uvw/xyz"), "//foo/bar"); in absolute_tests()
1466 BOOST_TEST_EQ(fs::absolute(fs::path("a:/bar"), "b:/xyz"), "a:/bar"); in absolute_tests()
1469 BOOST_TEST_EQ(fs::absolute(fs::path("//net"), "//xyz/"), "//net/"); in absolute_tests()
1470 BOOST_TEST_EQ(fs::absolute(fs::path("//net"), "//xyz/abc"), "//net/abc"); in absolute_tests()
1471 BOOST_TEST_EQ(fs::absolute(fs::path("//net"), "//xyz/abc/def"), "//net/abc/def"); in absolute_tests()
1474 BOOST_TEST_EQ(fs::absolute(fs::path("a:"), "b:/"), "a:/"); in absolute_tests()
1475 BOOST_TEST_EQ(fs::absolute(fs::path("a:"),"b:/abc"), "a:/abc"); in absolute_tests()
1476 BOOST_TEST_EQ(fs::absolute(fs::path("a:"),"b:/abc/def"), "a:/abc/def"); in absolute_tests()
1477 BOOST_TEST_EQ(fs::absolute(fs::path("a:foo"), "b:/"), "a:/foo"); in absolute_tests()
1478 BOOST_TEST_EQ(fs::absolute(fs::path("a:foo"), "b:/abc"), "a:/abc/foo"); in absolute_tests()
1479 BOOST_TEST_EQ(fs::absolute(fs::path("a:foo"), "b:/abc/def"), "a:/abc/def/foo"); in absolute_tests()
1480 BOOST_TEST_EQ(fs::absolute(fs::path("a:foo/bar"), "b:/"), "a:/foo/bar"); in absolute_tests()
1481 BOOST_TEST_EQ(fs::absolute(fs::path("a:foo/bar"), "b:/abc"), "a:/abc/foo/bar"); in absolute_tests()
1482 BOOST_TEST_EQ(fs::absolute(fs::path("a:foo/bar"), "b:/abc/def"), "a:/abc/def/foo/bar"); in absolute_tests()
1486 BOOST_TEST_EQ(fs::absolute(fs::path("/"), "//xyz/"), "//xyz/"); in absolute_tests()
1487 BOOST_TEST_EQ(fs::absolute(fs::path("/"), "//xyz/abc"), "//xyz/"); in absolute_tests()
1488 BOOST_TEST_EQ(fs::absolute(fs::path("/foo"), "//xyz/"), "//xyz/foo"); in absolute_tests()
1489 BOOST_TEST_EQ(fs::absolute(fs::path("/foo"), "//xyz/abc"), "//xyz/foo"); in absolute_tests()
1491 BOOST_TEST_EQ(fs::absolute(fs::path("foo"), "//xyz/abc"), "//xyz/abc/foo"); in absolute_tests()
1492 BOOST_TEST_EQ(fs::absolute(fs::path("foo/bar"), "//xyz/abc"), "//xyz/abc/foo/bar"); in absolute_tests()
1493 BOOST_TEST_EQ(fs::absolute(fs::path("."), "//xyz/abc"), "//xyz/abc/."); in absolute_tests()
1494 BOOST_TEST_EQ(fs::absolute(fs::path(".."), "//xyz/abc"), "//xyz/abc/.."); in absolute_tests()
1495 BOOST_TEST_EQ(fs::absolute(fs::path("./foo"), "//xyz/abc"), "//xyz/abc/./foo"); in absolute_tests()
1496 BOOST_TEST_EQ(fs::absolute(fs::path("../foo"), "//xyz/abc"), "//xyz/abc/../foo"); in absolute_tests()
1499 BOOST_TEST_EQ(fs::absolute(fs::path("foo"), "/abc"), "/abc/foo"); in absolute_tests()
1500 BOOST_TEST_EQ(fs::absolute(fs::path("foo/bar"), "/abc"), "/abc/foo/bar"); in absolute_tests()
1501 BOOST_TEST_EQ(fs::absolute(fs::path("."), "/abc"), "/abc/."); in absolute_tests()
1502 BOOST_TEST_EQ(fs::absolute(fs::path(".."), "/abc"), "/abc/.."); in absolute_tests()
1503 BOOST_TEST_EQ(fs::absolute(fs::path("./foo"), "/abc"), "/abc/./foo"); in absolute_tests()
1504 BOOST_TEST_EQ(fs::absolute(fs::path("../foo"), "/abc"), "/abc/../foo"); in absolute_tests()
1518 fs::canonical("no-such-file", ec); in canonical_basic_tests()
1521 fs::canonical("no-such-file", "x", ec); in canonical_basic_tests()
1524 try { fs::canonical("no-such-file"); } in canonical_basic_tests()
1525 catch (const fs::filesystem_error&) { ok = true; } in canonical_basic_tests()
1529 BOOST_TEST_EQ(fs::canonical(""), fs::current_path()); in canonical_basic_tests()
1530 BOOST_TEST_EQ(fs::canonical("", fs::current_path()), fs::current_path()); in canonical_basic_tests()
1531 BOOST_TEST_EQ(fs::canonical("", ""), fs::current_path()); in canonical_basic_tests()
1532 BOOST_TEST_EQ(fs::canonical(fs::current_path()), fs::current_path()); in canonical_basic_tests()
1533 BOOST_TEST_EQ(fs::canonical(fs::current_path(), ""), fs::current_path()); in canonical_basic_tests()
1534 BOOST_TEST_EQ(fs::canonical(fs::current_path(), "no-such-file"), fs::current_path()); in canonical_basic_tests()
1536 BOOST_TEST_EQ(fs::canonical("."), fs::current_path()); in canonical_basic_tests()
1537 BOOST_TEST_EQ(fs::canonical(".."), fs::current_path().parent_path()); in canonical_basic_tests()
1538 BOOST_TEST_EQ(fs::canonical("/"), fs::current_path().root_path()); in canonical_basic_tests()
1540 fs::path relative_dir(dir.filename()); in canonical_basic_tests()
1541 BOOST_TEST_EQ(fs::canonical(dir), dir); in canonical_basic_tests()
1542 BOOST_TEST_EQ(fs::canonical(relative_dir), dir); in canonical_basic_tests()
1543 BOOST_TEST_EQ(fs::canonical(dir / "f0"), dir / "f0"); in canonical_basic_tests()
1544 BOOST_TEST_EQ(fs::canonical(relative_dir / "f0"), dir / "f0"); in canonical_basic_tests()
1545 BOOST_TEST_EQ(fs::canonical(relative_dir / "./f0"), dir / "f0"); in canonical_basic_tests()
1546 BOOST_TEST_EQ(fs::canonical(relative_dir / "d1/../f0"), dir / "f0"); in canonical_basic_tests()
1549 fs::path init(fs::initial_path()); in canonical_basic_tests()
1550 fs::path root(init.root_path()); in canonical_basic_tests()
1551 fs::path::const_iterator it(init.begin()); in canonical_basic_tests()
1552 fs::path first; // relative first non-root directory in canonical_basic_tests()
1559 fs::path expected(root/first); in canonical_basic_tests()
1567 BOOST_TEST_EQ(fs::canonical(root / "../.." / first), expected); in canonical_basic_tests()
1568 BOOST_TEST_EQ(fs::canonical(fs::path("../..") / first, root), expected); in canonical_basic_tests()
1569 …BOOST_TEST_EQ(fs::canonical(fs::path("/../..") / first, fs::current_path().root_name()), expected); in canonical_basic_tests()
1572 BOOST_TEST_EQ(fs::canonical(root / first / "../../../../.."), root); in canonical_basic_tests()
1581 fs::path relative_dir(dir.filename()); in canonical_symlink_tests()
1582 BOOST_TEST_EQ(fs::canonical(dir / "sym-d1/f2"), d1 / "f2"); in canonical_symlink_tests()
1583 BOOST_TEST_EQ(fs::canonical(relative_dir / "sym-d1/f2"), d1 / "f2"); in canonical_symlink_tests()
1588 void copy_file_tests(const fs::path& f1x, const fs::path& d1x) in copy_file_tests()
1592 BOOST_TEST(fs::exists(f1x)); in copy_file_tests()
1593 fs::remove(d1x / "f2"); // remove possible residue from prior testing in copy_file_tests()
1594 BOOST_TEST(fs::exists(d1x)); in copy_file_tests()
1595 BOOST_TEST(!fs::exists(d1x / "f2")); in copy_file_tests()
1597 bool file_copied = fs::copy_file(f1x, d1x / "f2"); in copy_file_tests()
1600 BOOST_TEST(fs::exists(f1x)); in copy_file_tests()
1601 BOOST_TEST(fs::exists(d1x / "f2")); in copy_file_tests()
1602 BOOST_TEST(!fs::is_directory(d1x / "f2")); in copy_file_tests()
1607 try { file_copied = fs::copy_file(f1x, d1x / "f2"); } in copy_file_tests()
1608 catch (const fs::filesystem_error &) { copy_ex_ok = true; } in copy_file_tests()
1614 try { file_copied = fs::copy_file(f1x, d1x / "f2", fs::copy_options::none); } in copy_file_tests()
1615 catch (const fs::filesystem_error &) { copy_ex_ok = true; } in copy_file_tests()
1619 fs::remove(d1x / "f2"); in copy_file_tests()
1621 BOOST_TEST_EQ(fs::file_size(d1x / "f2"), 10U); in copy_file_tests()
1624 try { file_copied = fs::copy_file(f1x, d1x / "f2", fs::copy_options::skip_existing); } in copy_file_tests()
1625 catch (const fs::filesystem_error &) { copy_ex_ok = false; } in copy_file_tests()
1628 BOOST_TEST_EQ(fs::file_size(d1x / "f2"), 10U); in copy_file_tests()
1633 …try { file_copied = fs::copy_file(f1x, d1x / "f2-non-existing", fs::copy_options::skip_existing); } in copy_file_tests()
1634 catch (const fs::filesystem_error &) { copy_ex_ok = false; } in copy_file_tests()
1637 BOOST_TEST_EQ(fs::file_size(d1x / "f2-non-existing"), 7U); in copy_file_tests()
1639 fs::remove(d1x / "f2-non-existing"); in copy_file_tests()
1643 try { file_copied = fs::copy_file(f1x, d1x / "f2", fs::copy_options::update_existing); } in copy_file_tests()
1644 catch (const fs::filesystem_error &) { copy_ex_ok = false; } in copy_file_tests()
1647 BOOST_TEST_EQ(fs::file_size(d1x / "f2"), 10U); in copy_file_tests()
1658 BOOST_TEST_EQ(fs::file_size(d1x / "f2-more-recent"), 1U); in copy_file_tests()
1661 …try { file_copied = fs::copy_file(d1x / "f2-more-recent", d1x / "f2", fs::copy_options::update_exi… in copy_file_tests()
1662 catch (const fs::filesystem_error &) { copy_ex_ok = false; } in copy_file_tests()
1665 BOOST_TEST_EQ(fs::file_size(d1x / "f2"), 1U); in copy_file_tests()
1667 fs::remove(d1x / "f2-more-recent"); in copy_file_tests()
1669 fs::remove(d1x / "f2"); in copy_file_tests()
1671 BOOST_TEST_EQ(fs::file_size(d1x / "f2"), 10U); in copy_file_tests()
1674 try { file_copied = fs::copy_file(f1x, d1x / "f2", fs::copy_options::overwrite_existing); } in copy_file_tests()
1675 catch (const fs::filesystem_error &) { copy_ex_ok = false; } in copy_file_tests()
1678 BOOST_TEST_EQ(fs::file_size(d1x / "f2"), 7U); in copy_file_tests()
1690 fs::path dangling_sym(dir / "dangling-sym"); in symlink_status_tests()
1691 fs::path dangling_directory_sym(dir / "dangling-directory-sym"); in symlink_status_tests()
1692 fs::path sym_d1(dir / "sym-d1"); in symlink_status_tests()
1693 fs::path symsym_d1(dir / "symsym-d1"); in symlink_status_tests()
1694 fs::path sym_f1(dir / "sym-f1"); in symlink_status_tests()
1695 fs::path symsym_f1(dir / "symsym-f1"); in symlink_status_tests()
1696 fs::create_symlink("does not exist", dangling_sym); in symlink_status_tests()
1697 fs::create_directory_symlink("does not exist", dangling_directory_sym); in symlink_status_tests()
1698 fs::create_directory_symlink(d1, sym_d1); in symlink_status_tests()
1699 fs::create_directory_symlink(sym_d1, symsym_d1); in symlink_status_tests()
1700 fs::create_symlink(f1, sym_f1); in symlink_status_tests()
1701 fs::create_symlink(sym_f1, symsym_f1); in symlink_status_tests()
1704 BOOST_TEST_EQ(fs::symlink_status(dangling_sym, ec).type(), fs::symlink_file); in symlink_status_tests()
1705 BOOST_TEST_EQ(fs::symlink_status(dangling_directory_sym, ec).type(), fs::symlink_file); in symlink_status_tests()
1706 BOOST_TEST_EQ(fs::symlink_status(sym_d1, ec).type(), fs::symlink_file); in symlink_status_tests()
1707 BOOST_TEST_EQ(fs::symlink_status(symsym_d1, ec).type(), fs::symlink_file); in symlink_status_tests()
1708 BOOST_TEST_EQ(fs::symlink_status(sym_f1, ec).type(), fs::symlink_file); in symlink_status_tests()
1709 BOOST_TEST_EQ(fs::symlink_status(symsym_f1, ec).type(), fs::symlink_file); in symlink_status_tests()
1712 BOOST_TEST_EQ(fs::status(dangling_sym, ec).type(), fs::file_not_found); in symlink_status_tests()
1713 BOOST_TEST_EQ(fs::status(dangling_directory_sym, ec).type(), fs::file_not_found); in symlink_status_tests()
1715 BOOST_TEST_EQ(fs::status(sym_d1, ec).type(), fs::directory_file); in symlink_status_tests()
1716 BOOST_TEST_EQ(fs::status(sym_d1 / "d1f1", ec).type(), fs::regular_file); in symlink_status_tests()
1717 BOOST_TEST_EQ(fs::status(symsym_d1, ec).type(), fs::directory_file); in symlink_status_tests()
1718 BOOST_TEST_EQ(fs::status(symsym_d1 / "d1f1", ec).type(), fs::regular_file); in symlink_status_tests()
1719 BOOST_TEST_EQ(fs::status(sym_f1, ec).type(), fs::regular_file); in symlink_status_tests()
1720 BOOST_TEST_EQ(fs::status(symsym_f1, ec).type(), fs::regular_file); in symlink_status_tests()
1732 fs::path users(getenv("HOMEDRIVE")); in symlink_status_tests()
1735 BOOST_TEST(fs::exists(users)); in symlink_status_tests()
1736 BOOST_TEST(fs::exists(users/"All Users")); in symlink_status_tests()
1737 BOOST_TEST(fs::exists(users/"Default User")); in symlink_status_tests()
1738 BOOST_TEST(fs::is_symlink(users/"All Users")); // dir /A reports <SYMLINKD> in symlink_status_tests()
1739 BOOST_TEST(fs::is_symlink(users/"Default User")); // dir /A reports <JUNCTION> in symlink_status_tests()
1746 void copy_symlink_tests(const fs::path& f1x, const fs::path& d1x) in copy_symlink_tests()
1750 BOOST_TEST(fs::exists(f1x)); in copy_symlink_tests()
1751 BOOST_TEST(fs::exists(d1x)); in copy_symlink_tests()
1752 fs::path sym1(d1x / "symlink1"); in copy_symlink_tests()
1753 fs::remove(sym1); // remove possible residue from prior testing in copy_symlink_tests()
1754 fs::create_symlink(f1x, sym1); in copy_symlink_tests()
1755 BOOST_TEST(fs::exists(sym1)); in copy_symlink_tests()
1756 BOOST_TEST(fs::is_symlink(sym1)); in copy_symlink_tests()
1757 fs::path sym2(d1x / "symlink2"); in copy_symlink_tests()
1758 fs::copy_symlink(sym1, sym2); in copy_symlink_tests()
1759 BOOST_TEST(fs::exists(sym2)); in copy_symlink_tests()
1760 BOOST_TEST(fs::is_symlink(sym2)); in copy_symlink_tests()
1767 try { fs::copy_symlink("no-such-file", "new-symlink1"); } in copy_symlink_tests()
1768 catch (const fs::filesystem_error &) { copy_ex_ok = true; } in copy_symlink_tests()
1772 try { fs::copy_symlink(f1x, "new-symlink2"); } // should fail; f1x not symlink in copy_symlink_tests()
1773 catch (const fs::filesystem_error &) { copy_ex_ok = true; } in copy_symlink_tests()
1779 void write_time_tests(const fs::path& dirx) in write_time_tests()
1783 fs::path f1x = dirx / "foobar2"; in write_time_tests()
1785 BOOST_TEST(fs::exists(f1x)); in write_time_tests()
1786 BOOST_TEST(!fs::is_directory(f1x)); in write_time_tests()
1787 BOOST_TEST(fs::is_regular_file(f1x)); in write_time_tests()
1788 BOOST_TEST(fs::file_size(f1x) == 7); in write_time_tests()
1795 std::time_t ft = fs::last_write_time(f1x); in write_time_tests()
1803 fs::last_write_time(f1x, std::mktime(tmp)); in write_time_tests()
1804 std::time_t ft2 = fs::last_write_time(f1x); in write_time_tests()
1807 BOOST_TEST(ft != fs::last_write_time(f1x)); in write_time_tests()
1810 fs::last_write_time(f1x, ft); in write_time_tests()
1811 double time_diff = std::difftime(ft, fs::last_write_time(f1x)); in write_time_tests()
1830 BOOST_TEST(!fs::exists(fs::path("//share-not"))); in platform_specific_tests()
1831 BOOST_TEST(!fs::exists(fs::path("//share-not/"))); in platform_specific_tests()
1832 BOOST_TEST(!fs::exists(fs::path("//share-not/foo"))); in platform_specific_tests()
1836 BOOST_TEST(!fs::exists("tools/jam/src/:sys:stat.h")); // !exists() if ERROR_INVALID_NAME in platform_specific_tests()
1837 BOOST_TEST(!fs::exists(":sys:stat.h")); // !exists() if ERROR_INVALID_PARAMETER in platform_specific_tests()
1841 BOOST_TEST(fs::system_complete("").empty()); in platform_specific_tests()
1842 BOOST_TEST(fs::system_complete("/") == fs::initial_path().root_path()); in platform_specific_tests()
1843 BOOST_TEST(fs::system_complete("foo") in platform_specific_tests()
1844 == fs::initial_path() / "foo"); in platform_specific_tests()
1846 fs::path p1(fs::system_complete("/foo")); in platform_specific_tests()
1849 std::string s2(fs::initial_path().root_path().string()+"foo"); in platform_specific_tests()
1852 BOOST_TEST(fs::system_complete(fs::path(fs::initial_path().root_name())) in platform_specific_tests()
1853 == fs::initial_path()); in platform_specific_tests()
1854 BOOST_TEST(fs::system_complete(fs::path(fs::initial_path().root_name().string() in platform_specific_tests()
1855 + "foo")).string() == fs::initial_path() / "foo"); in platform_specific_tests()
1856 BOOST_TEST(fs::system_complete(fs::path("c:/")).generic_string() in platform_specific_tests()
1858 BOOST_TEST(fs::system_complete(fs::path("c:/foo")).generic_string() in platform_specific_tests()
1860 BOOST_TEST(fs::system_complete(fs::path("//share")).generic_string() in platform_specific_tests()
1874 BOOST_TEST(fs::exists(dir)); in platform_specific_tests()
1875 BOOST_TEST(fs::exists(dir / "d1/d1f1")); in platform_specific_tests()
1876 fs::path junc(dir / "junc"); in platform_specific_tests()
1877 if (fs::exists(junc)) in platform_specific_tests()
1878 fs::remove(junc); in platform_specific_tests()
1879 fs::path new_junc(dir / "new-junc"); in platform_specific_tests()
1880 if (fs::exists(new_junc)) in platform_specific_tests()
1881 fs::remove(new_junc); in platform_specific_tests()
1888 fs::path cur_path(fs::current_path()); in platform_specific_tests()
1889 fs::current_path(dir); in platform_specific_tests()
1893 fs::current_path(cur_path); in platform_specific_tests()
1896 BOOST_TEST(fs::exists(junc)); in platform_specific_tests()
1897 BOOST_TEST(fs::is_symlink(junc)); in platform_specific_tests()
1898 BOOST_TEST(fs::is_directory(junc)); in platform_specific_tests()
1899 BOOST_TEST(!fs::is_regular_file(junc)); in platform_specific_tests()
1900 BOOST_TEST(fs::exists(junc / "d1f1")); in platform_specific_tests()
1901 BOOST_TEST(fs::is_regular_file(junc / "d1f1")); in platform_specific_tests()
1904 for (fs::directory_iterator itr(junc); itr != fs::directory_iterator(); ++itr) in platform_specific_tests()
1912 fs::rename(junc, new_junc); in platform_specific_tests()
1913 BOOST_TEST(!fs::exists(junc)); in platform_specific_tests()
1914 BOOST_TEST(fs::exists(new_junc)); in platform_specific_tests()
1915 BOOST_TEST(fs::is_symlink(new_junc)); in platform_specific_tests()
1916 BOOST_TEST(fs::is_directory(new_junc)); in platform_specific_tests()
1917 BOOST_TEST(!fs::is_regular_file(new_junc)); in platform_specific_tests()
1918 BOOST_TEST(fs::exists(new_junc / "d1f1")); in platform_specific_tests()
1919 BOOST_TEST(fs::is_regular_file(new_junc / "d1f1")); in platform_specific_tests()
1921 fs::remove(new_junc); in platform_specific_tests()
1922 BOOST_TEST(!fs::exists(new_junc / "d1f1")); in platform_specific_tests()
1923 BOOST_TEST(!fs::exists(new_junc)); in platform_specific_tests()
1924 BOOST_TEST(fs::exists(dir)); in platform_specific_tests()
1925 BOOST_TEST(fs::exists(dir / "d1/d1f1")); in platform_specific_tests()
1933 BOOST_TEST(fs::system_complete("").empty()); in platform_specific_tests()
1934 BOOST_TEST(fs::initial_path().root_path().string() == "/"); in platform_specific_tests()
1935 BOOST_TEST(fs::system_complete("/").string() == "/"); in platform_specific_tests()
1936 BOOST_TEST(fs::system_complete("foo").string() in platform_specific_tests()
1937 == fs::initial_path().string()+"/foo"); in platform_specific_tests()
1938 BOOST_TEST(fs::system_complete("/foo").string() in platform_specific_tests()
1939 == fs::initial_path().root_path().string()+"foo"); in platform_specific_tests()
1950 << fs::initial_path().string() in initial_tests()
1952 BOOST_TEST(fs::initial_path() == fs::current_path()); in initial_tests()
1953 BOOST_TEST(fs::initial_path().is_absolute()); in initial_tests()
1954 BOOST_TEST(fs::current_path().is_absolute()); in initial_tests()
1955 BOOST_TEST(fs::initial_path().string() in initial_tests()
1956 == fs::current_path().string()); in initial_tests()
1966 fs::space_info spi(fs::space(dir)); in space_tests()
1980 fs::path file = dir / "file"; in space_tests()
1983 fs::space_info spi_file(fs::space(file)); in space_tests()
1986 fs::remove(file); in space_tests()
1991 void equivalent_tests(const fs::path& f1x) in equivalent_tests()
1996 BOOST_TEST(fs::equivalent(f1x, dir / "f1")); in equivalent_tests()
1997 BOOST_TEST(fs::equivalent(dir, d1 / "..")); in equivalent_tests()
1998 BOOST_TEST(!fs::equivalent(f1x, dir)); in equivalent_tests()
1999 BOOST_TEST(!fs::equivalent(dir, f1x)); in equivalent_tests()
2000 BOOST_TEST(!fs::equivalent(d1, d2)); in equivalent_tests()
2001 BOOST_TEST(!fs::equivalent(dir, ng)); in equivalent_tests()
2002 BOOST_TEST(!fs::equivalent(ng, dir)); in equivalent_tests()
2003 BOOST_TEST(!fs::equivalent(f1x, ng)); in equivalent_tests()
2004 BOOST_TEST(!fs::equivalent(ng, f1x)); in equivalent_tests()
2054 cout << " temp_directory_path() is " << fs::temp_directory_path() << endl; in temp_directory_path_tests()
2076 fs::path p (temp_dir); in temp_directory_path_tests()
2078 fs::create_directory(p); in temp_directory_path_tests()
2082 fs::path tmp_path = fs::temp_directory_path(ec); in temp_directory_path_tests()
2085 fs::remove(p); in temp_directory_path_tests()
2090 guarded_env_var tmp_guard("TMP", fs::initial_path().string().c_str()); in temp_directory_path_tests()
2093 fs::path tmp_path = fs::temp_directory_path(ec); in temp_directory_path_tests()
2094 BOOST_TEST_EQ(tmp_path, fs::initial_path()); in temp_directory_path_tests()
2098 BOOST_TEST(!fs::temp_directory_path().empty()); in temp_directory_path_tests()
2099 BOOST_TEST(exists(fs::temp_directory_path())); in temp_directory_path_tests()
2100fs::path ph = fs::temp_directory_path() / fs::unique_path("temp_directory_path_test_%%%%_%%%%.txt"… in temp_directory_path_tests()
2117 fs::path test_temp_dir = temp_dir; in temp_directory_path_tests()
2129 ( const fs::path::value_type* tmpdir in temp_directory_path_tests()
2130 , const fs::path::value_type* tmp in temp_directory_path_tests()
2131 , const fs::path::value_type* temp in temp_directory_path_tests()
2132 , const fs::path::value_type* tempdir in temp_directory_path_tests()
2143 fs::path ph = fs::temp_directory_path(); in temp_directory_path_tests()
2148 fs::path ph = fs::temp_directory_path(); in temp_directory_path_tests()
2153 fs::path ph = fs::temp_directory_path(); in temp_directory_path_tests()
2158 fs::path ph = fs::temp_directory_path(); in temp_directory_path_tests()
2190 fs::path ph = fs::temp_directory_path(ec); in temp_directory_path_tests()
2197 fs::path ph = fs::temp_directory_path(); in temp_directory_path_tests()
2202 fs::path ph = fs::temp_directory_path(); in temp_directory_path_tests()
2206 fs::create_directory(test_temp_dir / L"Temp"); in temp_directory_path_tests()
2209 fs::path ph = fs::temp_directory_path(); in temp_directory_path_tests()
2215 fs::path ph = fs::temp_directory_path(); in temp_directory_path_tests()
2229 BOOST_TEST_EQ(fs::weakly_canonical("no-such/foo/bar"), "no-such/foo/bar"); in weakly_canonical_tests()
2230 BOOST_TEST_EQ(fs::weakly_canonical("no-such/foo/../bar"), "no-such/bar"); in weakly_canonical_tests()
2231 BOOST_TEST_EQ(fs::weakly_canonical(dir), dir); in weakly_canonical_tests()
2232 BOOST_TEST_EQ(fs::weakly_canonical(dir/"no-such/foo/bar"), dir/"no-such/foo/bar"); in weakly_canonical_tests()
2233 BOOST_TEST_EQ(fs::weakly_canonical(dir/"no-such/foo/../bar"), dir/"no-such/bar"); in weakly_canonical_tests()
2234 BOOST_TEST_EQ(fs::weakly_canonical(dir/"../no-such/foo/../bar"), in weakly_canonical_tests()
2236 BOOST_TEST_EQ(fs::weakly_canonical("c:/no-such/foo/bar"), "c:/no-such/foo/bar"); in weakly_canonical_tests()
2238 fs::create_directory_symlink(dir / "d1", dir / "sld1"); in weakly_canonical_tests()
2239 BOOST_TEST_EQ(fs::weakly_canonical(dir / "sld1/foo/bar"), dir / "d1/foo/bar"); in weakly_canonical_tests()
2291 cout << "initial_path() is " << fs::initial_path() << endl; in cpp_main()
2292 fs::path ip = fs::initial_path(); in cpp_main()
2295 for (fs::path::const_iterator it = ip.begin(); it != ip.end(); ++it) in cpp_main()
2303 dir = fs::initial_path() / temp_dir; in cpp_main()
2305 if (fs::exists(dir)) in cpp_main()
2308 fs::remove_all(dir); in cpp_main()
2310 BOOST_TEST(!fs::exists(dir)); in cpp_main()
2340 fs::file_status stat = fs::status(f1); in cpp_main()
2341 BOOST_TEST(fs::status_known(stat)); in cpp_main()
2342 BOOST_TEST(fs::exists(stat)); in cpp_main()
2343 BOOST_TEST(!fs::is_directory(stat)); in cpp_main()
2344 BOOST_TEST(fs::is_regular_file(stat)); in cpp_main()
2345 BOOST_TEST(!fs::is_other(stat)); in cpp_main()
2346 BOOST_TEST(!fs::is_symlink(stat)); in cpp_main()
2383 BOOST_TEST(fs::remove_all(dir) != 0); in cpp_main()