improve GapBuffer test coverage
This commit is contained in:
1 parent
24eb47b0ad
commit
e78a3672c5
3 files changed
+25
-4
No files matched your search
@@ -1,6 +1,7 @@
|
||||
#include "gtest/gtest.h"
|
||||
#include "GapBuffer.h"
|
||||
#include "System.h"
|
||||
#include <string>
|
||||
|
||||
TEST(GapBufferTest, creates_an_empty_buffer)
|
||||
{
|
||||
@@ -22,12 +23,16 @@ TEST(GapBufferTest, allows_inserting)
|
||||
GapBuffer gp;
|
||||
|
||||
gp.insert(0u, (const uint8_t *)"test", 4u);
|
||||
EXPECT_EQ("test", gp.get_string());
|
||||
EXPECT_EQ('s', *gp.address(2u));
|
||||
EXPECT_EQ(4u, gp.size());
|
||||
EXPECT_EQ("test", gp.get_string());
|
||||
|
||||
gp.insert(2u, (const uint8_t *)"12", 2u);
|
||||
EXPECT_EQ("te12st", gp.get_string());
|
||||
/* The gap should be between the '2' and 's' now */
|
||||
EXPECT_GT(gp.address(4u) - gp.address(3u), 100u);
|
||||
EXPECT_EQ('s', *gp.address(4u));
|
||||
EXPECT_EQ(6u, gp.size());
|
||||
EXPECT_EQ("te12st", gp.get_string());
|
||||
|
||||
gp.insert(0u, (const uint8_t *)"-", 1u);
|
||||
EXPECT_EQ("-te12st", gp.get_string());
|
||||
@@ -37,3 +42,18 @@ TEST(GapBufferTest, allows_inserting)
|
||||
EXPECT_EQ("-te12st!", gp.get_string());
|
||||
EXPECT_EQ(8u, gp.size());
|
||||
}
|
||||
|
||||
TEST(GapBufferTest, allocates_more_memory_and_copies_buffer_contents_when_needed)
|
||||
{
|
||||
GapBuffer gp;
|
||||
std::string s("ABCD");
|
||||
|
||||
gp.insert(0u, (const uint8_t *)"ABCDEFGH", 8u);
|
||||
for (size_t i = 0u; i < (80u * 1024u); i++)
|
||||
{
|
||||
gp.insert(4u, (const uint8_t *)"-", 1u);
|
||||
s += "-";
|
||||
}
|
||||
s += "EFGH";
|
||||
EXPECT_EQ(s, gp.get_string());
|
||||
}
|
||||
Reference in new issue
Block a user