diff options
Diffstat (limited to 'libcxx/test/std/strings/basic.string/string.modifiers/string_insert')
11 files changed, 133 insertions, 432 deletions
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_char.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_char.pass.cpp index 98831abee6e4..bc0844865154 100644 --- a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_char.pass.cpp +++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_char.pass.cpp @@ -6,9 +6,11 @@ // //===----------------------------------------------------------------------===// +// XFAIL: LIBCXX-AIX-FIXME + // <string> -// iterator insert(const_iterator p, charT c); +// iterator insert(const_iterator p, charT c); // constexpr since C++20 #include <string> #include <stdexcept> @@ -32,7 +34,7 @@ test(S& s, typename S::const_iterator p, typename S::value_type c, S expected) assert(i == p); } -bool test() { +TEST_CONSTEXPR_CXX20 bool test() { { typedef std::string S; S s; @@ -79,7 +81,7 @@ int main(int, char**) { test(); #if TEST_STD_VER > 17 - // static_assert(test()); + static_assert(test()); #endif return 0; diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_initializer_list.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_initializer_list.pass.cpp index 2b8d7d5c40ce..051bf30e3ba7 100644 --- a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_initializer_list.pass.cpp +++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_initializer_list.pass.cpp @@ -8,9 +8,11 @@ // UNSUPPORTED: c++03 +// XFAIL: LIBCXX-AIX-FIXME + // <string> -// iterator insert(const_iterator p, initializer_list<charT> il); +// iterator insert(const_iterator p, initializer_list<charT> il); // constexpr since C++20 #include <string> @@ -19,7 +21,7 @@ #include "test_macros.h" #include "min_allocator.h" -bool test() { +TEST_CONSTEXPR_CXX20 bool test() { { std::string s("123456"); std::string::iterator i = s.insert(s.begin() + 3, {'a', 'b', 'c'}); @@ -41,7 +43,7 @@ int main(int, char**) { test(); #if TEST_STD_VER > 17 - // static_assert(test()); + static_assert(test()); #endif return 0; 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 a4e78382ce39..7a03868eaa01 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 @@ -6,10 +6,12 @@ // //===----------------------------------------------------------------------===// +// XFAIL: LIBCXX-AIX-FIXME + // <string> // template<class InputIterator> -// iterator insert(const_iterator p, InputIterator first, InputIterator last); +// iterator insert(const_iterator p, InputIterator first, InputIterator last); // constexpr since C++20 #include <string> #include <cassert> @@ -56,7 +58,7 @@ test_exceptions(S s, typename S::difference_type pos, It first, It last) } #endif -bool test() { +TEST_CONSTEXPR_CXX20 bool test() { { typedef std::string S; const char* s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; @@ -150,7 +152,7 @@ bool test() { } #endif #ifndef TEST_HAS_NO_EXCEPTIONS - { // test iterator operations that throw + if (!TEST_IS_CONSTANT_EVALUATED) { // test iterator operations that throw typedef std::string S; typedef ThrowingIterator<char> TIter; typedef cpp17_input_iterator<TIter> IIter; @@ -193,7 +195,7 @@ bool test() { assert(s == "ABCD"); } - { // regression-test inserting into self in sneaky ways + if (!TEST_IS_CONSTANT_EVALUATED) { // regression-test inserting into self in sneaky ways std::string s_short = "hello"; std::string s_long = "Lorem ipsum dolor sit amet, consectetur/"; std::string s_othertype = "hello"; @@ -238,7 +240,7 @@ int main(int, char**) { test(); #if TEST_STD_VER > 17 - // static_assert(test()); + static_assert(test()); #endif return 0; diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_size_char.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_size_char.pass.cpp index 7af0be6898f0..3b1aea24ab6f 100644 --- a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_size_char.pass.cpp +++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_size_char.pass.cpp @@ -6,9 +6,11 @@ // //===----------------------------------------------------------------------===// +// XFAIL: LIBCXX-AIX-FIXME + // <string> -// iterator insert(const_iterator p, size_type n, charT c); +// iterator insert(const_iterator p, size_type n, charT c); // constexpr since C++20 #include <string> #include <cassert> @@ -28,7 +30,7 @@ test(S s, typename S::difference_type pos, typename S::size_type n, assert(s == expected); } -bool test() { +TEST_CONSTEXPR_CXX20 bool test() { { typedef std::string S; test(S(""), 0, 0, '1', S("")); @@ -173,7 +175,7 @@ int main(int, char**) { test(); #if TEST_STD_VER > 17 - // static_assert(test()); + static_assert(test()); #endif return 0; diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_T_size_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_T_size_size.pass.cpp index 6d4b036b7332..b166ba8b79f6 100644 --- a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_T_size_size.pass.cpp +++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_T_size_size.pass.cpp @@ -6,10 +6,12 @@ // //===----------------------------------------------------------------------===// +// XFAIL: LIBCXX-AIX-FIXME + // <string> // template <class T> -// basic_string& assign(size_type pos1, const T& t, size_type pos2, size_type n=npos); // C++17 +// basic_string& assign(size_type pos1, const T& t, size_type pos2, size_type n=npos); // C++17, constexpr since C++20 // // Mostly we're testing string_view here @@ -35,7 +37,7 @@ test(S s, typename S::size_type pos1, SV sv, typename S::size_type pos2, assert(s == expected); } #ifndef TEST_HAS_NO_EXCEPTIONS - else + else if (!TEST_IS_CONSTANT_EVALUATED) { try { @@ -65,7 +67,7 @@ test_npos(S s, typename S::size_type pos1, SV sv, typename S::size_type pos2, S assert(s == expected); } #ifndef TEST_HAS_NO_EXCEPTIONS - else + else if (!TEST_IS_CONSTANT_EVALUATED) { try { @@ -1792,7 +1794,7 @@ TEST_CONSTEXPR_CXX20 bool test30() } template <class S, class SV> -bool test31() { +TEST_CONSTEXPR_CXX20 bool test31() { S s; SV sv = "EFGH"; char arr[] = "IJKL"; @@ -1864,38 +1866,38 @@ void test() { test31<S, SV>(); #if TEST_STD_VER > 17 - // static_assert(test0<S, SV>()); - // static_assert(test1<S, SV>()); - // static_assert(test2<S, SV>()); - // static_assert(test3<S, SV>()); - // static_assert(test4<S, SV>()); - // static_assert(test5<S, SV>()); - // static_assert(test6<S, SV>()); - // static_assert(test7<S, SV>()); - // static_assert(test8<S, SV>()); - // static_assert(test9<S, SV>()); - // static_assert(test10<S, SV>()); - // static_assert(test11<S, SV>()); - // static_assert(test12<S, SV>()); - // static_assert(test13<S, SV>()); - // static_assert(test14<S, SV>()); - // static_assert(test15<S, SV>()); - // static_assert(test16<S, SV>()); - // static_assert(test17<S, SV>()); - // static_assert(test18<S, SV>()); - // static_assert(test19<S, SV>()); - // static_assert(test20<S, SV>()); - // static_assert(test21<S, SV>()); - // static_assert(test22<S, SV>()); - // static_assert(test23<S, SV>()); - // static_assert(test24<S, SV>()); - // static_assert(test25<S, SV>()); - // static_assert(test26<S, SV>()); - // static_assert(test27<S, SV>()); - // static_assert(test28<S, SV>()); - // static_assert(test29<S, SV>()); - // static_assert(test30<S, SV>()); - // static_assert(test31<S, SV>()); + static_assert(test0<S, SV>()); + static_assert(test1<S, SV>()); + static_assert(test2<S, SV>()); + static_assert(test3<S, SV>()); + static_assert(test4<S, SV>()); + static_assert(test5<S, SV>()); + static_assert(test6<S, SV>()); + static_assert(test7<S, SV>()); + static_assert(test8<S, SV>()); + static_assert(test9<S, SV>()); + static_assert(test10<S, SV>()); + static_assert(test11<S, SV>()); + static_assert(test12<S, SV>()); + static_assert(test13<S, SV>()); + static_assert(test14<S, SV>()); + static_assert(test15<S, SV>()); + static_assert(test16<S, SV>()); + static_assert(test17<S, SV>()); + static_assert(test18<S, SV>()); + static_assert(test19<S, SV>()); + static_assert(test20<S, SV>()); + static_assert(test21<S, SV>()); + static_assert(test22<S, SV>()); + static_assert(test23<S, SV>()); + static_assert(test24<S, SV>()); + static_assert(test25<S, SV>()); + static_assert(test26<S, SV>()); + static_assert(test27<S, SV>()); + static_assert(test28<S, SV>()); + static_assert(test29<S, SV>()); + static_assert(test30<S, SV>()); + static_assert(test31<S, SV>()); #endif } diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_pointer.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_pointer.pass.cpp index d619f5e601cc..d21ef83be3d0 100644 --- a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_pointer.pass.cpp +++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_pointer.pass.cpp @@ -6,10 +6,12 @@ // //===----------------------------------------------------------------------===// +// XFAIL: LIBCXX-AIX-FIXME + // <string> // basic_string<charT,traits,Allocator>& -// insert(size_type pos, const charT* s); +// insert(size_type pos, const charT* s); // constexpr since C++20 #include <string> #include <stdexcept> @@ -31,7 +33,7 @@ test(S s, typename S::size_type pos, const typename S::value_type* str, S expect assert(s == expected); } #ifndef TEST_HAS_NO_EXCEPTIONS - else + else if (!TEST_IS_CONSTANT_EVALUATED) { try { @@ -47,7 +49,7 @@ test(S s, typename S::size_type pos, const typename S::value_type* str, S expect #endif } -bool test() { +TEST_CONSTEXPR_CXX20 bool test() { { typedef std::string S; test(S(""), 0, "", S("")); @@ -240,7 +242,7 @@ int main(int, char**) { test(); #if TEST_STD_VER > 17 - // static_assert(test()); + static_assert(test()); #endif return 0; diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_pointer_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_pointer_size.pass.cpp index 0a54a4309e4e..7678889f5a3a 100644 --- a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_pointer_size.pass.cpp +++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_pointer_size.pass.cpp @@ -6,10 +6,12 @@ // //===----------------------------------------------------------------------===// +// XFAIL: LIBCXX-AIX-FIXME + // <string> // basic_string<charT,traits,Allocator>& -// insert(size_type pos, const charT* s, size_type n); +// insert(size_type pos, const charT* s, size_type n); // constexpr since C++20 #include <string> #include <stdexcept> @@ -32,7 +34,7 @@ test(S s, typename S::size_type pos, const typename S::value_type* str, assert(s == expected); } #ifndef TEST_HAS_NO_EXCEPTIONS - else + else if (!TEST_IS_CONSTANT_EVALUATED) { try { @@ -48,333 +50,9 @@ test(S s, typename S::size_type pos, const typename S::value_type* str, #endif } -bool test() { - { - typedef std::string S; - test(S(""), 0, "", 0, S("")); - test(S(""), 0, "12345", 0, S("")); - test(S(""), 0, "12345", 1, S("1")); - test(S(""), 0, "12345", 2, S("12")); - test(S(""), 0, "12345", 4, S("1234")); - test(S(""), 0, "12345", 5, S("12345")); - test(S(""), 0, "1234567890", 0, S("")); - test(S(""), 0, "1234567890", 1, S("1")); - test(S(""), 0, "1234567890", 5, S("12345")); - test(S(""), 0, "1234567890", 9, S("123456789")); - test(S(""), 0, "1234567890", 10, S("1234567890")); - test(S(""), 0, "12345678901234567890", 0, S("")); - test(S(""), 0, "12345678901234567890", 1, S("1")); - test(S(""), 0, "12345678901234567890", 10, S("1234567890")); - test(S(""), 0, "12345678901234567890", 19, S("1234567890123456789")); - test(S(""), 0, "12345678901234567890", 20, S("12345678901234567890")); - test(S(""), 1, "", 0, S("can't happen")); - test(S(""), 1, "12345", 0, S("can't happen")); - test(S(""), 1, "12345", 1, S("can't happen")); - test(S(""), 1, "12345", 2, S("can't happen")); - test(S(""), 1, "12345", 4, S("can't happen")); - test(S(""), 1, "12345", 5, S("can't happen")); - test(S(""), 1, "1234567890", 0, S("can't happen")); - test(S(""), 1, "1234567890", 1, S("can't happen")); - test(S(""), 1, "1234567890", 5, S("can't happen")); - test(S(""), 1, "1234567890", 9, S("can't happen")); - test(S(""), 1, "1234567890", 10, S("can't happen")); - test(S(""), 1, "12345678901234567890", 0, S("can't happen")); - test(S(""), 1, "12345678901234567890", 1, S("can't happen")); - test(S(""), 1, "12345678901234567890", 10, S("can't happen")); - test(S(""), 1, "12345678901234567890", 19, S("can't happen")); - test(S(""), 1, "12345678901234567890", 20, S("can't happen")); - test(S("abcde"), 0, "", 0, S("abcde")); - test(S("abcde"), 0, "12345", 0, S("abcde")); - test(S("abcde"), 0, "12345", 1, S("1abcde")); - test(S("abcde"), 0, "12345", 2, S("12abcde")); - test(S("abcde"), 0, "12345", 4, S("1234abcde")); - test(S("abcde"), 0, "12345", 5, S("12345abcde")); - test(S("abcde"), 0, "1234567890", 0, S("abcde")); - test(S("abcde"), 0, "1234567890", 1, S("1abcde")); - test(S("abcde"), 0, "1234567890", 5, S("12345abcde")); - test(S("abcde"), 0, "1234567890", 9, S("123456789abcde")); - test(S("abcde"), 0, "1234567890", 10, S("1234567890abcde")); - test(S("abcde"), 0, "12345678901234567890", 0, S("abcde")); - test(S("abcde"), 0, "12345678901234567890", 1, S("1abcde")); - test(S("abcde"), 0, "12345678901234567890", 10, S("1234567890abcde")); - test(S("abcde"), 0, "12345678901234567890", 19, S("1234567890123456789abcde")); - test(S("abcde"), 0, "12345678901234567890", 20, S("12345678901234567890abcde")); - test(S("abcde"), 1, "", 0, S("abcde")); - test(S("abcde"), 1, "12345", 0, S("abcde")); - test(S("abcde"), 1, "12345", 1, S("a1bcde")); - test(S("abcde"), 1, "12345", 2, S("a12bcde")); - test(S("abcde"), 1, "12345", 4, S("a1234bcde")); - test(S("abcde"), 1, "12345", 5, S("a12345bcde")); - test(S("abcde"), 1, "1234567890", 0, S("abcde")); - test(S("abcde"), 1, "1234567890", 1, S("a1bcde")); - test(S("abcde"), 1, "1234567890", 5, S("a12345bcde")); - test(S("abcde"), 1, "1234567890", 9, S("a123456789bcde")); - test(S("abcde"), 1, "1234567890", 10, S("a1234567890bcde")); - test(S("abcde"), 1, "12345678901234567890", 0, S("abcde")); - test(S("abcde"), 1, "12345678901234567890", 1, S("a1bcde")); - test(S("abcde"), 1, "12345678901234567890", 10, S("a1234567890bcde")); - test(S("abcde"), 1, "12345678901234567890", 19, S("a1234567890123456789bcde")); - test(S("abcde"), 1, "12345678901234567890", 20, S("a12345678901234567890bcde")); - test(S("abcde"), 2, "", 0, S("abcde")); - test(S("abcde"), 2, "12345", 0, S("abcde")); - test(S("abcde"), 2, "12345", 1, S("ab1cde")); - test(S("abcde"), 2, "12345", 2, S("ab12cde")); - test(S("abcde"), 2, "12345", 4, S("ab1234cde")); - test(S("abcde"), 2, "12345", 5, S("ab12345cde")); - test(S("abcde"), 2, "1234567890", 0, S("abcde")); - test(S("abcde"), 2, "1234567890", 1, S("ab1cde")); - test(S("abcde"), 2, "1234567890", 5, S("ab12345cde")); - test(S("abcde"), 2, "1234567890", 9, S("ab123456789cde")); - test(S("abcde"), 2, "1234567890", 10, S("ab1234567890cde")); - test(S("abcde"), 2, "12345678901234567890", 0, S("abcde")); - test(S("abcde"), 2, "12345678901234567890", 1, S("ab1cde")); - test(S("abcde"), 2, "12345678901234567890", 10, S("ab1234567890cde")); - test(S("abcde"), 2, "12345678901234567890", 19, S("ab1234567890123456789cde")); - test(S("abcde"), 2, "12345678901234567890", 20, S("ab12345678901234567890cde")); - test(S("abcde"), 4, "", 0, S("abcde")); - test(S("abcde"), 4, "12345", 0, S("abcde")); - test(S("abcde"), 4, "12345", 1, S("abcd1e")); - test(S("abcde"), 4, "12345", 2, S("abcd12e")); - test(S("abcde"), 4, "12345", 4, S("abcd1234e")); - test(S("abcde"), 4, "12345", 5, S("abcd12345e")); - test(S("abcde"), 4, "1234567890", 0, S("abcde")); - test(S("abcde"), 4, "1234567890", 1, S("abcd1e")); - test(S("abcde"), 4, "1234567890", 5, S("abcd12345e")); - test(S("abcde"), 4, "1234567890", 9, S("abcd123456789e")); - test(S("abcde"), 4, "1234567890", 10, S("abcd1234567890e")); - test(S("abcde"), 4, "12345678901234567890", 0, S("abcde")); - test(S("abcde"), 4, "12345678901234567890", 1, S("abcd1e")); - test(S("abcde"), 4, "12345678901234567890", 10, S("abcd1234567890e")); - test(S("abcde"), 4, "12345678901234567890", 19, S("abcd1234567890123456789e")); - test(S("abcde"), 4, "12345678901234567890", 20, S("abcd12345678901234567890e")); - test(S("abcde"), 5, "", 0, S("abcde")); - test(S("abcde"), 5, "12345", 0, S("abcde")); - test(S("abcde"), 5, "12345", 1, S("abcde1")); - test(S("abcde"), 5, "12345", 2, S("abcde12")); - test(S("abcde"), 5, "12345", 4, S("abcde1234")); - test(S("abcde"), 5, "12345", 5, S("abcde12345")); - test(S("abcde"), 5, "1234567890", 0, S("abcde")); - test(S("abcde"), 5, "1234567890", 1, S("abcde1")); - test(S("abcde"), 5, "1234567890", 5, S("abcde12345")); - test(S("abcde"), 5, "1234567890", 9, S("abcde123456789")); - test(S("abcde"), 5, "1234567890", 10, S("abcde1234567890")); - test(S("abcde"), 5, "12345678901234567890", 0, S("abcde")); - test(S("abcde"), 5, "12345678901234567890", 1, S("abcde1")); - test(S("abcde"), 5, "12345678901234567890", 10, S("abcde1234567890")); - test(S("abcde"), 5, "12345678901234567890", 19, S("abcde1234567890123456789")); - test(S("abcde"), 5, "12345678901234567890", 20, S("abcde12345678901234567890")); - test(S("abcde"), 6, "", 0, S("can't happen")); - test(S("abcde"), 6, "12345", 0, S("can't happen")); - test(S("abcde"), 6, "12345", 1, S("can't happen")); - test(S("abcde"), 6, "12345", 2, S("can't happen")); - test(S("abcde"), 6, "12345", 4, S("can't happen")); - test(S("abcde"), 6, "12345", 5, S("can't happen")); - test(S("abcde"), 6, "1234567890", 0, S("can't happen")); - test(S("abcde"), 6, "1234567890", 1, S("can't happen")); - test(S("abcde"), 6, "1234567890", 5, S("can't happen")); - test(S("abcde"), 6, "1234567890", 9, S("can't happen")); - test(S("abcde"), 6, "1234567890", 10, S("can't happen")); - test(S("abcde"), 6, "12345678901234567890", 0, S("can't happen")); - test(S("abcde"), 6, "12345678901234567890", 1, S("can't happen")); - test(S("abcde"), 6, "12345678901234567890", 10, S("can't happen")); - test(S("abcde"), 6, "12345678901234567890", 19, S("can't happen")); - test(S("abcde"), 6, "12345678901234567890", 20, S("can't happen")); - test(S("abcdefghij"), 0, "", 0, S("abcdefghij")); - test(S("abcdefghij"), 0, "12345", 0, S("abcdefghij")); - test(S("abcdefghij"), 0, "12345", 1, S("1abcdefghij")); - test(S("abcdefghij"), 0, "12345", 2, S("12abcdefghij")); - test(S("abcdefghij"), 0, "12345", 4, S("1234abcdefghij")); - test(S("abcdefghij"), 0, "12345", 5, S("12345abcdefghij")); - test(S("abcdefghij"), 0, "1234567890", 0, S("abcdefghij")); - test(S("abcdefghij"), 0, "1234567890", 1, S("1abcdefghij")); - test(S("abcdefghij"), 0, "1234567890", 5, S("12345abcdefghij")); - test(S("abcdefghij"), 0, "1234567890", 9, S("123456789abcdefghij")); - test(S("abcdefghij"), 0, "1234567890", 10, S("1234567890abcdefghij")); - test(S("abcdefghij"), 0, "12345678901234567890", 0, S("abcdefghij")); - test(S("abcdefghij"), 0, "12345678901234567890", 1, S("1abcdefghij")); - test(S("abcdefghij"), 0, "12345678901234567890", 10, S("1234567890abcdefghij")); - test(S("abcdefghij"), 0, "12345678901234567890", 19, S("1234567890123456789abcdefghij")); - test(S("abcdefghij"), 0, "12345678901234567890", 20, S("12345678901234567890abcdefghij")); - test(S("abcdefghij"), 1, "", 0, S("abcdefghij")); - test(S("abcdefghij"), 1, "12345", 0, S("abcdefghij")); - test(S("abcdefghij"), 1, "12345", 1, S("a1bcdefghij")); - test(S("abcdefghij"), 1, "12345", 2, S("a12bcdefghij")); - test(S("abcdefghij"), 1, "12345", 4, S("a1234bcdefghij")); - test(S("abcdefghij"), 1, "12345", 5, S("a12345bcdefghij")); - test(S("abcdefghij"), 1, "1234567890", 0, S("abcdefghij")); - test(S("abcdefghij"), 1, "1234567890", 1, S("a1bcdefghij")); - test(S("abcdefghij"), 1, "1234567890", 5, S("a12345bcdefghij")); - test(S("abcdefghij"), 1, "1234567890", 9, S("a123456789bcdefghij")); - test(S("abcdefghij"), 1, "1234567890", 10, S("a1234567890bcdefghij")); - test(S("abcdefghij"), 1, "12345678901234567890", 0, S("abcdefghij")); - test(S("abcdefghij"), 1, "12345678901234567890", 1, S("a1bcdefghij")); - test(S("abcdefghij"), 1, "12345678901234567890", 10, S("a1234567890bcdefghij")); - test(S("abcdefghij"), 1, "12345678901234567890", 19, S("a1234567890123456789bcdefghij")); - test(S("abcdefghij"), 1, "12345678901234567890", 20, S("a12345678901234567890bcdefghij")); - test(S("abcdefghij"), 5, "", 0, S("abcdefghij")); - test(S("abcdefghij"), 5, "12345", 0, S("abcdefghij")); - test(S("abcdefghij"), 5, "12345", 1, S("abcde1fghij")); - test(S("abcdefghij"), 5, "12345", 2, S("abcde12fghij")); - test(S("abcdefghij"), 5, "12345", 4, S("abcde1234fghij")); - test(S("abcdefghij"), 5, "12345", 5, S("abcde12345fghij")); - test(S("abcdefghij"), 5, "1234567890", 0, S("abcdefghij")); - test(S("abcdefghij"), 5, "1234567890", 1, S("abcde1fghij")); - test(S("abcdefghij"), 5, "1234567890", 5, S("abcde12345fghij")); - test(S("abcdefghij"), 5, "1234567890", 9, S("abcde123456789fghij")); - test(S("abcdefghij"), 5, "1234567890", 10, S("abcde1234567890fghij")); - test(S("abcdefghij"), 5, "12345678901234567890", 0, S("abcdefghij")); - test(S("abcdefghij"), 5, "12345678901234567890", 1, S("abcde1fghij")); - test(S("abcdefghij"), 5, "12345678901234567890", 10, S("abcde1234567890fghij")); - test(S("abcdefghij"), 5, "12345678901234567890", 19, S("abcde1234567890123456789fghij")); - test(S("abcdefghij"), 5, "12345678901234567890", 20, S("abcde12345678901234567890fghij")); - test(S("abcdefghij"), 9, "", 0, S("abcdefghij")); - test(S("abcdefghij"), 9, "12345", 0, S("abcdefghij")); - test(S("abcdefghij"), 9, "12345", 1, S("abcdefghi1j")); - test(S("abcdefghij"), 9, "12345", 2, S("abcdefghi12j")); - test(S("abcdefghij"), 9, "12345", 4, S("abcdefghi1234j")); - test(S("abcdefghij"), 9, "12345", 5, S("abcdefghi12345j")); - test(S("abcdefghij"), 9, "1234567890", 0, S("abcdefghij")); - test(S("abcdefghij"), 9, "1234567890", 1, S("abcdefghi1j")); - test(S("abcdefghij"), 9, "1234567890", 5, S("abcdefghi12345j")); - test(S("abcdefghij"), 9, "1234567890", 9, S("abcdefghi123456789j")); - test(S("abcdefghij"), 9, "1234567890", 10, S("abcdefghi1234567890j")); - test(S("abcdefghij"), 9, "12345678901234567890", 0, S("abcdefghij")); - test(S("abcdefghij"), 9, "12345678901234567890", 1, S("abcdefghi1j")); - test(S("abcdefghij"), 9, "12345678901234567890", 10, S("abcdefghi1234567890j")); - test(S("abcdefghij"), 9, "12345678901234567890", 19, S("abcdefghi1234567890123456789j")); - test(S("abcdefghij"), 9, "12345678901234567890", 20, S("abcdefghi12345678901234567890j")); - test(S("abcdefghij"), 10, "", 0, S("abcdefghij")); - test(S("abcdefghij"), 10, "12345", 0, S("abcdefghij")); - test(S("abcdefghij"), 10, "12345", 1, S("abcdefghij1")); - test(S("abcdefghij"), 10, "12345", 2, S("abcdefghij12")); - test(S("abcdefghij"), 10, "12345", 4, S("abcdefghij1234")); - test(S("abcdefghij"), 10, "12345", 5, S("abcdefghij12345")); - test(S("abcdefghij"), 10, "1234567890", 0, S("abcdefghij")); - test(S("abcdefghij"), 10, "1234567890", 1, S("abcdefghij1")); - test(S("abcdefghij"), 10, "1234567890", 5, S("abcdefghij12345")); - test(S("abcdefghij"), 10, "1234567890", 9, S("abcdefghij123456789")); - test(S("abcdefghij"), 10, "1234567890", 10, S("abcdefghij1234567890")); - test(S("abcdefghij"), 10, "12345678901234567890", 0, S("abcdefghij")); - test(S("abcdefghij"), 10, "12345678901234567890", 1, S("abcdefghij1")); - test(S("abcdefghij"), 10, "12345678901234567890", 10, S("abcdefghij1234567890")); - test(S("abcdefghij"), 10, "12345678901234567890", 19, S("abcdefghij1234567890123456789")); - test(S("abcdefghij"), 10, "12345678901234567890", 20, S("abcdefghij12345678901234567890")); - test(S("abcdefghij"), 11, "", 0, S("can't happen")); - test(S("abcdefghij"), 11, "12345", 0, S("can't happen")); - test(S("abcdefghij"), 11, "12345", 1, S("can't happen")); - test(S("abcdefghij"), 11, "12345", 2, S("can't happen")); - test(S("abcdefghij"), 11, "12345", 4, S("can't happen")); - test(S("abcdefghij"), 11, "12345", 5, S("can't happen")); - test(S("abcdefghij"), 11, "1234567890", 0, S("can't happen")); - test(S("abcdefghij"), 11, "1234567890", 1, S("can't happen")); - test(S("abcdefghij"), 11, "1234567890", 5, S("can't happen")); - test(S("abcdefghij"), 11, "1234567890", 9, S("can't happen")); - test(S("abcdefghij"), 11, "1234567890", 10, S("can't happen")); - test(S("abcdefghij"), 11, "12345678901234567890", 0, S("can't happen")); - test(S("abcdefghij"), 11, "12345678901234567890", 1, S("can't happen")); - test(S("abcdefghij"), 11, "12345678901234567890", 10, S("can't happen")); - test(S("abcdefghij"), 11, "12345678901234567890", 19, S("can't happen")); - test(S("abcdefghij"), 11, "12345678901234567890", 20, S("can't happen")); - test(S("abcdefghijklmnopqrst"), 0, "", 0, S("abcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 0, "12345", 0, S("abcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 0, "12345", 1, S("1abcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 0, "12345", 2, S("12abcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 0, "12345", 4, S("1234abcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 0, "12345", 5, S("12345abcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 0, "1234567890", 0, S("abcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 0, "1234567890", 1, S("1abcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 0, "1234567890", 5, S("12345abcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 0, "1234567890", 9, S("123456789abcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 0, "1234567890", 10, S("1234567890abcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 0, "12345678901234567890", 0, S("abcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 0, "12345678901234567890", 1, S("1abcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 0, "12345678901234567890", 10, S("1234567890abcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 0, "12345678901234567890", 19, S("1234567890123456789abcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 0, "12345678901234567890", 20, S("12345678901234567890abcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 1, "", 0, S("abcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 1, "12345", 0, S("abcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 1, "12345", 1, S("a1bcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 1, "12345", 2, S("a12bcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 1, "12345", 4, S("a1234bcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 1, "12345", 5, S("a12345bcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 1, "1234567890", 0, S("abcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 1, "1234567890", 1, S("a1bcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 1, "1234567890", 5, S("a12345bcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 1, "1234567890", 9, S("a123456789bcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 1, "1234567890", 10, S("a1234567890bcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 1, "12345678901234567890", 0, S("abcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 1, "12345678901234567890", 1, S("a1bcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 1, "12345678901234567890", 10, S("a1234567890bcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 1, "12345678901234567890", 19, S("a1234567890123456789bcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 1, "12345678901234567890", 20, S("a12345678901234567890bcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 10, "", 0, S("abcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 10, "12345", 0, S("abcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 10, "12345", 1, S("abcdefghij1klmnopqrst")); - test(S("abcdefghijklmnopqrst"), 10, "12345", 2, S("abcdefghij12klmnopqrst")); - test(S("abcdefghijklmnopqrst"), 10, "12345", 4, S("abcdefghij1234klmnopqrst")); - test(S("abcdefghijklmnopqrst"), 10, "12345", 5, S("abcdefghij12345klmnopqrst")); - test(S("abcdefghijklmnopqrst"), 10, "1234567890", 0, S("abcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 10, "1234567890", 1, S("abcdefghij1klmnopqrst")); - test(S("abcdefghijklmnopqrst"), 10, "1234567890", 5, S("abcdefghij12345klmnopqrst")); - test(S("abcdefghijklmnopqrst"), 10, "1234567890", 9, S("abcdefghij123456789klmnopqrst")); - test(S("abcdefghijklmnopqrst"), 10, "1234567890", 10, S("abcdefghij1234567890klmnopqrst")); - test(S("abcdefghijklmnopqrst"), 10, "12345678901234567890", 0, S("abcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 10, "12345678901234567890", 1, S("abcdefghij1klmnopqrst")); - test(S("abcdefghijklmnopqrst"), 10, "12345678901234567890", 10, S("abcdefghij1234567890klmnopqrst")); - test(S("abcdefghijklmnopqrst"), 10, "12345678901234567890", 19, S("abcdefghij1234567890123456789klmnopqrst")); - test(S("abcdefghijklmnopqrst"), 10, "12345678901234567890", 20, S("abcdefghij12345678901234567890klmnopqrst")); - test(S("abcdefghijklmnopqrst"), 19, "", 0, S("abcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 19, "12345", 0, S("abcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 19, "12345", 1, S("abcdefghijklmnopqrs1t")); - test(S("abcdefghijklmnopqrst"), 19, "12345", 2, S("abcdefghijklmnopqrs12t")); - test(S("abcdefghijklmnopqrst"), 19, "12345", 4, S("abcdefghijklmnopqrs1234t")); - test(S("abcdefghijklmnopqrst"), 19, "12345", 5, S("abcdefghijklmnopqrs12345t")); - test(S("abcdefghijklmnopqrst"), 19, "1234567890", 0, S("abcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 19, "1234567890", 1, S("abcdefghijklmnopqrs1t")); - test(S("abcdefghijklmnopqrst"), 19, "1234567890", 5, S("abcdefghijklmnopqrs12345t")); - test(S("abcdefghijklmnopqrst"), 19, "1234567890", 9, S("abcdefghijklmnopqrs123456789t")); - test(S("abcdefghijklmnopqrst"), 19, "1234567890", 10, S("abcdefghijklmnopqrs1234567890t")); - test(S("abcdefghijklmnopqrst"), 19, "12345678901234567890", 0, S("abcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 19, "12345678901234567890", 1, S("abcdefghijklmnopqrs1t")); - test(S("abcdefghijklmnopqrst"), 19, "12345678901234567890", 10, S("abcdefghijklmnopqrs1234567890t")); - test(S("abcdefghijklmnopqrst"), 19, "12345678901234567890", 19, S("abcdefghijklmnopqrs1234567890123456789t")); - test(S("abcdefghijklmnopqrst"), 19, "12345678901234567890", 20, S("abcdefghijklmnopqrs12345678901234567890t")); - test(S("abcdefghijklmnopqrst"), 20, "", 0, S("abcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 20, "12345", 0, S("abcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 20, "12345", 1, S("abcdefghijklmnopqrst1")); - test(S("abcdefghijklmnopqrst"), 20, "12345", 2, S("abcdefghijklmnopqrst12")); - test(S("abcdefghijklmnopqrst"), 20, "12345", 4, S("abcdefghijklmnopqrst1234")); - test(S("abcdefghijklmnopqrst"), 20, "12345", 5, S("abcdefghijklmnopqrst12345")); - test(S("abcdefghijklmnopqrst"), 20, "1234567890", 0, S("abcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 20, "1234567890", 1, S("abcdefghijklmnopqrst1")); - test(S("abcdefghijklmnopqrst"), 20, "1234567890", 5, S("abcdefghijklmnopqrst12345")); - test(S("abcdefghijklmnopqrst"), 20, "1234567890", 9, S("abcdefghijklmnopqrst123456789")); - test(S("abcdefghijklmnopqrst"), 20, "1234567890", 10, S("abcdefghijklmnopqrst1234567890")); - test(S("abcdefghijklmnopqrst"), 20, "12345678901234567890", 0, S("abcdefghijklmnopqrst")); - test(S("abcdefghijklmnopqrst"), 20, "12345678901234567890", 1, S("abcdefghijklmnopqrst1")); - test(S("abcdefghijklmnopqrst"), 20, "12345678901234567890", 10, S("abcdefghijklmnopqrst1234567890")); - test(S("abcdefghijklmnopqrst"), 20, "12345678901234567890", 19, S("abcdefghijklmnopqrst1234567890123456789")); - test(S("abcdefghijklmnopqrst"), 20, "12345678901234567890", 20, S("abcdefghijklmnopqrst12345678901234567890")); - test(S("abcdefghijklmnopqrst"), 21, "", 0, S("can't happen")); - test(S("abcdefghijklmnopqrst"), 21, "12345", 0, S("can't happen")); - test(S("abcdefghijklmnopqrst"), 21, "12345", 1, S("can't happen")); - test(S("abcdefghijklmnopqrst"), 21, "12345", 2, S("can't happen")); - test(S("abcdefghijklmnopqrst"), 21, "12345", 4, S("can't happen")); - test(S("abcdefghijklmnopqrst"), 21, "12345", 5, S("can't happen")); - test(S("abcdefghijklmnopqrst"), 21, "1234567890", 0, S("can't happen")); - test(S("abcdefghijklmnopqrst"), 21, "1234567890", 1, S("can't happen")); - test(S("abcdefghijklmnopqrst"), 21, "1234567890", 5, S("can't happen")); - test(S("abcdefghijklmnopqrst"), 21, "1234567890", 9, S("can't happen")); - test(S("abcdefghijklmnopqrst"), 21, "1234567890", 10, S("can't happen")); - test(S("abcdefghijklmnopqrst"), 21, "12345678901234567890", 0, S("can't happen")); - test(S("abcdefghijklmnopqrst"), 21, "12345678901234567890", 1, S("can't happen")); - test(S("abcdefghijklmnopqrst"), 21, "12345678901234567890", 10, S("can't happen")); - test(S("abcdefghijklmnopqrst"), 21, "12345678901234567890", 19, S("can't happen")); - test(S("abcdefghijklmnopqrst"), 21, "12345678901234567890", 20, S("can't happen")); - } -#if TEST_STD_VER >= 11 +template <class S> +TEST_CONSTEXPR_CXX20 bool test() { { - typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S; test(S(""), 0, "", 0, S("")); test(S(""), 0, "12345", 0, S("")); test(S(""), 0, "12345", 1, S("1")); @@ -696,10 +374,8 @@ bool test() { test(S("abcdefghijklmnopqrst"), 21, "12345678901234567890", 19, S("can't happen")); test(S("abcdefghijklmnopqrst"), 21, "12345678901234567890", 20, S("can't happen")); } -#endif { // test inserting into self - typedef std::string S; S s_short = "123/"; S s_long = "Lorem ipsum dolor sit amet, consectetur/"; @@ -719,9 +395,14 @@ bool test() { int main(int, char**) { - test(); + test<std::string>(); +#if TEST_STD_VER >= 11 + test<std::basic_string<char, std::char_traits<char>, min_allocator<char>>>(); +#endif + #if TEST_STD_VER > 17 - // static_assert(test()); + static_assert(test<std::string>()); + static_assert(test<std::basic_string<char, std::char_traits<char>, min_allocator<char>>>()); #endif return 0; diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_size_char.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_size_char.pass.cpp index ef70cd644fbb..f39342aca72c 100644 --- a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_size_char.pass.cpp +++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_size_char.pass.cpp @@ -6,10 +6,12 @@ // //===----------------------------------------------------------------------===// +// XFAIL: LIBCXX-AIX-FIXME + // <string> // basic_string<charT,traits,Allocator>& -// insert(size_type pos, size_type n, charT c); +// insert(size_type pos, size_type n, charT c); // constexpr since C++20 #include <string> #include <stdexcept> @@ -32,7 +34,7 @@ test(S s, typename S::size_type pos, typename S::size_type n, assert(s == expected); } #ifndef TEST_HAS_NO_EXCEPTIONS - else + else if (!TEST_IS_CONSTANT_EVALUATED) { try { @@ -48,7 +50,7 @@ test(S s, typename S::size_type pos, typename S::size_type n, #endif } -bool test() { +TEST_CONSTEXPR_CXX20 bool test() { { typedef std::string S; test(S(""), 0, 0, '1', S("")); @@ -225,7 +227,7 @@ int main(int, char**) { test(); #if TEST_STD_VER > 17 - // static_assert(test()); + static_assert(test()); #endif return 0; diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_string.pass.cpp index 27c2932b6022..081943c88251 100644 --- a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_string.pass.cpp +++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_string.pass.cpp @@ -6,10 +6,12 @@ // //===----------------------------------------------------------------------===// +// XFAIL: LIBCXX-AIX-FIXME + // <string> // basic_string<charT,traits,Allocator>& -// insert(size_type pos1, const basic_string& str); +// insert(size_type pos1, const basic_string& str); // constexpr since C++20 #include <string> #include <stdexcept> @@ -31,7 +33,7 @@ test(S s, typename S::size_type pos, S str, S expected) assert(s == expected); } #ifndef TEST_HAS_NO_EXCEPTIONS - else + else if (!TEST_IS_CONSTANT_EVALUATED) { try { @@ -47,7 +49,7 @@ test(S s, typename S::size_type pos, S str, S expected) #endif } -bool test() { +TEST_CONSTEXPR_CXX20 bool test() { { typedef std::string S; test(S(""), 0, S(""), S("")); @@ -233,7 +235,7 @@ int main(int, char**) { test(); #if TEST_STD_VER > 17 - // static_assert(test()); + static_assert(test()); #endif return 0; diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_string_size_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_string_size_size.pass.cpp index 63c1ed89996d..86ebc44ffc25 100644 --- a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_string_size_size.pass.cpp +++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_string_size_size.pass.cpp @@ -6,11 +6,13 @@ // //===----------------------------------------------------------------------===// +// XFAIL: LIBCXX-AIX-FIXME + // <string> // basic_string<charT,traits,Allocator>& // insert(size_type pos1, const basic_string<charT,traits,Allocator>& str, -// size_type pos2, size_type n=npos); +// size_type pos2, size_type n=npos); // constexpr since C++20 // the "=npos" was added in C++14 #include <string> @@ -34,7 +36,7 @@ test(S s, typename S::size_type pos1, S str, typename S::size_type pos2, assert(s == expected); } #ifndef TEST_HAS_NO_EXCEPTIONS - else + else if (!TEST_IS_CONSTANT_EVALUATED) { try { @@ -63,7 +65,7 @@ test_npos(S s, typename S::size_type pos1, S str, typename S::size_type pos2, S assert(s == expected); } #ifndef TEST_HAS_NO_EXCEPTIONS - else + else if (!TEST_IS_CONSTANT_EVALUATED) { try { @@ -1824,37 +1826,37 @@ void test() { test30<S>(); #if TEST_STD_VER > 17 - // static_assert(test0<S>()); - // static_assert(test1<S>()); - // static_assert(test2<S>()); - // static_assert(test3<S>()); - // static_assert(test4<S>()); - // static_assert(test5<S>()); - // static_assert(test6<S>()); - // static_assert(test7<S>()); - // static_assert(test8<S>()); - // static_assert(test9<S>()); - // static_assert(test10<S>()); - // static_assert(test11<S>()); - // static_assert(test12<S>()); - // static_assert(test13<S>()); - // static_assert(test14<S>()); - // static_assert(test15<S>()); - // static_assert(test16<S>()); - // static_assert(test17<S>()); - // static_assert(test18<S>()); - // static_assert(test19<S>()); - // static_assert(test20<S>()); - // static_assert(test21<S>()); - // static_assert(test22<S>()); - // static_assert(test23<S>()); - // static_assert(test24<S>()); - // static_assert(test25<S>()); - // static_assert(test26<S>()); - // static_assert(test27<S>()); - // static_assert(test28<S>()); - // static_assert(test29<S>()); - // static_assert(test30<S>()); + static_assert(test0<S>()); + static_assert(test1<S>()); + static_assert(test2<S>()); + static_assert(test3<S>()); + static_assert(test4<S>()); + static_assert(test5<S>()); + static_assert(test6<S>()); + static_assert(test7<S>()); + static_assert(test8<S>()); + static_assert(test9<S>()); + static_assert(test10<S>()); + static_assert(test11<S>()); + static_assert(test12<S>()); + static_assert(test13<S>()); + static_assert(test14<S>()); + static_assert(test15<S>()); + static_assert(test16<S>()); + static_assert(test17<S>()); + static_assert(test18<S>()); + static_assert(test19<S>()); + static_assert(test20<S>()); + static_assert(test21<S>()); + static_assert(test22<S>()); + static_assert(test23<S>()); + static_assert(test24<S>()); + static_assert(test25<S>()); + static_assert(test26<S>()); + static_assert(test27<S>()); + static_assert(test28<S>()); + static_assert(test29<S>()); + static_assert(test30<S>()); #endif } diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/string_view.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/string_view.pass.cpp index 3b8e63b9a7fc..c378d40d5481 100644 --- a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/string_view.pass.cpp +++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/string_view.pass.cpp @@ -6,10 +6,12 @@ // //===----------------------------------------------------------------------===// +// XFAIL: LIBCXX-AIX-FIXME + // <string> // basic_string<charT,traits,Allocator>& -// insert(size_type pos, string_view sv); +// insert(size_type pos, string_view sv); // constexpr since C++20 #include <string> #include <stdexcept> @@ -31,7 +33,7 @@ test(S s, typename S::size_type pos, SV sv, S expected) assert(s == expected); } #ifndef TEST_HAS_NO_EXCEPTIONS - else + else if (!TEST_IS_CONSTANT_EVALUATED) { try { @@ -47,7 +49,7 @@ test(S s, typename S::size_type pos, SV sv, S expected) #endif } -bool test() { +TEST_CONSTEXPR_CXX20 bool test() { { typedef std::string S; typedef std::string_view SV; @@ -242,7 +244,7 @@ int main(int, char**) { test(); #if TEST_STD_VER > 17 - // static_assert(test()); + static_assert(test()); #endif return 0; |
