diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2017-08-11 01:14:57 +0100 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2017-08-11 01:14:57 +0100 |
commit | 1ea93d89a98517c69b75a8c229befd340579a882 (patch) | |
tree | 211499ffeca0d57aab0add389d0ca9d79c073969 | |
parent | e1769bdd4cef522ada32aec863feba41116b183a (diff) | |
download | gcc-1ea93d89a98517c69b75a8c229befd340579a882.zip gcc-1ea93d89a98517c69b75a8c229befd340579a882.tar.gz gcc-1ea93d89a98517c69b75a8c229befd340579a882.tar.bz2 |
PR libstdc++/81808 skip test if reading directory doesn't fail
PR libstdc++/81808
* testsuite/27_io/basic_fstream/53984.cc: Adjust test for targets
that allow opening a directory as a FILE and reading from it.
From-SVN: r251041
-rw-r--r-- | libstdc++-v3/ChangeLog | 6 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/27_io/basic_fstream/53984.cc | 25 |
2 files changed, 31 insertions, 0 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 8ebe21c..fd9a6afb 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2017-08-11 Jonathan Wakely <jwakely@redhat.com> + + PR libstdc++/81808 + * testsuite/27_io/basic_fstream/53984.cc: Adjust test for targets + that allow opening a directory as a FILE and reading from it. + 2017-08-09 Jonathan Wakely <jwakely@redhat.com> * include/std/type_traits (_GLIBCXX_NO_BUILTIN_HAS_UNIQ_OBJ_REP): diff --git a/libstdc++-v3/testsuite/27_io/basic_fstream/53984.cc b/libstdc++-v3/testsuite/27_io/basic_fstream/53984.cc index e49d2b1..a319aff 100644 --- a/libstdc++-v3/testsuite/27_io/basic_fstream/53984.cc +++ b/libstdc++-v3/testsuite/27_io/basic_fstream/53984.cc @@ -17,6 +17,8 @@ // { dg-require-fileio "" } +// PR libstdc++/53984 + #include <fstream> #include <testsuite_hooks.h> @@ -26,9 +28,32 @@ test01() std::ifstream in("."); if (in) { + char c; + if (in.get(c)) + { + // Reading a directory doesn't produce an error on this target + // so the formatted input functions below wouldn't fail anyway + // (see PR libstdc++/81808). + return; + } int x; + in.clear(); + // Formatted input function should set badbit, but not throw: in >> x; VERIFY( in.bad() ); + + in.clear(); + in.exceptions(std::ios::badbit); + try + { + // Formatted input function should set badbit, and throw: + in >> x; + VERIFY( false ); + } + catch (const std::exception&) + { + VERIFY( in.bad() ); + } } } |