From 89e34e6618a55622b433587b2033004db1d47caa Mon Sep 17 00:00:00 2001 From: Yaron Keren Date: Tue, 11 Aug 2015 17:35:49 +0000 Subject: [PATCH] Add SmallString test trying to exercise the realloc() code path by allocating a small size (will go through malloc) and then large size. llvm-svn: 244637 --- unittests/ADT/SmallStringTest.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/unittests/ADT/SmallStringTest.cpp b/unittests/ADT/SmallStringTest.cpp index 9398e99c911..995ef8e8127 100644 --- a/unittests/ADT/SmallStringTest.cpp +++ b/unittests/ADT/SmallStringTest.cpp @@ -159,6 +159,17 @@ TEST_F(SmallStringTest, Count) { EXPECT_EQ(0U, theString.count("zz")); } +TEST_F(SmallStringTest, Realloc) { + theString = "abcd"; + theString.reserve(100); + EXPECT_EQ("abcd", theString); + unsigned const N = 100000; + theString.reserve(N); + for (unsigned i = 0; i < N - 4; ++i) + theString.push_back('y'); + EXPECT_EQ("abcdyyy", theString.slice(0, 7)); +} + TEST(StringRefTest, Comparisons) { EXPECT_EQ(-1, SmallString<10>("aab").compare("aad")); EXPECT_EQ( 0, SmallString<10>("aab").compare("aab"));