Fix support for BitBuffer::ReadNonSymmetric(&value, 1)
Bug: None
Change-Id: I4a9076cbb250a8f5c60a90d509f57d1067a71a14
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178808
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31671}
diff --git a/rtc_base/bit_buffer_unittest.cc b/rtc_base/bit_buffer_unittest.cc
index 441cd26..656682c 100644
--- a/rtc_base/bit_buffer_unittest.cc
+++ b/rtc_base/bit_buffer_unittest.cc
@@ -254,6 +254,28 @@
EXPECT_THAT(values, ElementsAre(0, 1, 2, 3, 4, 5));
}
+TEST(BitBufferTest, ReadNonSymmetricOnlyValueConsumesNoBits) {
+ const uint8_t bytes[2] = {};
+ BitBuffer reader(bytes, 2);
+ uint32_t value = 0xFFFFFFFF;
+ ASSERT_EQ(reader.RemainingBitCount(), 16u);
+
+ EXPECT_TRUE(reader.ReadNonSymmetric(&value, /*num_values=*/1));
+
+ EXPECT_EQ(value, 0u);
+ EXPECT_EQ(reader.RemainingBitCount(), 16u);
+}
+
+TEST(BitBufferWriterTest, WriteNonSymmetricOnlyValueConsumesNoBits) {
+ uint8_t bytes[2] = {};
+ BitBufferWriter writer(bytes, 2);
+ ASSERT_EQ(writer.RemainingBitCount(), 16u);
+
+ EXPECT_TRUE(writer.WriteNonSymmetric(0, /*num_values=*/1));
+
+ EXPECT_EQ(writer.RemainingBitCount(), 16u);
+}
+
uint64_t GolombEncoded(uint32_t val) {
val++;
uint32_t bit_counter = val;