-// Copyright (C) 2015-2018 Free Software Foundation, Inc.
+// Copyright (C) 2015-2024 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
VERIFY( iter == end(iter) );
// Test non-empty directory.
- create_directory_symlink(p, p / "l", ec);
+ create_directory(p / "x", ec);
VERIFY( !ec );
iter = fs::directory_iterator(p, ec);
VERIFY( !ec );
VERIFY( iter != fs::directory_iterator() );
- VERIFY( iter->path() == p/"l" );
+ VERIFY( iter->path() == p/"x" );
++iter;
VERIFY( iter == end(iter) );
- // Test inaccessible directory.
- permissions(p, fs::perms::none, ec);
- VERIFY( !ec );
- iter = fs::directory_iterator(p, ec);
- VERIFY( ec );
- VERIFY( iter == end(iter) );
+ if (__gnu_test::permissions_are_testable())
+ {
+ // Test inaccessible directory.
+ permissions(p, fs::perms::none, ec);
+ VERIFY( !ec );
+ iter = fs::directory_iterator(p, ec);
+ VERIFY( ec );
+ VERIFY( iter == end(iter) );
- // Test inaccessible directory, skipping permission denied.
- const auto opts = fs::directory_options::skip_permission_denied;
- iter = fs::directory_iterator(p, opts, ec);
- VERIFY( !ec );
- VERIFY( iter == end(iter) );
+ // Test inaccessible directory, skipping permission denied.
+ const auto opts = fs::directory_options::skip_permission_denied;
+ iter = fs::directory_iterator(p, opts, ec);
+ VERIFY( !ec );
+ VERIFY( iter == end(iter) );
+
+ permissions(p, fs::perms::owner_all, ec);
+ }
- permissions(p, fs::perms::owner_all, ec);
remove_all(p, ec);
}
std::error_code ec;
const auto p = __gnu_test::nonexistent_path();
create_directory(p, fs::current_path(), ec);
- create_directory_symlink(p, p / "l", ec);
+ create_directory(p / "x", ec);
VERIFY( !ec );
// Test post-increment (libstdc++/71005)
const auto entry1 = *iter;
const auto entry2 = *iter++;
VERIFY( entry1 == entry2 );
- VERIFY( entry1.path() == p/"l" );
+ VERIFY( entry1.path() == p/"x" );
VERIFY( iter == end(iter) );
remove_all(p, ec);
{
auto p = __gnu_test::nonexistent_path();
create_directory(p);
- create_directory_symlink(p, p / "l");
+ create_directory(p / "x");
fs::directory_iterator it(p), endit;
VERIFY( begin(it) == it );
static_assert( noexcept(begin(it)), "begin is noexcept" );
VERIFY( end(it) == endit );
static_assert( noexcept(end(it)), "end is noexcept" );
+
+ std::error_code ec;
+ remove_all(p, ec);
}
int