[libcxx] [test] Untabify, NFC.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@309464 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -24,9 +24,9 @@ test()
|
||||
{
|
||||
{
|
||||
#if TEST_STD_VER > 14
|
||||
static_assert((noexcept(S{})), "" );
|
||||
static_assert((noexcept(S{})), "" );
|
||||
#elif TEST_STD_VER >= 11
|
||||
static_assert((noexcept(S()) == noexcept(typename S::allocator_type())), "" );
|
||||
static_assert((noexcept(S()) == noexcept(typename S::allocator_type())), "" );
|
||||
#endif
|
||||
S s;
|
||||
LIBCPP_ASSERT(s.__invariants());
|
||||
@@ -37,9 +37,9 @@ test()
|
||||
}
|
||||
{
|
||||
#if TEST_STD_VER > 14
|
||||
static_assert((noexcept(S{typename S::allocator_type{}})), "" );
|
||||
static_assert((noexcept(S{typename S::allocator_type{}})), "" );
|
||||
#elif TEST_STD_VER >= 11
|
||||
static_assert((noexcept(S(typename S::allocator_type())) == std::is_nothrow_copy_constructible<typename S::allocator_type>::value), "" );
|
||||
static_assert((noexcept(S(typename S::allocator_type())) == std::is_nothrow_copy_constructible<typename S::allocator_type>::value), "" );
|
||||
#endif
|
||||
S s(typename S::allocator_type(5));
|
||||
LIBCPP_ASSERT(s.__invariants());
|
||||
@@ -58,9 +58,9 @@ test2()
|
||||
{
|
||||
{
|
||||
#if TEST_STD_VER > 14
|
||||
static_assert((noexcept(S{})), "" );
|
||||
static_assert((noexcept(S{})), "" );
|
||||
#elif TEST_STD_VER >= 11
|
||||
static_assert((noexcept(S()) == noexcept(typename S::allocator_type())), "" );
|
||||
static_assert((noexcept(S()) == noexcept(typename S::allocator_type())), "" );
|
||||
#endif
|
||||
S s;
|
||||
LIBCPP_ASSERT(s.__invariants());
|
||||
@@ -71,9 +71,9 @@ test2()
|
||||
}
|
||||
{
|
||||
#if TEST_STD_VER > 14
|
||||
static_assert((noexcept(S{typename S::allocator_type{}})), "" );
|
||||
static_assert((noexcept(S{typename S::allocator_type{}})), "" );
|
||||
#elif TEST_STD_VER >= 11
|
||||
static_assert((noexcept(S(typename S::allocator_type())) == std::is_nothrow_copy_constructible<typename S::allocator_type>::value), "" );
|
||||
static_assert((noexcept(S(typename S::allocator_type())) == std::is_nothrow_copy_constructible<typename S::allocator_type>::value), "" );
|
||||
#endif
|
||||
S s(typename S::allocator_type{});
|
||||
LIBCPP_ASSERT(s.__invariants());
|
||||
|
||||
@@ -69,9 +69,9 @@ bool operator!=(const poca_alloc<T>& lhs, const poca_alloc<U>& rhs)
|
||||
template <class S>
|
||||
void test_assign(S &s1, const S& s2)
|
||||
{
|
||||
try { s1 = s2; }
|
||||
catch ( std::bad_alloc &) { return; }
|
||||
assert(false);
|
||||
try { s1 = s2; }
|
||||
catch ( std::bad_alloc &) { return; }
|
||||
assert(false);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -110,21 +110,21 @@ int main()
|
||||
{
|
||||
typedef poca_alloc<char> A;
|
||||
typedef std::basic_string<char, std::char_traits<char>, A> S;
|
||||
const char * p1 = "This is my first string";
|
||||
const char * p2 = "This is my second string";
|
||||
const char * p1 = "This is my first string";
|
||||
const char * p2 = "This is my second string";
|
||||
|
||||
alloc_imp<char> imp1;
|
||||
alloc_imp<char> imp2;
|
||||
S s1(p1, A(&imp1));
|
||||
S s2(p2, A(&imp2));
|
||||
S s1(p1, A(&imp1));
|
||||
S s2(p2, A(&imp2));
|
||||
|
||||
assert(s1 == p1);
|
||||
assert(s2 == p2);
|
||||
assert(s1 == p1);
|
||||
assert(s2 == p2);
|
||||
|
||||
imp2.deactivate();
|
||||
test_assign(s1, s2);
|
||||
assert(s1 == p1);
|
||||
assert(s2 == p2);
|
||||
imp2.deactivate();
|
||||
test_assign(s1, s2);
|
||||
assert(s1 == p1);
|
||||
assert(s2 == p2);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -41,9 +41,9 @@ int main()
|
||||
typedef test_allocator<char> A;
|
||||
typedef std::basic_string<char, std::char_traits<char>, A> S;
|
||||
#if TEST_STD_VER > 14
|
||||
static_assert((noexcept(S{})), "" );
|
||||
static_assert((noexcept(S{})), "" );
|
||||
#elif TEST_STD_VER >= 11
|
||||
static_assert((noexcept(S()) == std::is_nothrow_move_constructible<A>::value), "" );
|
||||
static_assert((noexcept(S()) == std::is_nothrow_move_constructible<A>::value), "" );
|
||||
#endif
|
||||
test(S(), A(3));
|
||||
test(S("1"), A(5));
|
||||
@@ -55,9 +55,9 @@ int main()
|
||||
typedef test_allocator<char> A;
|
||||
typedef std::basic_string<char, std::char_traits<char>, A> S;
|
||||
#if TEST_STD_VER > 14
|
||||
static_assert((noexcept(S{})), "" );
|
||||
static_assert((noexcept(S{})), "" );
|
||||
#elif TEST_STD_VER >= 11
|
||||
static_assert((noexcept(S()) == std::is_nothrow_move_constructible<A>::value), "" );
|
||||
static_assert((noexcept(S()) == std::is_nothrow_move_constructible<A>::value), "" );
|
||||
#endif
|
||||
S s1 ( "Twas brillig, and the slivy toves did gyre and gymbal in the wabe" );
|
||||
S s2 (std::move(s1), A(1));
|
||||
@@ -67,9 +67,9 @@ int main()
|
||||
typedef min_allocator<char> A;
|
||||
typedef std::basic_string<char, std::char_traits<char>, A> S;
|
||||
#if TEST_STD_VER > 14
|
||||
static_assert((noexcept(S{})), "" );
|
||||
static_assert((noexcept(S{})), "" );
|
||||
#elif TEST_STD_VER >= 11
|
||||
static_assert((noexcept(S()) == std::is_nothrow_move_constructible<A>::value), "" );
|
||||
static_assert((noexcept(S()) == std::is_nothrow_move_constructible<A>::value), "" );
|
||||
#endif
|
||||
test(S(), A());
|
||||
test(S("1"), A());
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
// allocator_traits<allocator_type>::propagate_on_container_move_assignment::value ||
|
||||
// allocator_traits<allocator_type>::is_always_equal::value); // C++17
|
||||
//
|
||||
// before C++17, we use the conforming extension
|
||||
// before C++17, we use the conforming extension
|
||||
// noexcept(
|
||||
// allocator_type::propagate_on_container_move_assignment::value &&
|
||||
// is_nothrow_move_assignable<allocator_type>::value);
|
||||
@@ -81,12 +81,12 @@ int main()
|
||||
}
|
||||
#if TEST_STD_VER > 14
|
||||
{
|
||||
// POCMA is false, always equal
|
||||
// POCMA is false, always equal
|
||||
typedef std::basic_string<char, std::char_traits<char>, some_alloc2<char>> C;
|
||||
static_assert( std::is_nothrow_move_assignable<C>::value, "");
|
||||
}
|
||||
{
|
||||
// POCMA is false, not always equal
|
||||
// POCMA is false, not always equal
|
||||
typedef std::basic_string<char, std::char_traits<char>, some_alloc3<char>> C;
|
||||
static_assert(!std::is_nothrow_move_assignable<C>::value, "");
|
||||
}
|
||||
|
||||
@@ -18,6 +18,6 @@ void foo ( const string &s ) {}
|
||||
|
||||
int main()
|
||||
{
|
||||
std::string_view sv = "ABCDE";
|
||||
foo(sv); // requires implicit conversion from string_view to string
|
||||
std::string_view sv = "ABCDE";
|
||||
foo(sv); // requires implicit conversion from string_view to string
|
||||
}
|
||||
|
||||
@@ -32,11 +32,11 @@ template <class S, class It>
|
||||
void
|
||||
test_exceptions(S s, It first, It last)
|
||||
{
|
||||
S aCopy = s;
|
||||
S aCopy = s;
|
||||
try {
|
||||
s.append(first, last);
|
||||
assert(false);
|
||||
}
|
||||
s.append(first, last);
|
||||
assert(false);
|
||||
}
|
||||
catch (...) {}
|
||||
LIBCPP_ASSERT(s.__invariants());
|
||||
assert(s == aCopy);
|
||||
@@ -164,7 +164,7 @@ int main()
|
||||
}
|
||||
#endif
|
||||
#ifndef TEST_HAS_NO_EXCEPTIONS
|
||||
{ // test iterator operations that throw
|
||||
{ // test iterator operations that throw
|
||||
typedef std::string S;
|
||||
typedef ThrowingIterator<char> TIter;
|
||||
typedef input_iterator<TIter> IIter;
|
||||
@@ -176,33 +176,33 @@ int main()
|
||||
test_exceptions(S(), TIter(s, s+10, 4, TIter::TAIncrement), TIter());
|
||||
test_exceptions(S(), TIter(s, s+10, 5, TIter::TADereference), TIter());
|
||||
test_exceptions(S(), TIter(s, s+10, 6, TIter::TAComparison), TIter());
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
{ // test appending to self
|
||||
{ // test appending to self
|
||||
typedef std::string S;
|
||||
S s_short = "123/";
|
||||
S s_long = "Lorem ipsum dolor sit amet, consectetur/";
|
||||
S s_short = "123/";
|
||||
S s_long = "Lorem ipsum dolor sit amet, consectetur/";
|
||||
|
||||
s_short.append(s_short.begin(), s_short.end());
|
||||
assert(s_short == "123/123/");
|
||||
s_short.append(s_short.begin(), s_short.end());
|
||||
assert(s_short == "123/123/123/123/");
|
||||
s_short.append(s_short.begin(), s_short.end());
|
||||
assert(s_short == "123/123/123/123/123/123/123/123/");
|
||||
s_short.append(s_short.begin(), s_short.end());
|
||||
assert(s_short == "123/123/");
|
||||
s_short.append(s_short.begin(), s_short.end());
|
||||
assert(s_short == "123/123/123/123/");
|
||||
s_short.append(s_short.begin(), s_short.end());
|
||||
assert(s_short == "123/123/123/123/123/123/123/123/");
|
||||
|
||||
s_long.append(s_long.begin(), s_long.end());
|
||||
assert(s_long == "Lorem ipsum dolor sit amet, consectetur/Lorem ipsum dolor sit amet, consectetur/");
|
||||
}
|
||||
s_long.append(s_long.begin(), s_long.end());
|
||||
assert(s_long == "Lorem ipsum dolor sit amet, consectetur/Lorem ipsum dolor sit amet, consectetur/");
|
||||
}
|
||||
|
||||
{ // test appending a different type
|
||||
{ // test appending a different type
|
||||
typedef std::string S;
|
||||
const uint8_t p[] = "ABCD";
|
||||
const uint8_t p[] = "ABCD";
|
||||
|
||||
S s;
|
||||
s.append(p, p + 4);
|
||||
assert(s == "ABCD");
|
||||
}
|
||||
S s;
|
||||
s.append(p, p + 4);
|
||||
assert(s == "ABCD");
|
||||
}
|
||||
|
||||
{ // test with a move iterator that returns char&&
|
||||
typedef forward_iterator<const char*> It;
|
||||
|
||||
@@ -62,19 +62,19 @@ int main()
|
||||
}
|
||||
#endif
|
||||
|
||||
{ // test appending to self
|
||||
{ // test appending to self
|
||||
typedef std::string S;
|
||||
S s_short = "123/";
|
||||
S s_long = "Lorem ipsum dolor sit amet, consectetur/";
|
||||
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_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/");
|
||||
}
|
||||
s_long.append(s_long.c_str());
|
||||
assert(s_long == "Lorem ipsum dolor sit amet, consectetur/Lorem ipsum dolor sit amet, consectetur/");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,19 +71,19 @@ int main()
|
||||
}
|
||||
#endif
|
||||
|
||||
{ // test appending to self
|
||||
{ // test appending to self
|
||||
typedef std::string S;
|
||||
S s_short = "123/";
|
||||
S s_long = "Lorem ipsum dolor sit amet, consectetur/";
|
||||
S s_short = "123/";
|
||||
S s_long = "Lorem ipsum dolor sit amet, consectetur/";
|
||||
|
||||
s_short.append(s_short.data(), s_short.size());
|
||||
assert(s_short == "123/123/");
|
||||
s_short.append(s_short.data(), s_short.size());
|
||||
assert(s_short == "123/123/123/123/");
|
||||
s_short.append(s_short.data(), s_short.size());
|
||||
assert(s_short == "123/123/123/123/123/123/123/123/");
|
||||
s_short.append(s_short.data(), s_short.size());
|
||||
assert(s_short == "123/123/");
|
||||
s_short.append(s_short.data(), s_short.size());
|
||||
assert(s_short == "123/123/123/123/");
|
||||
s_short.append(s_short.data(), s_short.size());
|
||||
assert(s_short == "123/123/123/123/123/123/123/123/");
|
||||
|
||||
s_long.append(s_long.data(), s_long.size());
|
||||
assert(s_long == "Lorem ipsum dolor sit amet, consectetur/Lorem ipsum dolor sit amet, consectetur/");
|
||||
}
|
||||
s_long.append(s_long.data(), s_long.size());
|
||||
assert(s_long == "Lorem ipsum dolor sit amet, consectetur/Lorem ipsum dolor sit amet, consectetur/");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,10 +33,10 @@ template <class S, class It>
|
||||
void
|
||||
test_exceptions(S s, It first, It last)
|
||||
{
|
||||
S aCopy = s;
|
||||
S aCopy = s;
|
||||
try {
|
||||
s.assign(first, last);
|
||||
assert(false);
|
||||
s.assign(first, last);
|
||||
assert(false);
|
||||
}
|
||||
catch (...) {}
|
||||
LIBCPP_ASSERT(s.__invariants());
|
||||
@@ -165,7 +165,7 @@ int main()
|
||||
}
|
||||
#endif
|
||||
#ifndef TEST_HAS_NO_EXCEPTIONS
|
||||
{ // test iterator operations that throw
|
||||
{ // test iterator operations that throw
|
||||
typedef std::string S;
|
||||
typedef ThrowingIterator<char> TIter;
|
||||
typedef input_iterator<TIter> IIter;
|
||||
@@ -177,32 +177,32 @@ int main()
|
||||
test_exceptions(S(), TIter(s, s+10, 4, TIter::TAIncrement), TIter());
|
||||
test_exceptions(S(), TIter(s, s+10, 5, TIter::TADereference), TIter());
|
||||
test_exceptions(S(), TIter(s, s+10, 6, TIter::TAComparison), TIter());
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
{ // test assigning to self
|
||||
{ // test assigning to self
|
||||
typedef std::string S;
|
||||
S s_short = "123/";
|
||||
S s_long = "Lorem ipsum dolor sit amet, consectetur/";
|
||||
S s_short = "123/";
|
||||
S s_long = "Lorem ipsum dolor sit amet, consectetur/";
|
||||
|
||||
s_short.assign(s_short.begin(), s_short.end());
|
||||
assert(s_short == "123/");
|
||||
s_short.assign(s_short.begin() + 2, s_short.end());
|
||||
assert(s_short == "3/");
|
||||
s_short.assign(s_short.begin(), s_short.end());
|
||||
assert(s_short == "123/");
|
||||
s_short.assign(s_short.begin() + 2, s_short.end());
|
||||
assert(s_short == "3/");
|
||||
|
||||
s_long.assign(s_long.begin(), s_long.end());
|
||||
assert(s_long == "Lorem ipsum dolor sit amet, consectetur/");
|
||||
s_long.assign(s_long.begin(), s_long.end());
|
||||
assert(s_long == "Lorem ipsum dolor sit amet, consectetur/");
|
||||
|
||||
s_long.assign(s_long.begin() + 30, s_long.end());
|
||||
assert(s_long == "nsectetur/");
|
||||
}
|
||||
s_long.assign(s_long.begin() + 30, s_long.end());
|
||||
assert(s_long == "nsectetur/");
|
||||
}
|
||||
|
||||
{ // test assigning a different type
|
||||
{ // test assigning a different type
|
||||
typedef std::string S;
|
||||
const uint8_t p[] = "ABCD";
|
||||
const uint8_t p[] = "ABCD";
|
||||
|
||||
S s;
|
||||
s.assign(p, p + 4);
|
||||
assert(s == "ABCD");
|
||||
}
|
||||
S s;
|
||||
s.assign(p, p + 4);
|
||||
assert(s == "ABCD");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,17 +62,17 @@ int main()
|
||||
}
|
||||
#endif
|
||||
|
||||
{ // test assignment to self
|
||||
{ // test assignment to self
|
||||
typedef std::string S;
|
||||
S s_short = "123/";
|
||||
S s_long = "Lorem ipsum dolor sit amet, consectetur/";
|
||||
S s_short = "123/";
|
||||
S s_long = "Lorem ipsum dolor sit amet, consectetur/";
|
||||
|
||||
s_short.assign(s_short.c_str());
|
||||
assert(s_short == "123/");
|
||||
s_short.assign(s_short.c_str() + 2);
|
||||
assert(s_short == "3/");
|
||||
s_short.assign(s_short.c_str());
|
||||
assert(s_short == "123/");
|
||||
s_short.assign(s_short.c_str() + 2);
|
||||
assert(s_short == "3/");
|
||||
|
||||
s_long.assign(s_long.c_str() + 30);
|
||||
assert(s_long == "nsectetur/");
|
||||
}
|
||||
s_long.assign(s_long.c_str() + 30);
|
||||
assert(s_long == "nsectetur/");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,20 +70,20 @@ int main()
|
||||
S("12345678901234567890"));
|
||||
}
|
||||
#endif
|
||||
{ // test assign to self
|
||||
{ // test assign to self
|
||||
typedef std::string S;
|
||||
S s_short = "123/";
|
||||
S s_long = "Lorem ipsum dolor sit amet, consectetur/";
|
||||
S s_short = "123/";
|
||||
S s_long = "Lorem ipsum dolor sit amet, consectetur/";
|
||||
|
||||
s_short.assign(s_short.data(), s_short.size());
|
||||
assert(s_short == "123/");
|
||||
s_short.assign(s_short.data() + 2, s_short.size() - 2);
|
||||
assert(s_short == "3/");
|
||||
s_short.assign(s_short.data(), s_short.size());
|
||||
assert(s_short == "123/");
|
||||
s_short.assign(s_short.data() + 2, s_short.size() - 2);
|
||||
assert(s_short == "3/");
|
||||
|
||||
s_long.assign(s_long.data(), s_long.size());
|
||||
assert(s_long == "Lorem ipsum dolor sit amet, consectetur/");
|
||||
s_long.assign(s_long.data(), s_long.size());
|
||||
assert(s_long == "Lorem ipsum dolor sit amet, consectetur/");
|
||||
|
||||
s_long.assign(s_long.data() + 2, 8 );
|
||||
assert(s_long == "rem ipsu");
|
||||
}
|
||||
s_long.assign(s_long.data() + 2, 8 );
|
||||
assert(s_long == "rem ipsu");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ void
|
||||
test_exceptions(S s, typename S::difference_type pos, It first, It last)
|
||||
{
|
||||
typename S::const_iterator p = s.cbegin() + pos;
|
||||
S aCopy = s;
|
||||
S aCopy = s;
|
||||
try {
|
||||
s.insert(p, first, last);
|
||||
assert(false);
|
||||
@@ -145,7 +145,7 @@ int main()
|
||||
}
|
||||
#endif
|
||||
#ifndef TEST_HAS_NO_EXCEPTIONS
|
||||
{ // test iterator operations that throw
|
||||
{ // test iterator operations that throw
|
||||
typedef std::string S;
|
||||
typedef ThrowingIterator<char> TIter;
|
||||
typedef input_iterator<TIter> IIter;
|
||||
@@ -157,7 +157,7 @@ int main()
|
||||
test_exceptions(S(), 0, TIter(s, s+10, 4, TIter::TAIncrement), TIter());
|
||||
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
|
||||
{
|
||||
@@ -170,30 +170,30 @@ int main()
|
||||
}
|
||||
#endif
|
||||
|
||||
{ // test inserting into self
|
||||
{ // test inserting into self
|
||||
typedef std::string S;
|
||||
S s_short = "123/";
|
||||
S s_long = "Lorem ipsum dolor sit amet, consectetur/";
|
||||
S s_short = "123/";
|
||||
S s_long = "Lorem ipsum dolor sit amet, consectetur/";
|
||||
|
||||
s_short.insert(s_short.begin(), s_short.begin(), s_short.end());
|
||||
assert(s_short == "123/123/");
|
||||
s_short.insert(s_short.begin(), s_short.begin(), s_short.end());
|
||||
assert(s_short == "123/123/123/123/");
|
||||
s_short.insert(s_short.begin(), s_short.begin(), s_short.end());
|
||||
assert(s_short == "123/123/123/123/123/123/123/123/");
|
||||
s_short.insert(s_short.begin(), s_short.begin(), s_short.end());
|
||||
assert(s_short == "123/123/");
|
||||
s_short.insert(s_short.begin(), s_short.begin(), s_short.end());
|
||||
assert(s_short == "123/123/123/123/");
|
||||
s_short.insert(s_short.begin(), s_short.begin(), s_short.end());
|
||||
assert(s_short == "123/123/123/123/123/123/123/123/");
|
||||
|
||||
s_long.insert(s_long.begin(), s_long.begin(), s_long.end());
|
||||
assert(s_long == "Lorem ipsum dolor sit amet, consectetur/Lorem ipsum dolor sit amet, consectetur/");
|
||||
}
|
||||
s_long.insert(s_long.begin(), s_long.begin(), s_long.end());
|
||||
assert(s_long == "Lorem ipsum dolor sit amet, consectetur/Lorem ipsum dolor sit amet, consectetur/");
|
||||
}
|
||||
|
||||
{ // test assigning a different type
|
||||
{ // test assigning a different type
|
||||
typedef std::string S;
|
||||
const uint8_t p[] = "ABCD";
|
||||
|
||||
S s;
|
||||
s.insert(s.begin(), p, p + 4);
|
||||
assert(s == "ABCD");
|
||||
}
|
||||
}
|
||||
|
||||
{ // test with a move iterator that returns char&&
|
||||
typedef input_iterator<const char*> It;
|
||||
|
||||
@@ -219,19 +219,19 @@ int main()
|
||||
}
|
||||
#endif
|
||||
|
||||
{ // test inserting into self
|
||||
{ // test inserting into self
|
||||
typedef std::string S;
|
||||
S s_short = "123/";
|
||||
S s_long = "Lorem ipsum dolor sit amet, consectetur/";
|
||||
S s_short = "123/";
|
||||
S s_long = "Lorem ipsum dolor sit amet, consectetur/";
|
||||
|
||||
s_short.insert(0, s_short.c_str());
|
||||
assert(s_short == "123/123/");
|
||||
s_short.insert(0, s_short.c_str());
|
||||
assert(s_short == "123/123/123/123/");
|
||||
s_short.insert(0, s_short.c_str());
|
||||
assert(s_short == "123/123/123/123/123/123/123/123/");
|
||||
s_short.insert(0, s_short.c_str());
|
||||
assert(s_short == "123/123/");
|
||||
s_short.insert(0, s_short.c_str());
|
||||
assert(s_short == "123/123/123/123/");
|
||||
s_short.insert(0, s_short.c_str());
|
||||
assert(s_short == "123/123/123/123/123/123/123/123/");
|
||||
|
||||
s_long.insert(0, s_long.c_str());
|
||||
assert(s_long == "Lorem ipsum dolor sit amet, consectetur/Lorem ipsum dolor sit amet, consectetur/");
|
||||
}
|
||||
s_long.insert(0, s_long.c_str());
|
||||
assert(s_long == "Lorem ipsum dolor sit amet, consectetur/Lorem ipsum dolor sit amet, consectetur/");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -700,19 +700,19 @@ int main()
|
||||
}
|
||||
#endif
|
||||
|
||||
{ // test inserting into self
|
||||
{ // test inserting into self
|
||||
typedef std::string S;
|
||||
S s_short = "123/";
|
||||
S s_long = "Lorem ipsum dolor sit amet, consectetur/";
|
||||
S s_short = "123/";
|
||||
S s_long = "Lorem ipsum dolor sit amet, consectetur/";
|
||||
|
||||
s_short.insert(0, s_short.data(), s_short.size());
|
||||
assert(s_short == "123/123/");
|
||||
s_short.insert(0, s_short.data(), s_short.size());
|
||||
assert(s_short == "123/123/123/123/");
|
||||
s_short.insert(0, s_short.data(), s_short.size());
|
||||
assert(s_short == "123/123/123/123/123/123/123/123/");
|
||||
s_short.insert(0, s_short.data(), s_short.size());
|
||||
assert(s_short == "123/123/");
|
||||
s_short.insert(0, s_short.data(), s_short.size());
|
||||
assert(s_short == "123/123/123/123/");
|
||||
s_short.insert(0, s_short.data(), s_short.size());
|
||||
assert(s_short == "123/123/123/123/123/123/123/123/");
|
||||
|
||||
s_long.insert(0, s_long.data(), s_long.size());
|
||||
assert(s_long == "Lorem ipsum dolor sit amet, consectetur/Lorem ipsum dolor sit amet, consectetur/");
|
||||
}
|
||||
s_long.insert(0, s_long.data(), s_long.size());
|
||||
assert(s_long == "Lorem ipsum dolor sit amet, consectetur/Lorem ipsum dolor sit amet, consectetur/");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,12 +42,12 @@ test_exceptions(S s, typename S::size_type pos1, typename S::size_type n1, It f,
|
||||
{
|
||||
typename S::const_iterator first = s.begin() + pos1;
|
||||
typename S::const_iterator last = s.begin() + pos1 + n1;
|
||||
S aCopy = s;
|
||||
try {
|
||||
s.replace(first, last, f, l);
|
||||
assert(false);
|
||||
}
|
||||
catch (...) {}
|
||||
S aCopy = s;
|
||||
try {
|
||||
s.replace(first, last, f, l);
|
||||
assert(false);
|
||||
}
|
||||
catch (...) {}
|
||||
LIBCPP_ASSERT(s.__invariants());
|
||||
assert(s == aCopy);
|
||||
}
|
||||
@@ -993,7 +993,7 @@ int main()
|
||||
}
|
||||
#endif
|
||||
#ifndef TEST_HAS_NO_EXCEPTIONS
|
||||
{ // test iterator operations that throw
|
||||
{ // test iterator operations that throw
|
||||
typedef std::string S;
|
||||
typedef ThrowingIterator<char> TIter;
|
||||
typedef input_iterator<TIter> IIter;
|
||||
@@ -1005,36 +1005,36 @@ int main()
|
||||
test_exceptions(S("abcdefghijklmnopqrst"), 10, 5, TIter(s, s+10, 4, TIter::TAIncrement), TIter());
|
||||
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
|
||||
|
||||
{ // test replacing into self
|
||||
{ // test replacing into self
|
||||
typedef std::string S;
|
||||
S s_short = "123/";
|
||||
S s_long = "Lorem ipsum dolor sit amet, consectetur/";
|
||||
S s_short = "123/";
|
||||
S s_long = "Lorem ipsum dolor sit amet, consectetur/";
|
||||
|
||||
s_short.replace(s_short.begin(), s_short.begin(), s_short.begin(), s_short.end());
|
||||
assert(s_short == "123/123/");
|
||||
s_short.replace(s_short.begin(), s_short.begin(), s_short.begin(), s_short.end());
|
||||
assert(s_short == "123/123/123/123/");
|
||||
s_short.replace(s_short.begin(), s_short.begin(), s_short.begin(), s_short.end());
|
||||
assert(s_short == "123/123/123/123/123/123/123/123/");
|
||||
s_short.replace(s_short.begin(), s_short.begin(), s_short.begin(), s_short.end());
|
||||
assert(s_short == "123/123/");
|
||||
s_short.replace(s_short.begin(), s_short.begin(), s_short.begin(), s_short.end());
|
||||
assert(s_short == "123/123/123/123/");
|
||||
s_short.replace(s_short.begin(), s_short.begin(), s_short.begin(), s_short.end());
|
||||
assert(s_short == "123/123/123/123/123/123/123/123/");
|
||||
|
||||
s_long.replace(s_long.begin(), s_long.begin(), s_long.begin(), s_long.end());
|
||||
assert(s_long == "Lorem ipsum dolor sit amet, consectetur/Lorem ipsum dolor sit amet, consectetur/");
|
||||
}
|
||||
s_long.replace(s_long.begin(), s_long.begin(), s_long.begin(), s_long.end());
|
||||
assert(s_long == "Lorem ipsum dolor sit amet, consectetur/Lorem ipsum dolor sit amet, consectetur/");
|
||||
}
|
||||
|
||||
{ // test assigning a different type
|
||||
{ // test assigning a different type
|
||||
typedef std::string S;
|
||||
const uint8_t pc[] = "ABCD";
|
||||
uint8_t p[] = "EFGH";
|
||||
const uint8_t pc[] = "ABCD";
|
||||
uint8_t p[] = "EFGH";
|
||||
|
||||
S s;
|
||||
s.replace(s.begin(), s.end(), pc, pc + 4);
|
||||
assert(s == "ABCD");
|
||||
S s;
|
||||
s.replace(s.begin(), s.end(), pc, pc + 4);
|
||||
assert(s == "ABCD");
|
||||
|
||||
s.clear();
|
||||
s.replace(s.begin(), s.end(), p, p + 4);
|
||||
assert(s == "EFGH");
|
||||
}
|
||||
s.clear();
|
||||
s.replace(s.begin(), s.end(), p, p + 4);
|
||||
assert(s == "EFGH");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -283,19 +283,19 @@ int main()
|
||||
}
|
||||
#endif
|
||||
|
||||
{ // test replacing into self
|
||||
{ // test replacing into self
|
||||
typedef std::string S;
|
||||
S s_short = "123/";
|
||||
S s_long = "Lorem ipsum dolor sit amet, consectetur/";
|
||||
S s_short = "123/";
|
||||
S s_long = "Lorem ipsum dolor sit amet, consectetur/";
|
||||
|
||||
s_short.replace(s_short.begin(), s_short.begin(), s_short.c_str());
|
||||
assert(s_short == "123/123/");
|
||||
s_short.replace(s_short.begin(), s_short.begin(), s_short.c_str());
|
||||
assert(s_short == "123/123/123/123/");
|
||||
s_short.replace(s_short.begin(), s_short.begin(), s_short.c_str());
|
||||
assert(s_short == "123/123/123/123/123/123/123/123/");
|
||||
s_short.replace(s_short.begin(), s_short.begin(), s_short.c_str());
|
||||
assert(s_short == "123/123/");
|
||||
s_short.replace(s_short.begin(), s_short.begin(), s_short.c_str());
|
||||
assert(s_short == "123/123/123/123/");
|
||||
s_short.replace(s_short.begin(), s_short.begin(), s_short.c_str());
|
||||
assert(s_short == "123/123/123/123/123/123/123/123/");
|
||||
|
||||
s_long.replace(s_long.begin(), s_long.begin(), s_long.c_str());
|
||||
assert(s_long == "Lorem ipsum dolor sit amet, consectetur/Lorem ipsum dolor sit amet, consectetur/");
|
||||
}
|
||||
s_long.replace(s_long.begin(), s_long.begin(), s_long.c_str());
|
||||
assert(s_long == "Lorem ipsum dolor sit amet, consectetur/Lorem ipsum dolor sit amet, consectetur/");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -973,19 +973,19 @@ int main()
|
||||
}
|
||||
#endif
|
||||
|
||||
{ // test replacing into self
|
||||
{ // test replacing into self
|
||||
typedef std::string S;
|
||||
S s_short = "123/";
|
||||
S s_long = "Lorem ipsum dolor sit amet, consectetur/";
|
||||
S s_short = "123/";
|
||||
S s_long = "Lorem ipsum dolor sit amet, consectetur/";
|
||||
|
||||
s_short.replace(s_short.begin(), s_short.begin(), s_short.data(), s_short.size());
|
||||
assert(s_short == "123/123/");
|
||||
s_short.replace(s_short.begin(), s_short.begin(), s_short.data(), s_short.size());
|
||||
assert(s_short == "123/123/123/123/");
|
||||
s_short.replace(s_short.begin(), s_short.begin(), s_short.data(), s_short.size());
|
||||
assert(s_short == "123/123/123/123/123/123/123/123/");
|
||||
s_short.replace(s_short.begin(), s_short.begin(), s_short.data(), s_short.size());
|
||||
assert(s_short == "123/123/");
|
||||
s_short.replace(s_short.begin(), s_short.begin(), s_short.data(), s_short.size());
|
||||
assert(s_short == "123/123/123/123/");
|
||||
s_short.replace(s_short.begin(), s_short.begin(), s_short.data(), s_short.size());
|
||||
assert(s_short == "123/123/123/123/123/123/123/123/");
|
||||
|
||||
s_long.replace(s_long.begin(), s_long.begin(), s_long.data(), s_long.size());
|
||||
assert(s_long == "Lorem ipsum dolor sit amet, consectetur/Lorem ipsum dolor sit amet, consectetur/");
|
||||
}
|
||||
s_long.replace(s_long.begin(), s_long.begin(), s_long.data(), s_long.size());
|
||||
assert(s_long == "Lorem ipsum dolor sit amet, consectetur/Lorem ipsum dolor sit amet, consectetur/");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user