From: Jonathan Wakely Date: Fri, 11 Aug 2017 00:14:57 +0000 (+0100) Subject: PR libstdc++/81808 skip test if reading directory doesn't fail X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1ea93d89a98517c69b75a8c229befd340579a882;p=gcc.git 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 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 8ebe21c9c11..fd9a6afbc3c 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2017-08-11 Jonathan Wakely + + 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 * 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 e49d2b1ad1f..a319aff1c62 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 #include @@ -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() ); + } } }