Protect exceptional paths under libcpp-no-exceptions
authorRoger Ferrer Ibanez <roger.ferreribanez@arm.com>
Tue, 1 Nov 2016 15:46:16 +0000 (15:46 +0000)
committerRoger Ferrer Ibanez <roger.ferreribanez@arm.com>
Tue, 1 Nov 2016 15:46:16 +0000 (15:46 +0000)
commit8a915ed644b910ae9d7d2aef7ad491791fbd4944
tree94c9f6f9eb9628a577e8d227b3b2646c3e03a2d1
parent6dd8fab443451e1bbab87186057a80e3088d6d84
Protect exceptional paths under libcpp-no-exceptions

These tests are of the form

try {
   action-that-may-throw
   assert(!exceptional-condition)
   assert(some-other-facts)
 } catch (relevant-exception) {
   assert(exceptional-condition)
 }

Under libcpp-no-exceptions there is still value in verifying
some-other-facts while avoiding the exceptional case. So for these tests
just conditionally check some-other-facts if exceptional-condition is
false. When exception are supported make sure that a true
exceptional-condition throws an exception

Differential Revision: https://reviews.llvm.org/D26136

llvm-svn: 285697
28 files changed:
libcxx/test/std/strings/basic.string/string.access/at.pass.cpp
libcxx/test/std/strings/basic.string/string.capacity/reserve.pass.cpp
libcxx/test/std/strings/basic.string/string.capacity/resize_size.pass.cpp
libcxx/test/std/strings/basic.string/string.capacity/resize_size_char.pass.cpp
libcxx/test/std/strings/basic.string/string.cons/substr.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_append/T_size_size.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_append/string_size_size.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_assign/T_size_size.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_assign/string_size_size.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_copy/copy.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_erase/size_size.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_T_size_size.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_pointer.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_pointer_size.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_size_char.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_string.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_string_size_size.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_T_size_size.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_pointer.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_pointer_size.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_size_char.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_string.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_string_size_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_T_size_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_pointer.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_pointer_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_string.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_string_size_size.pass.cpp