mirror of git://gcc.gnu.org/git/gcc.git
Test begin and end functions for directory iterators
Backport from mainline 2016-05-10 Jonathan Wakely <jwakely@redhat.com> * include/experimental/bits/fs_dir.h (begin, end): Add noexcept. * testsuite/experimental/filesystem/iterators/directory_iterator.cc: Test begin and end functions. * testsuite/experimental/filesystem/iterators/ recursive_directory_iterator.cc: Likewise. From-SVN: r236718
This commit is contained in:
parent
2218243ebd
commit
3a54601da7
|
|
@ -1,3 +1,14 @@
|
||||||
|
2016-05-25 Jonathan Wakely <jwakely@redhat.com>
|
||||||
|
|
||||||
|
Backport from mainline
|
||||||
|
2016-05-10 Jonathan Wakely <jwakely@redhat.com>
|
||||||
|
|
||||||
|
* include/experimental/bits/fs_dir.h (begin, end): Add noexcept.
|
||||||
|
* testsuite/experimental/filesystem/iterators/directory_iterator.cc:
|
||||||
|
Test begin and end functions.
|
||||||
|
* testsuite/experimental/filesystem/iterators/
|
||||||
|
recursive_directory_iterator.cc: Likewise.
|
||||||
|
|
||||||
2016-05-25 Jonathan Wakely <jwakely@redhat.com>
|
2016-05-25 Jonathan Wakely <jwakely@redhat.com>
|
||||||
|
|
||||||
Backport from mainline
|
Backport from mainline
|
||||||
|
|
|
||||||
|
|
@ -235,10 +235,12 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11
|
||||||
};
|
};
|
||||||
|
|
||||||
inline directory_iterator
|
inline directory_iterator
|
||||||
begin(directory_iterator __iter) { return __iter; }
|
begin(directory_iterator __iter) noexcept
|
||||||
|
{ return __iter; }
|
||||||
|
|
||||||
inline directory_iterator
|
inline directory_iterator
|
||||||
end(directory_iterator) { return directory_iterator(); }
|
end(directory_iterator) noexcept
|
||||||
|
{ return directory_iterator(); }
|
||||||
|
|
||||||
inline bool
|
inline bool
|
||||||
operator==(const directory_iterator& __lhs, const directory_iterator& __rhs)
|
operator==(const directory_iterator& __lhs, const directory_iterator& __rhs)
|
||||||
|
|
@ -327,10 +329,12 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11
|
||||||
};
|
};
|
||||||
|
|
||||||
inline recursive_directory_iterator
|
inline recursive_directory_iterator
|
||||||
begin(recursive_directory_iterator __iter) { return __iter; }
|
begin(recursive_directory_iterator __iter) noexcept
|
||||||
|
{ return __iter; }
|
||||||
|
|
||||||
inline recursive_directory_iterator
|
inline recursive_directory_iterator
|
||||||
end(recursive_directory_iterator) { return recursive_directory_iterator(); }
|
end(recursive_directory_iterator) noexcept
|
||||||
|
{ return recursive_directory_iterator(); }
|
||||||
|
|
||||||
inline bool
|
inline bool
|
||||||
operator==(const recursive_directory_iterator& __lhs,
|
operator==(const recursive_directory_iterator& __lhs,
|
||||||
|
|
|
||||||
|
|
@ -113,10 +113,36 @@ test03()
|
||||||
remove_all(p, ec);
|
remove_all(p, ec);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
test04()
|
||||||
|
{
|
||||||
|
bool test __attribute__((unused)) = false;
|
||||||
|
|
||||||
|
const fs::directory_iterator it;
|
||||||
|
VERIFY( it == fs::directory_iterator() );
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
test05()
|
||||||
|
{
|
||||||
|
bool test __attribute__((unused)) = false;
|
||||||
|
|
||||||
|
auto p = __gnu_test::nonexistent_path();
|
||||||
|
create_directory(p);
|
||||||
|
create_directory_symlink(p, p / "l");
|
||||||
|
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" );
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main()
|
main()
|
||||||
{
|
{
|
||||||
test01();
|
test01();
|
||||||
test02();
|
test02();
|
||||||
test03();
|
test03();
|
||||||
|
test04();
|
||||||
|
test05();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -153,6 +153,21 @@ test04()
|
||||||
VERIFY( it == fs::recursive_directory_iterator() );
|
VERIFY( it == fs::recursive_directory_iterator() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
test05()
|
||||||
|
{
|
||||||
|
bool test __attribute__((unused)) = false;
|
||||||
|
|
||||||
|
auto p = __gnu_test::nonexistent_path();
|
||||||
|
create_directory(p);
|
||||||
|
create_directory_symlink(p, p / "l");
|
||||||
|
fs::recursive_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" );
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main()
|
main()
|
||||||
{
|
{
|
||||||
|
|
@ -160,4 +175,5 @@ main()
|
||||||
test02();
|
test02();
|
||||||
test03();
|
test03();
|
||||||
test04();
|
test04();
|
||||||
|
test05();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue