diff options
author | Roger Ferrer Ibanez <roger.ferreribanez@arm.com> | 2016-11-14 13:44:50 +0000 |
---|---|---|
committer | Roger Ferrer Ibanez <roger.ferreribanez@arm.com> | 2016-11-14 13:44:50 +0000 |
commit | aa35ecfecda832eecaebbcc41f7369b1b2b945ca (patch) | |
tree | 9798f791662f8d1436fb04894333c63ea6194cc0 /libcxx/test/std | |
parent | c78f5d4194e466fd9cf234c03f33822242a69fb4 (diff) | |
download | bcm5719-llvm-aa35ecfecda832eecaebbcc41f7369b1b2b945ca.tar.gz bcm5719-llvm-aa35ecfecda832eecaebbcc41f7369b1b2b945ca.zip |
Protect std::ios tests under libcpp-no-exceptions
Skip tests that expect an exception be thrown. Also add
some missing asserts in the original test.
Differential Revision: https://reviews.llvm.org/D26512
llvm-svn: 286823
Diffstat (limited to 'libcxx/test/std')
5 files changed, 27 insertions, 5 deletions
diff --git a/libcxx/test/std/input.output/iostreams.base/ios/basic.ios.members/copyfmt.pass.cpp b/libcxx/test/std/input.output/iostreams.base/ios/basic.ios.members/copyfmt.pass.cpp index acefb8d1617..004e7e9ea5f 100644 --- a/libcxx/test/std/input.output/iostreams.base/ios/basic.ios.members/copyfmt.pass.cpp +++ b/libcxx/test/std/input.output/iostreams.base/ios/basic.ios.members/copyfmt.pass.cpp @@ -7,7 +7,6 @@ // //===----------------------------------------------------------------------===// -// XFAIL: libcpp-no-exceptions // REQUIRES: locale.en_US.UTF-8 // REQUIRES: locale.fr_FR.UTF-8 @@ -23,6 +22,8 @@ #include "platform_support.h" // locale name macros +#include "test_macros.h" + struct testbuf : public std::streambuf { @@ -158,6 +159,7 @@ int main() ios1.copyfmt(ios1); assert(!f1_called); +#ifndef TEST_HAS_NO_EXCEPTIONS try { ios1.copyfmt(ios2); @@ -166,6 +168,9 @@ int main() catch (std::ios_base::failure&) { } +#else + ios1.copyfmt(ios2); +#endif assert(ios1.rdstate() == std::ios::eofbit); assert(ios1.rdbuf() == &sb1); assert(ios1.flags() == (std::ios::showpoint | std::ios::uppercase)); diff --git a/libcxx/test/std/input.output/iostreams.base/ios/basic.ios.members/set_rdbuf.pass.cpp b/libcxx/test/std/input.output/iostreams.base/ios/basic.ios.members/set_rdbuf.pass.cpp index 1c40a81aa06..8852c9b55bb 100644 --- a/libcxx/test/std/input.output/iostreams.base/ios/basic.ios.members/set_rdbuf.pass.cpp +++ b/libcxx/test/std/input.output/iostreams.base/ios/basic.ios.members/set_rdbuf.pass.cpp @@ -7,7 +7,6 @@ // //===----------------------------------------------------------------------===// -// XFAIL: libcpp-no-exceptions // <ios> // template <class charT, class traits> class basic_ios @@ -18,6 +17,8 @@ #include <streambuf> #include <cassert> +#include "test_macros.h" + struct testbuf : public std::streambuf { @@ -35,16 +36,20 @@ int main() testbuf sb1; testbuf sb2; testios ios(&sb1); +#ifndef TEST_HAS_NO_EXCEPTIONS try { ios.setstate(std::ios::badbit); ios.exceptions(std::ios::badbit); + assert(false); } catch (...) { } +#endif ios.set_rdbuf(&sb2); assert(ios.rdbuf() == &sb2); +#ifndef TEST_HAS_NO_EXCEPTIONS try { ios.setstate(std::ios::badbit); @@ -53,6 +58,7 @@ int main() catch (...) { } +#endif ios.set_rdbuf(0); assert(ios.rdbuf() == 0); } diff --git a/libcxx/test/std/input.output/iostreams.base/ios/iostate.flags/clear.pass.cpp b/libcxx/test/std/input.output/iostreams.base/ios/iostate.flags/clear.pass.cpp index c4aad797801..3efe910b32b 100644 --- a/libcxx/test/std/input.output/iostreams.base/ios/iostate.flags/clear.pass.cpp +++ b/libcxx/test/std/input.output/iostreams.base/ios/iostate.flags/clear.pass.cpp @@ -7,7 +7,6 @@ // //===----------------------------------------------------------------------===// -// XFAIL: libcpp-no-exceptions // <ios> // template <class charT, class traits> class basic_ios @@ -18,6 +17,8 @@ #include <streambuf> #include <cassert> +#include "test_macros.h" + struct testbuf : public std::streambuf {}; int main() @@ -26,9 +27,11 @@ int main() std::ios ios(0); ios.clear(); assert(ios.rdstate() == std::ios::badbit); +#ifndef TEST_HAS_NO_EXCEPTIONS try { ios.exceptions(std::ios::badbit); + assert(false); } catch (...) { @@ -51,6 +54,7 @@ int main() { assert(ios.rdstate() == (std::ios::eofbit | std::ios::badbit)); } +#endif } { testbuf sb; diff --git a/libcxx/test/std/input.output/iostreams.base/ios/iostate.flags/exceptions_iostate.pass.cpp b/libcxx/test/std/input.output/iostreams.base/ios/iostate.flags/exceptions_iostate.pass.cpp index 9347644b12b..d99269be704 100644 --- a/libcxx/test/std/input.output/iostreams.base/ios/iostate.flags/exceptions_iostate.pass.cpp +++ b/libcxx/test/std/input.output/iostreams.base/ios/iostate.flags/exceptions_iostate.pass.cpp @@ -7,7 +7,6 @@ // //===----------------------------------------------------------------------===// -// XFAIL: libcpp-no-exceptions // <ios> // template <class charT, class traits> class basic_ios @@ -18,6 +17,8 @@ #include <streambuf> #include <cassert> +#include "test_macros.h" + struct testbuf : public std::streambuf {}; int main() @@ -27,6 +28,7 @@ int main() assert(ios.exceptions() == std::ios::goodbit); ios.exceptions(std::ios::eofbit); assert(ios.exceptions() == std::ios::eofbit); +#ifndef TEST_HAS_NO_EXCEPTIONS try { ios.exceptions(std::ios::badbit); @@ -36,6 +38,7 @@ int main() { } assert(ios.exceptions() == std::ios::badbit); +#endif } { testbuf sb; diff --git a/libcxx/test/std/input.output/iostreams.base/ios/iostate.flags/setstate.pass.cpp b/libcxx/test/std/input.output/iostreams.base/ios/iostate.flags/setstate.pass.cpp index 41cb61db194..6d2fe069135 100644 --- a/libcxx/test/std/input.output/iostreams.base/ios/iostate.flags/setstate.pass.cpp +++ b/libcxx/test/std/input.output/iostreams.base/ios/iostate.flags/setstate.pass.cpp @@ -7,7 +7,6 @@ // //===----------------------------------------------------------------------===// -// XFAIL: libcpp-no-exceptions // <ios> // template <class charT, class traits> class basic_ios @@ -18,6 +17,8 @@ #include <streambuf> #include <cassert> +#include "test_macros.h" + struct testbuf : public std::streambuf {}; int main() @@ -26,9 +27,11 @@ int main() std::ios ios(0); ios.setstate(std::ios::goodbit); assert(ios.rdstate() == std::ios::badbit); +#ifndef TEST_HAS_NO_EXCEPTIONS try { ios.exceptions(std::ios::badbit); + assert(false); } catch (...) { @@ -51,6 +54,7 @@ int main() { assert(ios.rdstate() == (std::ios::eofbit | std::ios::badbit)); } +#endif } { testbuf sb; |