From 85d4c2a93f15f5b200fa4c30a2c404c11d83fca8 Mon Sep 17 00:00:00 2001 From: Marshall Clow Date: Wed, 20 Jan 2016 03:19:15 +0000 Subject: [PATCH] Fix up the tests I added for string exceptions to be skipped when exceptions are disabled git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@258279 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../string_append/iterator.pass.cpp | 2 ++ .../string_assign/iterator.pass.cpp | 2 ++ .../string_insert/iter_iter_iter.pass.cpp | 2 ++ .../iter_iter_iter_iter.pass.cpp | 2 ++ test/support/test_iterators.h | 21 +++++++++++++++++++ 5 files changed, 29 insertions(+) diff --git a/test/std/strings/basic.string/string.modifiers/string_append/iterator.pass.cpp b/test/std/strings/basic.string/string.modifiers/string_append/iterator.pass.cpp index 82e6fb589..d0e34597d 100644 --- a/test/std/strings/basic.string/string.modifiers/string_append/iterator.pass.cpp +++ b/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 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/test/std/strings/basic.string/string.modifiers/string_assign/iterator.pass.cpp b/test/std/strings/basic.string/string.modifiers/string_assign/iterator.pass.cpp index 690aebd4c..de43b408f 100644 --- a/test/std/strings/basic.string/string.modifiers/string_assign/iterator.pass.cpp +++ b/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 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/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp b/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp index 4c29ab4ed..3128569f9 100644 --- a/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp +++ b/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 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/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_iter_iter.pass.cpp b/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_iter_iter.pass.cpp index 057964112..60f2e3fe6 100644 --- a/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_iter_iter.pass.cpp +++ b/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_iter_iter.pass.cpp @@ -990,6 +990,7 @@ int main() test8(); } #endif +#ifndef TEST_HAS_NO_EXCEPTIONS { // test iterator operations that throw typedef std::string S; typedef ThrowingIterator 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/test/support/test_iterators.h b/test/support/test_iterators.h index d814879fa..929c18b4d 100644 --- a/test/support/test_iterators.h +++ b/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_; }