Define rtc::BufferT::const_iterator
So that we can use rtc::Buffer with gmock container matchers.
Bug: none
Change-Id: I2f6e98850e82902636824168edaa37a90681ad98
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168188
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30454}
diff --git a/rtc_base/buffer.h b/rtc_base/buffer.h
index 34ef885..3048b91 100644
--- a/rtc_base/buffer.h
+++ b/rtc_base/buffer.h
@@ -64,6 +64,7 @@
public:
using value_type = T;
+ using const_iterator = const T*;
// An empty BufferT.
BufferT() : size_(0), capacity_(0), data_(nullptr) {
diff --git a/rtc_base/buffer_unittest.cc b/rtc_base/buffer_unittest.cc
index 40d9edc..3e7396d 100644
--- a/rtc_base/buffer_unittest.cc
+++ b/rtc_base/buffer_unittest.cc
@@ -14,12 +14,16 @@
#include <utility>
#include "api/array_view.h"
+#include "test/gmock.h"
#include "test/gtest.h"
namespace rtc {
namespace {
+using ::testing::ElementsAre;
+using ::testing::ElementsAreArray;
+
// clang-format off
const uint8_t kTestData[] = {0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7,
0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf};
@@ -104,10 +108,12 @@
buf.SetData(TestDataContainer());
EXPECT_EQ(3u, buf.size());
EXPECT_EQ(Buffer(kTestData, 3), buf);
+ EXPECT_THAT(buf, ElementsAre(0, 1, 2));
buf.AppendData(TestDataContainer());
EXPECT_EQ(6u, buf.size());
EXPECT_EQ(0, memcmp(buf.data(), kTestData, 3));
EXPECT_EQ(0, memcmp(buf.data() + 3, kTestData, 3));
+ EXPECT_THAT(buf, ElementsAre(0, 1, 2, 0, 1, 2));
}
TEST(BufferTest, TestSetSizeSmaller) {
@@ -362,9 +368,7 @@
buf[i] = kTestData[i];
}
- for (size_t i = 0; i != 7u; ++i) {
- EXPECT_EQ(buf[i], kTestData[i]);
- }
+ EXPECT_THAT(buf, ElementsAreArray(kTestData, 7));
}
TEST(BufferTest, TestBeginEnd) {
@@ -392,9 +396,7 @@
EXPECT_EQ(buf.capacity(), 5u);
EXPECT_NE(buf.data(), nullptr);
EXPECT_FALSE(buf.empty());
- for (size_t i = 0; i != buf.size(); ++i) {
- EXPECT_EQ(test_data[i], buf[i]);
- }
+ EXPECT_THAT(buf, ElementsAreArray(test_data));
BufferT<int16_t> buf2(test_data);
EXPECT_EQ(buf, buf2);
buf2[0] = 9;