summaryrefslogtreecommitdiff
path: root/test/std/strings/basic.string/string.modifiers
diff options
context:
space:
mode:
Diffstat (limited to 'test/std/strings/basic.string/string.modifiers')
-rw-r--r--test/std/strings/basic.string/string.modifiers/string_append/push_back.pass.cpp5
-rw-r--r--test/std/strings/basic.string/string.modifiers/string_append/string.pass.cpp9
-rw-r--r--test/std/strings/basic.string/string.modifiers/string_insert/size_string.pass.cpp9
-rw-r--r--test/std/strings/basic.string/string.modifiers/string_op_plus_equal/string.pass.cpp9
-rw-r--r--test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_string.pass.cpp9
-rw-r--r--test/std/strings/basic.string/string.modifiers/string_replace/size_size_string.pass.cpp9
6 files changed, 47 insertions, 3 deletions
diff --git a/test/std/strings/basic.string/string.modifiers/string_append/push_back.pass.cpp b/test/std/strings/basic.string/string.modifiers/string_append/push_back.pass.cpp
index 5ca5aaf8629c..38b68aa69042 100644
--- a/test/std/strings/basic.string/string.modifiers/string_append/push_back.pass.cpp
+++ b/test/std/strings/basic.string/string.modifiers/string_append/push_back.pass.cpp
@@ -48,14 +48,13 @@ int main()
test(S("12345678901234567890"), 'a', S("12345678901234567890a"));
}
#endif
-#if 0
+
{
// https://bugs.llvm.org/show_bug.cgi?id=31454
std::basic_string<veryLarge> s;
- veryLarge vl;
+ veryLarge vl = {};
s.push_back(vl);
s.push_back(vl);
s.push_back(vl);
}
-#endif
}
diff --git a/test/std/strings/basic.string/string.modifiers/string_append/string.pass.cpp b/test/std/strings/basic.string/string.modifiers/string_append/string.pass.cpp
index b58ed632893e..b3704268a4b6 100644
--- a/test/std/strings/basic.string/string.modifiers/string_append/string.pass.cpp
+++ b/test/std/strings/basic.string/string.modifiers/string_append/string.pass.cpp
@@ -77,4 +77,13 @@ int main()
S("1234567890123456789012345678901234567890"));
}
#endif
+
+#if TEST_STD_VER > 3
+ { // LWG 2946
+ std::string s;
+ s.append({"abc", 1});
+ assert(s.size() == 1);
+ assert(s == "a");
+ }
+#endif
}
diff --git a/test/std/strings/basic.string/string.modifiers/string_insert/size_string.pass.cpp b/test/std/strings/basic.string/string.modifiers/string_insert/size_string.pass.cpp
index e7c5ecdc9c1b..4c3a87248c72 100644
--- a/test/std/strings/basic.string/string.modifiers/string_insert/size_string.pass.cpp
+++ b/test/std/strings/basic.string/string.modifiers/string_insert/size_string.pass.cpp
@@ -218,4 +218,13 @@ int main()
test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), S("can't happen"));
}
#endif
+
+#if TEST_STD_VER > 3
+ { // LWG 2946
+ std::string s;
+ s.insert(0, {"abc", 1});
+ assert(s.size() == 1);
+ assert(s == "a");
+ }
+#endif
}
diff --git a/test/std/strings/basic.string/string.modifiers/string_op_plus_equal/string.pass.cpp b/test/std/strings/basic.string/string.modifiers/string_op_plus_equal/string.pass.cpp
index 1064855c1506..bbe385015331 100644
--- a/test/std/strings/basic.string/string.modifiers/string_op_plus_equal/string.pass.cpp
+++ b/test/std/strings/basic.string/string.modifiers/string_op_plus_equal/string.pass.cpp
@@ -77,4 +77,13 @@ int main()
S("1234567890123456789012345678901234567890"));
}
#endif
+
+#if TEST_STD_VER > 3
+ { // LWG 2946
+ std::string s;
+ s += {"abc", 1};
+ assert(s.size() == 1);
+ assert(s == "a");
+ }
+#endif
}
diff --git a/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_string.pass.cpp b/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_string.pass.cpp
index 190e10d5c830..f5f31254eb10 100644
--- a/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_string.pass.cpp
+++ b/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_string.pass.cpp
@@ -281,4 +281,13 @@ int main()
test2<S>();
}
#endif
+
+#if TEST_STD_VER > 3
+ { // LWG 2946
+ std::string s = " ";
+ s.replace(s.cbegin(), s.cend(), {"abc", 1});
+ assert(s.size() == 1);
+ assert(s == "a");
+ }
+#endif
}
diff --git a/test/std/strings/basic.string/string.modifiers/string_replace/size_size_string.pass.cpp b/test/std/strings/basic.string/string.modifiers/string_replace/size_size_string.pass.cpp
index 612e1e200c90..88982e09804f 100644
--- a/test/std/strings/basic.string/string.modifiers/string_replace/size_size_string.pass.cpp
+++ b/test/std/strings/basic.string/string.modifiers/string_replace/size_size_string.pass.cpp
@@ -379,4 +379,13 @@ int main()
test2<S>();
}
#endif
+
+#if TEST_STD_VER > 3
+ { // LWG 2946
+ std::string s = " ";
+ s.replace(0, 1, {"abc", 1});
+ assert(s.size() == 1);
+ assert(s == "a");
+ }
+#endif
}