diff options
author | Mark D. Roth <roth@google.com> | 2018-01-11 07:01:02 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-11 07:01:02 -0800 |
commit | 53430532ce765aa1aa96656b00015914598838ae (patch) | |
tree | f1c270905739ddebde24e21fdb0fadd338b0ca56 /test/core | |
parent | f87d9b233f5e1d506b6e5112e9df0b546764ad17 (diff) | |
parent | c6406f32f626bcad9aee9582132f06bc68f4e0e5 (diff) |
Merge pull request #13676 from markdroth/inlined_vector
Implement InlinedVector independently of absl.
Diffstat (limited to 'test/core')
-rw-r--r-- | test/core/support/vector_test.cc | 42 |
1 files changed, 37 insertions, 5 deletions
diff --git a/test/core/support/vector_test.cc b/test/core/support/vector_test.cc index aad9f3be90..82607a1b26 100644 --- a/test/core/support/vector_test.cc +++ b/test/core/support/vector_test.cc @@ -18,18 +18,50 @@ #include "src/core/lib/support/vector.h" #include <gtest/gtest.h> +#include "src/core/lib/support/memory.h" #include "test/core/util/test_config.h" namespace grpc_core { namespace testing { TEST(InlinedVectorTest, CreateAndIterate) { - InlinedVector<int, 1> v{1, 2, 3}; - int sum = 0; - for (auto i : v) { - sum += i; + const int kNumElements = 9; + InlinedVector<int, 2> v; + for (int i = 0; i < kNumElements; ++i) { + v.push_back(i); } - EXPECT_EQ(6, sum); + EXPECT_EQ(static_cast<size_t>(kNumElements), v.size()); + for (int i = 0; i < kNumElements; ++i) { + EXPECT_EQ(i, v[i]); + } +} + +TEST(InlinedVectorTest, ValuesAreInlined) { + const int kNumElements = 5; + InlinedVector<int, 10> v; + for (int i = 0; i < kNumElements; ++i) { + v.push_back(i); + } + EXPECT_EQ(static_cast<size_t>(kNumElements), v.size()); + for (int i = 0; i < kNumElements; ++i) { + EXPECT_EQ(i, v[i]); + } +} + +TEST(InlinedVectorTest, PushBackWithMove) { + InlinedVector<UniquePtr<int>, 1> v; + UniquePtr<int> i = MakeUnique<int>(3); + v.push_back(std::move(i)); + EXPECT_EQ(nullptr, i.get()); + EXPECT_EQ(1UL, v.size()); + EXPECT_EQ(3, *v[0]); +} + +TEST(InlinedVectorTest, EmplaceBack) { + InlinedVector<UniquePtr<int>, 1> v; + v.emplace_back(New<int>(3)); + EXPECT_EQ(1UL, v.size()); + EXPECT_EQ(3, *v[0]); } } // namespace testing |