MCPcopy Create free account
hub / github.com/boostorg/filesystem / directory_iterator_tests

Function directory_iterator_tests

test/operations_test.cpp:439–596  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

437 // directory_iterator_tests --------------------------------------------------------//
438
439 void directory_iterator_tests()
440 {
441 cout << "directory_iterator_tests..." << endl;
442
443 bool dir_itr_exception(false);
444 try { fs::directory_iterator it(""); }
445 catch (const fs::filesystem_error &) { dir_itr_exception = true; }
446 BOOST_TEST(dir_itr_exception);
447
448 error_code ec;
449
450 BOOST_TEST(!ec);
451 fs::directory_iterator it("", ec);
452 BOOST_TEST(ec);
453
454 dir_itr_exception = false;
455 try { fs::directory_iterator it("nosuchdirectory"); }
456 catch (const fs::filesystem_error &) { dir_itr_exception = true; }
457 BOOST_TEST(dir_itr_exception);
458
459 ec.clear();
460 fs::directory_iterator it2("nosuchdirectory", ec);
461 BOOST_TEST(ec);
462
463 dir_itr_exception = false;
464 try
465 {
466 error_code ec;
467 fs::directory_iterator it("nosuchdirectory", ec);
468 BOOST_TEST(ec);
469 BOOST_TEST(ec == boost::system::errc::no_such_file_or_directory);
470 }
471 catch (const fs::filesystem_error &) { dir_itr_exception = true; }
472 BOOST_TEST(!dir_itr_exception);
473
474 // create a second directory named d2
475 d2 = dir / "d2";
476 fs::create_directory(d2);
477 BOOST_TEST(fs::exists(d2));
478 BOOST_TEST(fs::is_directory(d2));
479
480 // test the basic operation of directory_iterators, and test that
481 // stepping one iterator doesn't affect a different iterator.
482 {
483 typedef std::vector<fs::directory_entry> vec_type;
484 vec_type vec;
485
486 fs::directory_iterator it1(dir);
487 BOOST_TEST(it1 != fs::directory_iterator());
488 BOOST_TEST(fs::exists(it1->status()));
489 vec.push_back(*it1);
490 BOOST_TEST(*it1 == vec[0]);
491
492 fs::directory_iterator it2(dir);
493 BOOST_TEST(it2 != fs::directory_iterator());
494 BOOST_TEST(*it1 == *it2);
495
496 ++it1;

Callers 1

cpp_mainFunction · 0.85

Calls 13

existsFunction · 0.85
is_directoryFunction · 0.85
directory_iteratorClass · 0.85
statusMethod · 0.80
beginMethod · 0.80
endMethod · 0.80
filenameMethod · 0.80
root_nameMethod · 0.80
parent_pathMethod · 0.80
stringFunction · 0.70
create_directoryFunction · 0.50
current_pathFunction · 0.50

Tested by

no test coverage detected