diff options
5 files changed, 29 insertions, 0 deletions
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_append/iterator.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_append/iterator.pass.cpp index 82e6fb5895e..d0e34597d43 100644 --- a/libcxx/test/std/strings/basic.string/string.modifiers/string_append/iterator.pass.cpp +++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_append/iterator.pass.cpp @@ -161,6 +161,7 @@ int main() S("12345678901234567890""ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")); } #endif +#ifndef TEST_HAS_NO_EXCEPTIONS { // test iterator operations that throw typedef std::string S; typedef ThrowingIterator<char> TIter; @@ -174,4 +175,5 @@ int main() test_exceptions(S(), TIter(s, s+10, 5, TIter::TADereference), TIter()); test_exceptions(S(), TIter(s, s+10, 6, TIter::TAComparison), TIter()); } +#endif } diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/iterator.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/iterator.pass.cpp index 690aebd4c2a..de43b408f14 100644 --- a/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/iterator.pass.cpp +++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/iterator.pass.cpp @@ -161,6 +161,7 @@ int main() S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")); } #endif +#ifndef TEST_HAS_NO_EXCEPTIONS { // test iterator operations that throw typedef std::string S; typedef ThrowingIterator<char> TIter; @@ -174,4 +175,5 @@ int main() test_exceptions(S(), TIter(s, s+10, 5, TIter::TADereference), TIter()); test_exceptions(S(), TIter(s, s+10, 6, TIter::TAComparison), TIter()); } +#endif } diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp index 4c29ab4ed09..3128569f957 100644 --- a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp +++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp @@ -142,6 +142,7 @@ int main() S("12345678901234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")); } #endif +#ifndef TEST_HAS_NO_EXCEPTIONS { // test iterator operations that throw typedef std::string S; typedef ThrowingIterator<char> TIter; @@ -155,6 +156,7 @@ int main() test_exceptions(S(), 0, TIter(s, s+10, 5, TIter::TADereference), TIter()); test_exceptions(S(), 0, TIter(s, s+10, 6, TIter::TAComparison), TIter()); } +#endif #if _LIBCPP_DEBUG >= 1 { std::string v; diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_iter_iter.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_iter_iter.pass.cpp index 057964112aa..60f2e3fe6d0 100644 --- a/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_iter_iter.pass.cpp +++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_iter_iter.pass.cpp @@ -990,6 +990,7 @@ int main() test8<S>(); } #endif +#ifndef TEST_HAS_NO_EXCEPTIONS { // test iterator operations that throw typedef std::string S; typedef ThrowingIterator<char> TIter; @@ -1003,4 +1004,5 @@ int main() test_exceptions(S("abcdefghijklmnopqrst"), 10, 5, TIter(s, s+10, 5, TIter::TADereference), TIter()); test_exceptions(S("abcdefghijklmnopqrst"), 10, 5, TIter(s, s+10, 6, TIter::TAComparison), TIter()); } +#endif } diff --git a/libcxx/test/support/test_iterators.h b/libcxx/test/support/test_iterators.h index d814879fa27..929c18b4d32 100644 --- a/libcxx/test/support/test_iterators.h +++ b/libcxx/test/support/test_iterators.h @@ -349,7 +349,12 @@ struct ThrowingIterator { if (action_ == TAAssignment) { if (index_ == 0) +#ifndef TEST_HAS_NO_EXCEPTIONS + assert(false); +#else throw std::runtime_error ("throw from iterator assignment"); +#endif + else --index_; } @@ -367,7 +372,11 @@ struct ThrowingIterator { if (action_ == TADereference) { if (index_ == 0) +#ifndef TEST_HAS_NO_EXCEPTIONS + assert(false); +#else throw std::runtime_error ("throw from iterator dereference"); +#endif else --index_; } @@ -379,7 +388,11 @@ struct ThrowingIterator { if (action_ == TAIncrement) { if (index_ == 0) +#ifndef TEST_HAS_NO_EXCEPTIONS + assert(false); +#else throw std::runtime_error ("throw from iterator increment"); +#endif else --index_; } @@ -399,7 +412,11 @@ struct ThrowingIterator { if (action_ == TADecrement) { if (index_ == 0) +#ifndef TEST_HAS_NO_EXCEPTIONS + assert(false); +#else throw std::runtime_error ("throw from iterator decrement"); +#endif else --index_; } @@ -418,7 +435,11 @@ struct ThrowingIterator { if (action_ == TAComparison) { if (index_ == 0) +#ifndef TEST_HAS_NO_EXCEPTIONS + assert(false); +#else throw std::runtime_error ("throw from iterator comparison"); +#endif else --index_; } |

