diff options
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.cpp | 161 |
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() |