Implement full support for non-pointer pointers in custom allocators for string. This completes the custom pointer support for the entire library.
llvm-svn: 185167
diff --git a/libcxx/test/strings/basic.string/string.cons/pointer_assignment.pass.cpp b/libcxx/test/strings/basic.string/string.cons/pointer_assignment.pass.cpp
index 660e1cf..d035837 100644
--- a/libcxx/test/strings/basic.string/string.cons/pointer_assignment.pass.cpp
+++ b/libcxx/test/strings/basic.string/string.cons/pointer_assignment.pass.cpp
@@ -15,6 +15,8 @@
#include <string>
#include <cassert>
+#include "../min_allocator.h"
+
template <class S>
void
test(S s1, const typename S::value_type* s2)
@@ -29,6 +31,7 @@
int main()
{
+ {
typedef std::string S;
test(S(), "");
test(S("1"), "");
@@ -45,4 +48,25 @@
test(S("1234567890123456789012345678901234567890123456789012345678901234567890"
"1234567890123456789012345678901234567890123456789012345678901234567890"),
"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz");
+ }
+#if __cplusplus >= 201103L
+ {
+ typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
+ test(S(), "");
+ test(S("1"), "");
+ test(S(), "1");
+ test(S("1"), "2");
+ test(S("1"), "2");
+
+ test(S(),
+ "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz");
+ test(S("123456789"),
+ "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz");
+ test(S("1234567890123456789012345678901234567890123456789012345678901234567890"),
+ "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz");
+ test(S("1234567890123456789012345678901234567890123456789012345678901234567890"
+ "1234567890123456789012345678901234567890123456789012345678901234567890"),
+ "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz");
+ }
+#endif
}