Author: rogfer01 Date: Mon Nov 14 07:44:50 2016 New Revision: 286823 URL: http://llvm.org/viewvc/llvm-project?rev=286823&view=rev Log: 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 Modified: libcxx/trunk/test/std/input.output/iostreams.base/ios/basic.ios.members/copyfmt.pass.cpp libcxx/trunk/test/std/input.output/iostreams.base/ios/basic.ios.members/set_rdbuf.pass.cpp libcxx/trunk/test/std/input.output/iostreams.base/ios/iostate.flags/clear.pass.cpp libcxx/trunk/test/std/input.output/iostreams.base/ios/iostate.flags/exceptions_iostate.pass.cpp libcxx/trunk/test/std/input.output/iostreams.base/ios/iostate.flags/setstate.pass.cpp Modified: libcxx/trunk/test/std/input.output/iostreams.base/ios/basic.ios.members/copyfmt.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/iostreams.base/ios/basic.ios.members/copyfmt.pass.cpp?rev=286823&r1=286822&r2=286823&view=diff ============================================================================== --- libcxx/trunk/test/std/input.output/iostreams.base/ios/basic.ios.members/copyfmt.pass.cpp (original) +++ libcxx/trunk/test/std/input.output/iostreams.base/ios/basic.ios.members/copyfmt.pass.cpp Mon Nov 14 07:44:50 2016 @@ -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)); Modified: libcxx/trunk/test/std/input.output/iostreams.base/ios/basic.ios.members/set_rdbuf.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/iostreams.base/ios/basic.ios.members/set_rdbuf.pass.cpp?rev=286823&r1=286822&r2=286823&view=diff ============================================================================== --- libcxx/trunk/test/std/input.output/iostreams.base/ios/basic.ios.members/set_rdbuf.pass.cpp (original) +++ libcxx/trunk/test/std/input.output/iostreams.base/ios/basic.ios.members/set_rdbuf.pass.cpp Mon Nov 14 07:44:50 2016 @@ -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); } Modified: libcxx/trunk/test/std/input.output/iostreams.base/ios/iostate.flags/clear.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/iostreams.base/ios/iostate.flags/clear.pass.cpp?rev=286823&r1=286822&r2=286823&view=diff ============================================================================== --- libcxx/trunk/test/std/input.output/iostreams.base/ios/iostate.flags/clear.pass.cpp (original) +++ libcxx/trunk/test/std/input.output/iostreams.base/ios/iostate.flags/clear.pass.cpp Mon Nov 14 07:44:50 2016 @@ -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; Modified: libcxx/trunk/test/std/input.output/iostreams.base/ios/iostate.flags/exceptions_iostate.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/iostreams.base/ios/iostate.flags/exceptions_iostate.pass.cpp?rev=286823&r1=286822&r2=286823&view=diff ============================================================================== --- libcxx/trunk/test/std/input.output/iostreams.base/ios/iostate.flags/exceptions_iostate.pass.cpp (original) +++ libcxx/trunk/test/std/input.output/iostreams.base/ios/iostate.flags/exceptions_iostate.pass.cpp Mon Nov 14 07:44:50 2016 @@ -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; Modified: libcxx/trunk/test/std/input.output/iostreams.base/ios/iostate.flags/setstate.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/input.output/iostreams.base/ios/iostate.flags/setstate.pass.cpp?rev=286823&r1=286822&r2=286823&view=diff ============================================================================== --- libcxx/trunk/test/std/input.output/iostreams.base/ios/iostate.flags/setstate.pass.cpp (original) +++ libcxx/trunk/test/std/input.output/iostreams.base/ios/iostate.flags/setstate.pass.cpp Mon Nov 14 07:44:50 2016 @@ -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; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits