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 acefb8d16176b..004e7e9ea5f34 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 1c40a81aa069a..8852c9b55bb44 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 // // template class basic_ios @@ -18,6 +17,8 @@ #include #include +#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 c4aad797801da..3efe910b32b0e 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 // // template class basic_ios @@ -18,6 +17,8 @@ #include #include +#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 9347644b12b12..d99269be704fc 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 // // template class basic_ios @@ -18,6 +17,8 @@ #include #include +#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 41cb61db194d0..6d2fe06913533 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 // // template class basic_ios @@ -18,6 +17,8 @@ #include #include +#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;