summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/recursion_pending.pass.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/recursion_pending.pass.cpp')
-rw-r--r--libcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/recursion_pending.pass.cpp161
1 files changed, 0 insertions, 161 deletions
diff --git a/libcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/recursion_pending.pass.cpp b/libcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/recursion_pending.pass.cpp
deleted file mode 100644
index 1ffe664ca40..00000000000
--- a/libcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/recursion_pending.pass.cpp
+++ /dev/null
@@ -1,161 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-// UNSUPPORTED: c++98, c++03
-
-// <filesystem>
-
-// class recursive_directory_iterator
-
-// bool recursion_pending() const;
-
-#include "filesystem_include.hpp"
-#include <type_traits>
-#include <set>
-#include <cassert>
-
-#include "test_macros.h"
-#include "rapid-cxx-test.hpp"
-#include "filesystem_test_helper.hpp"
-
-using namespace fs;
-
-TEST_SUITE(recursive_directory_iterator_recursion_pending_tests)
-
-TEST_CASE(initial_value_test)
-{
- recursive_directory_iterator it(StaticEnv::Dir);
- TEST_REQUIRE(it.recursion_pending() == true);
-}
-
-TEST_CASE(value_after_copy_construction_and_assignment_test)
-{
- recursive_directory_iterator rec_pending_it(StaticEnv::Dir);
- recursive_directory_iterator no_rec_pending_it(StaticEnv::Dir);
- no_rec_pending_it.disable_recursion_pending();
-
- { // copy construction
- recursive_directory_iterator it(rec_pending_it);
- TEST_CHECK(it.recursion_pending() == true);
- it.disable_recursion_pending();
- TEST_REQUIRE(rec_pending_it.recursion_pending() == true);
-
- recursive_directory_iterator it2(no_rec_pending_it);
- TEST_CHECK(it2.recursion_pending() == false);
- }
- { // copy assignment
- recursive_directory_iterator it(StaticEnv::Dir);
- it.disable_recursion_pending();
- it = rec_pending_it;
- TEST_CHECK(it.recursion_pending() == true);
- it.disable_recursion_pending();
- TEST_REQUIRE(rec_pending_it.recursion_pending() == true);
-
- recursive_directory_iterator it2(StaticEnv::Dir);
- it2 = no_rec_pending_it;
- TEST_CHECK(it2.recursion_pending() == false);
- }
- TEST_CHECK(rec_pending_it.recursion_pending() == true);
- TEST_CHECK(no_rec_pending_it.recursion_pending() == false);
-}
-
-
-TEST_CASE(value_after_move_construction_and_assignment_test)
-{
- recursive_directory_iterator rec_pending_it(StaticEnv::Dir);
- recursive_directory_iterator no_rec_pending_it(StaticEnv::Dir);
- no_rec_pending_it.disable_recursion_pending();
-
- { // move construction
- recursive_directory_iterator it_cp(rec_pending_it);
- recursive_directory_iterator it(std::move(it_cp));
- TEST_CHECK(it.recursion_pending() == true);
-
- recursive_directory_iterator it_cp2(no_rec_pending_it);
- recursive_directory_iterator it2(std::move(it_cp2));
- TEST_CHECK(it2.recursion_pending() == false);
- }
- { // copy assignment
- recursive_directory_iterator it(StaticEnv::Dir);
- it.disable_recursion_pending();
- recursive_directory_iterator it_cp(rec_pending_it);
- it = std::move(it_cp);
- TEST_CHECK(it.recursion_pending() == true);
-
- recursive_directory_iterator it2(StaticEnv::Dir);
- recursive_directory_iterator it_cp2(no_rec_pending_it);
- it2 = std::move(it_cp2);
- TEST_CHECK(it2.recursion_pending() == false);
- }
- TEST_CHECK(rec_pending_it.recursion_pending() == true);
- TEST_CHECK(no_rec_pending_it.recursion_pending() == false);
-}
-
-TEST_CASE(increment_resets_value)
-{
- const recursive_directory_iterator endIt;
- {
- recursive_directory_iterator it(StaticEnv::Dir);
- it.disable_recursion_pending();
- TEST_CHECK(it.recursion_pending() == false);
- ++it;
- TEST_CHECK(it.recursion_pending() == true);
- TEST_CHECK(it.depth() == 0);
- }
- {
- recursive_directory_iterator it(StaticEnv::Dir);
- it.disable_recursion_pending();
- TEST_CHECK(it.recursion_pending() == false);
- it++;
- TEST_CHECK(it.recursion_pending() == true);
- TEST_CHECK(it.depth() == 0);
- }
- {
- recursive_directory_iterator it(StaticEnv::Dir);
- it.disable_recursion_pending();
- TEST_CHECK(it.recursion_pending() == false);
- std::error_code ec;
- it.increment(ec);
- TEST_CHECK(it.recursion_pending() == true);
- TEST_CHECK(it.depth() == 0);
- }
-}
-
-TEST_CASE(pop_does_not_reset_value)
-{
- const recursive_directory_iterator endIt;
-
- auto& DE0 = StaticEnv::DirIterationList;
- std::set<path> notSeenDepth0(std::begin(DE0), std::end(DE0));
-
- recursive_directory_iterator it(StaticEnv::Dir);
- TEST_REQUIRE(it != endIt);
-
- while (it.depth() == 0) {
- notSeenDepth0.erase(it->path());
- ++it;
- TEST_REQUIRE(it != endIt);
- }
- TEST_REQUIRE(it.depth() == 1);
- it.disable_recursion_pending();
- it.pop();
- // Since the order of iteration is unspecified the pop() could result
- // in the end iterator. When this is the case it is undefined behavior
- // to call recursion_pending().
- if (it == endIt) {
- TEST_CHECK(notSeenDepth0.empty());
-#if defined(_LIBCPP_VERSION)
- TEST_CHECK(it.recursion_pending() == false);
-#endif
- } else {
- TEST_CHECK(! notSeenDepth0.empty());
- TEST_CHECK(it.recursion_pending() == false);
- }
-}
-
-TEST_SUITE_END()
OpenPOWER on IntegriCloud