diff options
| author | Marshall Clow <mclow.lists@gmail.com> | 2016-09-05 01:54:30 +0000 |
|---|---|---|
| committer | Marshall Clow <mclow.lists@gmail.com> | 2016-09-05 01:54:30 +0000 |
| commit | 7e1a23001d68893ee10d68e8664021a00fa0bb2c (patch) | |
| tree | c7483c76c95ae7d44c39f7093522ae8174c92411 /libcxx/test/std/strings/basic.string/string.modifiers/string_append/pointer.pass.cpp | |
| parent | e9dd46f4d0863e8bc9fa55357dd4d3adf563afa0 (diff) | |
Fix Bug 30240 - std::string: append(first, last) error when aliasing. Add test cases for append/insert/assign/replace while we're at it, and fix a similar bug in insert.
llvm-svn: 280643
Diffstat (limited to 'libcxx/test/std/strings/basic.string/string.modifiers/string_append/pointer.pass.cpp')
| -rw-r--r-- | libcxx/test/std/strings/basic.string/string.modifiers/string_append/pointer.pass.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_append/pointer.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_append/pointer.pass.cpp index 7c45068a53e1..e658d0f94232 100644 --- a/libcxx/test/std/strings/basic.string/string.modifiers/string_append/pointer.pass.cpp +++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_append/pointer.pass.cpp @@ -61,4 +61,20 @@ int main() S("1234567890123456789012345678901234567890")); } #endif + + { // test appending to self + typedef std::string S; + S s_short = "123/"; + S s_long = "Lorem ipsum dolor sit amet, consectetur/"; + + s_short.append(s_short.c_str()); + assert(s_short == "123/123/"); + s_short.append(s_short.c_str()); + assert(s_short == "123/123/123/123/"); + s_short.append(s_short.c_str()); + assert(s_short == "123/123/123/123/123/123/123/123/"); + + s_long.append(s_long.c_str()); + assert(s_long == "Lorem ipsum dolor sit amet, consectetur/Lorem ipsum dolor sit amet, consectetur/"); + } } |
