aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/core/gprpp
diff options
context:
space:
mode:
authorGravatar ncteisen <ncteisen@gmail.com>2018-10-05 14:22:22 -0700
committerGravatar ncteisen <ncteisen@gmail.com>2018-10-05 16:05:21 -0700
commit8abb4370a99eefdb05de3d0e0c75116ea0354d4b (patch)
treedc5c70f7f53f300bec2a7ea08d30edcdcbddea64 /test/core/gprpp
parent4b36519c40db7619a335cf3a01ee78730ff2ccdb (diff)
Add pop_back test
Diffstat (limited to 'test/core/gprpp')
-rw-r--r--test/core/gprpp/inlined_vector_test.cc26
1 files changed, 26 insertions, 0 deletions
diff --git a/test/core/gprpp/inlined_vector_test.cc b/test/core/gprpp/inlined_vector_test.cc
index e9d1eb2c76..73e0773b31 100644
--- a/test/core/gprpp/inlined_vector_test.cc
+++ b/test/core/gprpp/inlined_vector_test.cc
@@ -264,6 +264,32 @@ TEST(InlinedVectorTest, MoveAssignmentAllocatedAllocated) {
EXPECT_EQ(move_assigned.data(), old_data);
}
+TEST(InlinedVectorTest, PopBackInlined) {
+ InlinedVector<UniquePtr<int>, 2> v;
+ // Add two elements, pop one out
+ v.push_back(MakeUnique<int>(3));
+ EXPECT_EQ(1UL, v.size());
+ EXPECT_EQ(3, *v[0]);
+ v.push_back(MakeUnique<int>(5));
+ EXPECT_EQ(2UL, v.size());
+ EXPECT_EQ(5, *v[1]);
+ v.pop_back();
+ EXPECT_EQ(1UL, v.size());
+}
+
+TEST(InlinedVectorTest, PopBackAllocated) {
+ const int kInlinedSize = 2;
+ InlinedVector<UniquePtr<int>, kInlinedSize> v;
+ // Add elements to ensure allocated backing.
+ for (size_t i = 0; i < kInlinedSize + 1; ++i) {
+ v.push_back(MakeUnique<int>(3));
+ EXPECT_EQ(i + 1, v.size());
+ }
+ size_t sz = v.size();
+ v.pop_back();
+ EXPECT_EQ(sz - 1, v.size());
+}
+
} // namespace testing
} // namespace grpc_core