libstdc++: Properly remove temporary directories in filesystem tests
Although these tests use filesystem::remove_all to clean up, that fails because it uses recursive_directory_iterator which is intentionally bodged by the custom readdir defined in the test. Just use POSIX rmdir to clean up. We don't need to use _rmdir or _wrmdir for Windows, because we'll never reach test02() on targets where the custom readdir doesn't interpose the one from libc. libstdc++-v3/ChangeLog: * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use rmdir to remove directories. * testsuite/experimental/filesystem/iterators/error_reporting.cc: Likewise.
This commit is contained in:
parent
124a9e08b7
commit
7c1c7e120c
|
@ -107,7 +107,7 @@ void
|
|||
test02()
|
||||
{
|
||||
namespace fs = std::filesystem;
|
||||
auto dir = __gnu_test::nonexistent_path();
|
||||
const auto dir = __gnu_test::nonexistent_path();
|
||||
fs::create_directories(dir/"subdir");
|
||||
|
||||
std::error_code ec;
|
||||
|
@ -137,7 +137,12 @@ test02()
|
|||
}
|
||||
#endif
|
||||
|
||||
fs::remove_all(dir, ec);
|
||||
// Cannot use fs::remove_all here because that uses
|
||||
// recursive_directory_iterator which would use the fake readdir above.
|
||||
#ifndef _GLIBCXX_FILESYSTEM_IS_WINDOWS
|
||||
::rmdir((dir/"subdir").c_str());
|
||||
::rmdir(dir.c_str());
|
||||
#endif
|
||||
}
|
||||
|
||||
int
|
||||
|
|
|
@ -99,7 +99,7 @@ void
|
|||
test02()
|
||||
{
|
||||
namespace fs = std::experimental::filesystem;
|
||||
auto dir = __gnu_test::nonexistent_path();
|
||||
const auto dir = __gnu_test::nonexistent_path();
|
||||
fs::create_directories(dir/"subdir");
|
||||
|
||||
std::error_code ec;
|
||||
|
@ -129,7 +129,12 @@ test02()
|
|||
}
|
||||
#endif
|
||||
|
||||
fs::remove_all(dir, ec);
|
||||
// Cannot use fs::remove_all here because that depends on
|
||||
// recursive_directory_iterator which would use the fake readdir above.
|
||||
#ifndef _GLIBCXX_FILESYSTEM_IS_WINDOWS
|
||||
::rmdir((dir/"subdir").c_str());
|
||||
::rmdir(dir.c_str());
|
||||
#endif
|
||||
}
|
||||
|
||||
int
|
||||
|
|
Loading…
Reference in New Issue