Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(360)

Side by Side Diff: webrtc/base/bitbuffer_unittest.cc

Issue 1362503003: Use suffixed {uint,int}{8,16,32,64}_t types. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: google::int32 Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright 2015 The WebRTC Project Authors. All rights reserved. 2 * Copyright 2015 The WebRTC Project Authors. All rights reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
11 #include "webrtc/base/bitbuffer.h" 11 #include "webrtc/base/bitbuffer.h"
12 #include "webrtc/base/bytebuffer.h" 12 #include "webrtc/base/bytebuffer.h"
13 #include "webrtc/base/common.h" 13 #include "webrtc/base/common.h"
14 #include "webrtc/base/gunit.h" 14 #include "webrtc/base/gunit.h"
15 15
16 namespace rtc { 16 namespace rtc {
17 17
18 TEST(BitBufferTest, ConsumeBits) { 18 TEST(BitBufferTest, ConsumeBits) {
19 const uint8 bytes[64] = {0}; 19 const uint8_t bytes[64] = {0};
20 BitBuffer buffer(bytes, 32); 20 BitBuffer buffer(bytes, 32);
21 uint64 total_bits = 32 * 8; 21 uint64_t total_bits = 32 * 8;
22 EXPECT_EQ(total_bits, buffer.RemainingBitCount()); 22 EXPECT_EQ(total_bits, buffer.RemainingBitCount());
23 EXPECT_TRUE(buffer.ConsumeBits(3)); 23 EXPECT_TRUE(buffer.ConsumeBits(3));
24 total_bits -= 3; 24 total_bits -= 3;
25 EXPECT_EQ(total_bits, buffer.RemainingBitCount()); 25 EXPECT_EQ(total_bits, buffer.RemainingBitCount());
26 EXPECT_TRUE(buffer.ConsumeBits(3)); 26 EXPECT_TRUE(buffer.ConsumeBits(3));
27 total_bits -= 3; 27 total_bits -= 3;
28 EXPECT_EQ(total_bits, buffer.RemainingBitCount()); 28 EXPECT_EQ(total_bits, buffer.RemainingBitCount());
29 EXPECT_TRUE(buffer.ConsumeBits(15)); 29 EXPECT_TRUE(buffer.ConsumeBits(15));
30 total_bits -= 15; 30 total_bits -= 15;
31 EXPECT_EQ(total_bits, buffer.RemainingBitCount()); 31 EXPECT_EQ(total_bits, buffer.RemainingBitCount());
32 EXPECT_TRUE(buffer.ConsumeBits(37)); 32 EXPECT_TRUE(buffer.ConsumeBits(37));
33 total_bits -= 37; 33 total_bits -= 37;
34 EXPECT_EQ(total_bits, buffer.RemainingBitCount()); 34 EXPECT_EQ(total_bits, buffer.RemainingBitCount());
35 35
36 EXPECT_FALSE(buffer.ConsumeBits(32 * 8)); 36 EXPECT_FALSE(buffer.ConsumeBits(32 * 8));
37 EXPECT_EQ(total_bits, buffer.RemainingBitCount()); 37 EXPECT_EQ(total_bits, buffer.RemainingBitCount());
38 } 38 }
39 39
40 TEST(BitBufferTest, ReadBytesAligned) { 40 TEST(BitBufferTest, ReadBytesAligned) {
41 const uint8 bytes[] = {0x0A, 0xBC, 0xDE, 0xF1, 0x23, 0x45, 0x67, 0x89}; 41 const uint8_t bytes[] = {0x0A, 0xBC, 0xDE, 0xF1, 0x23, 0x45, 0x67, 0x89};
42 uint8 val8; 42 uint8_t val8;
43 uint16 val16; 43 uint16_t val16;
44 uint32 val32; 44 uint32_t val32;
45 BitBuffer buffer(bytes, 8); 45 BitBuffer buffer(bytes, 8);
46 EXPECT_TRUE(buffer.ReadUInt8(&val8)); 46 EXPECT_TRUE(buffer.ReadUInt8(&val8));
47 EXPECT_EQ(0x0Au, val8); 47 EXPECT_EQ(0x0Au, val8);
48 EXPECT_TRUE(buffer.ReadUInt8(&val8)); 48 EXPECT_TRUE(buffer.ReadUInt8(&val8));
49 EXPECT_EQ(0xBCu, val8); 49 EXPECT_EQ(0xBCu, val8);
50 EXPECT_TRUE(buffer.ReadUInt16(&val16)); 50 EXPECT_TRUE(buffer.ReadUInt16(&val16));
51 EXPECT_EQ(0xDEF1u, val16); 51 EXPECT_EQ(0xDEF1u, val16);
52 EXPECT_TRUE(buffer.ReadUInt32(&val32)); 52 EXPECT_TRUE(buffer.ReadUInt32(&val32));
53 EXPECT_EQ(0x23456789u, val32); 53 EXPECT_EQ(0x23456789u, val32);
54 } 54 }
55 55
56 TEST(BitBufferTest, ReadBytesOffset4) { 56 TEST(BitBufferTest, ReadBytesOffset4) {
57 const uint8 bytes[] = {0x0A, 0xBC, 0xDE, 0xF1, 0x23, 0x45, 0x67, 0x89, 0x0A}; 57 const uint8_t bytes[] = {
58 uint8 val8; 58 0x0A, 0xBC, 0xDE, 0xF1, 0x23, 0x45, 0x67, 0x89, 0x0A};
59 uint16 val16; 59 uint8_t val8;
60 uint32 val32; 60 uint16_t val16;
61 uint32_t val32;
61 BitBuffer buffer(bytes, 9); 62 BitBuffer buffer(bytes, 9);
62 EXPECT_TRUE(buffer.ConsumeBits(4)); 63 EXPECT_TRUE(buffer.ConsumeBits(4));
63 64
64 EXPECT_TRUE(buffer.ReadUInt8(&val8)); 65 EXPECT_TRUE(buffer.ReadUInt8(&val8));
65 EXPECT_EQ(0xABu, val8); 66 EXPECT_EQ(0xABu, val8);
66 EXPECT_TRUE(buffer.ReadUInt8(&val8)); 67 EXPECT_TRUE(buffer.ReadUInt8(&val8));
67 EXPECT_EQ(0xCDu, val8); 68 EXPECT_EQ(0xCDu, val8);
68 EXPECT_TRUE(buffer.ReadUInt16(&val16)); 69 EXPECT_TRUE(buffer.ReadUInt16(&val16));
69 EXPECT_EQ(0xEF12u, val16); 70 EXPECT_EQ(0xEF12u, val16);
70 EXPECT_TRUE(buffer.ReadUInt32(&val32)); 71 EXPECT_TRUE(buffer.ReadUInt32(&val32));
(...skipping 10 matching lines...) Expand all
81 // 0b10010111, 82 // 0b10010111,
82 // 0b01010011, 83 // 0b01010011,
83 // 0b00001110, 84 // 0b00001110,
84 // 0b11001010, 85 // 0b11001010,
85 // 0b10000110, 86 // 0b10000110,
86 // 0b01000010 87 // 0b01000010
87 // xxxxx <-- last 5 bits unused. 88 // xxxxx <-- last 5 bits unused.
88 89
89 // The bytes. It almost looks like counting down by two at a time, except the 90 // The bytes. It almost looks like counting down by two at a time, except the
90 // jump at 5->3->0, since that's when the high bit is turned off. 91 // jump at 5->3->0, since that's when the high bit is turned off.
91 const uint8 bytes[] = {0x1F, 0xDB, 0x97, 0x53, 0x0E, 0xCA, 0x86, 0x42}; 92 const uint8_t bytes[] = {0x1F, 0xDB, 0x97, 0x53, 0x0E, 0xCA, 0x86, 0x42};
92 93
93 uint8 val8; 94 uint8_t val8;
94 uint16 val16; 95 uint16_t val16;
95 uint32 val32; 96 uint32_t val32;
96 BitBuffer buffer(bytes, 8); 97 BitBuffer buffer(bytes, 8);
97 EXPECT_TRUE(buffer.ConsumeBits(3)); 98 EXPECT_TRUE(buffer.ConsumeBits(3));
98 EXPECT_TRUE(buffer.ReadUInt8(&val8)); 99 EXPECT_TRUE(buffer.ReadUInt8(&val8));
99 EXPECT_EQ(0xFEu, val8); 100 EXPECT_EQ(0xFEu, val8);
100 EXPECT_TRUE(buffer.ReadUInt16(&val16)); 101 EXPECT_TRUE(buffer.ReadUInt16(&val16));
101 EXPECT_EQ(0xDCBAu, val16); 102 EXPECT_EQ(0xDCBAu, val16);
102 EXPECT_TRUE(buffer.ReadUInt32(&val32)); 103 EXPECT_TRUE(buffer.ReadUInt32(&val32));
103 EXPECT_EQ(0x98765432u, val32); 104 EXPECT_EQ(0x98765432u, val32);
104 // 5 bits left unread. Not enough to read a uint8. 105 // 5 bits left unread. Not enough to read a uint8_t.
105 EXPECT_EQ(5u, buffer.RemainingBitCount()); 106 EXPECT_EQ(5u, buffer.RemainingBitCount());
106 EXPECT_FALSE(buffer.ReadUInt8(&val8)); 107 EXPECT_FALSE(buffer.ReadUInt8(&val8));
107 } 108 }
108 109
109 TEST(BitBufferTest, ReadBits) { 110 TEST(BitBufferTest, ReadBits) {
110 // Bit values are: 111 // Bit values are:
111 // 0b01001101, 112 // 0b01001101,
112 // 0b00110010 113 // 0b00110010
113 const uint8 bytes[] = {0x4D, 0x32}; 114 const uint8_t bytes[] = {0x4D, 0x32};
114 uint32_t val; 115 uint32_t val;
115 BitBuffer buffer(bytes, 2); 116 BitBuffer buffer(bytes, 2);
116 EXPECT_TRUE(buffer.ReadBits(&val, 3)); 117 EXPECT_TRUE(buffer.ReadBits(&val, 3));
117 // 0b010 118 // 0b010
118 EXPECT_EQ(0x2u, val); 119 EXPECT_EQ(0x2u, val);
119 EXPECT_TRUE(buffer.ReadBits(&val, 2)); 120 EXPECT_TRUE(buffer.ReadBits(&val, 2));
120 // 0b01 121 // 0b01
121 EXPECT_EQ(0x1u, val); 122 EXPECT_EQ(0x1u, val);
122 EXPECT_TRUE(buffer.ReadBits(&val, 7)); 123 EXPECT_TRUE(buffer.ReadBits(&val, 7));
123 // 0b1010011 124 // 0b1010011
124 EXPECT_EQ(0x53u, val); 125 EXPECT_EQ(0x53u, val);
125 EXPECT_TRUE(buffer.ReadBits(&val, 2)); 126 EXPECT_TRUE(buffer.ReadBits(&val, 2));
126 // 0b00 127 // 0b00
127 EXPECT_EQ(0x0u, val); 128 EXPECT_EQ(0x0u, val);
128 EXPECT_TRUE(buffer.ReadBits(&val, 1)); 129 EXPECT_TRUE(buffer.ReadBits(&val, 1));
129 // 0b1 130 // 0b1
130 EXPECT_EQ(0x1u, val); 131 EXPECT_EQ(0x1u, val);
131 EXPECT_TRUE(buffer.ReadBits(&val, 1)); 132 EXPECT_TRUE(buffer.ReadBits(&val, 1));
132 // 0b0 133 // 0b0
133 EXPECT_EQ(0x0u, val); 134 EXPECT_EQ(0x0u, val);
134 135
135 EXPECT_FALSE(buffer.ReadBits(&val, 1)); 136 EXPECT_FALSE(buffer.ReadBits(&val, 1));
136 } 137 }
137 138
138 TEST(BitBufferTest, SetOffsetValues) { 139 TEST(BitBufferTest, SetOffsetValues) {
139 uint8 bytes[4] = {0}; 140 uint8_t bytes[4] = {0};
140 BitBufferWriter buffer(bytes, 4); 141 BitBufferWriter buffer(bytes, 4);
141 142
142 size_t byte_offset, bit_offset; 143 size_t byte_offset, bit_offset;
143 // Bit offsets are [0,7]. 144 // Bit offsets are [0,7].
144 EXPECT_TRUE(buffer.Seek(0, 0)); 145 EXPECT_TRUE(buffer.Seek(0, 0));
145 EXPECT_TRUE(buffer.Seek(0, 7)); 146 EXPECT_TRUE(buffer.Seek(0, 7));
146 buffer.GetCurrentOffset(&byte_offset, &bit_offset); 147 buffer.GetCurrentOffset(&byte_offset, &bit_offset);
147 EXPECT_EQ(0u, byte_offset); 148 EXPECT_EQ(0u, byte_offset);
148 EXPECT_EQ(7u, bit_offset); 149 EXPECT_EQ(7u, bit_offset);
149 EXPECT_FALSE(buffer.Seek(0, 8)); 150 EXPECT_FALSE(buffer.Seek(0, 8));
(...skipping 17 matching lines...) Expand all
167 // Disable death test on Android because it relies on fork() and doesn't play 168 // Disable death test on Android because it relies on fork() and doesn't play
168 // nicely. 169 // nicely.
169 #if defined(GTEST_HAS_DEATH_TEST) 170 #if defined(GTEST_HAS_DEATH_TEST)
170 #if !defined(WEBRTC_ANDROID) 171 #if !defined(WEBRTC_ANDROID)
171 // Passing a NULL out parameter is death. 172 // Passing a NULL out parameter is death.
172 EXPECT_DEATH(buffer.GetCurrentOffset(&byte_offset, NULL), ""); 173 EXPECT_DEATH(buffer.GetCurrentOffset(&byte_offset, NULL), "");
173 #endif 174 #endif
174 #endif 175 #endif
175 } 176 }
176 177
177 uint64 GolombEncoded(uint32 val) { 178 uint64_t GolombEncoded(uint32_t val) {
178 val++; 179 val++;
179 uint32 bit_counter = val; 180 uint32_t bit_counter = val;
180 uint64 bit_count = 0; 181 uint64_t bit_count = 0;
181 while (bit_counter > 0) { 182 while (bit_counter > 0) {
182 bit_count++; 183 bit_count++;
183 bit_counter >>= 1; 184 bit_counter >>= 1;
184 } 185 }
185 return static_cast<uint64>(val) << (64 - (bit_count * 2 - 1)); 186 return static_cast<uint64_t>(val) << (64 - (bit_count * 2 - 1));
186 } 187 }
187 188
188 TEST(BitBufferTest, GolombUint32Values) { 189 TEST(BitBufferTest, GolombUint32Values) {
189 ByteBuffer byteBuffer; 190 ByteBuffer byteBuffer;
190 byteBuffer.Resize(16); 191 byteBuffer.Resize(16);
191 BitBuffer buffer(reinterpret_cast<const uint8*>(byteBuffer.Data()), 192 BitBuffer buffer(reinterpret_cast<const uint8_t*>(byteBuffer.Data()),
192 byteBuffer.Capacity()); 193 byteBuffer.Capacity());
193 // Test over the uint32 range with a large enough step that the test doesn't 194 // Test over the uint32_t range with a large enough step that the test doesn't
194 // take forever. Around 20,000 iterations should do. 195 // take forever. Around 20,000 iterations should do.
195 const int kStep = std::numeric_limits<uint32>::max() / 20000; 196 const int kStep = std::numeric_limits<uint32_t>::max() / 20000;
196 for (uint32 i = 0; i < std::numeric_limits<uint32>::max() - kStep; 197 for (uint32_t i = 0; i < std::numeric_limits<uint32_t>::max() - kStep;
197 i += kStep) { 198 i += kStep) {
198 uint64 encoded_val = GolombEncoded(i); 199 uint64_t encoded_val = GolombEncoded(i);
199 byteBuffer.Clear(); 200 byteBuffer.Clear();
200 byteBuffer.WriteUInt64(encoded_val); 201 byteBuffer.WriteUInt64(encoded_val);
201 uint32 decoded_val; 202 uint32_t decoded_val;
202 EXPECT_TRUE(buffer.Seek(0, 0)); 203 EXPECT_TRUE(buffer.Seek(0, 0));
203 EXPECT_TRUE(buffer.ReadExponentialGolomb(&decoded_val)); 204 EXPECT_TRUE(buffer.ReadExponentialGolomb(&decoded_val));
204 EXPECT_EQ(i, decoded_val); 205 EXPECT_EQ(i, decoded_val);
205 } 206 }
206 } 207 }
207 208
208 TEST(BitBufferTest, NoGolombOverread) { 209 TEST(BitBufferTest, NoGolombOverread) {
209 const uint8 bytes[] = {0x00, 0xFF, 0xFF}; 210 const uint8_t bytes[] = {0x00, 0xFF, 0xFF};
210 // Make sure the bit buffer correctly enforces byte length on golomb reads. 211 // Make sure the bit buffer correctly enforces byte length on golomb reads.
211 // If it didn't, the above buffer would be valid at 3 bytes. 212 // If it didn't, the above buffer would be valid at 3 bytes.
212 BitBuffer buffer(bytes, 1); 213 BitBuffer buffer(bytes, 1);
213 uint32 decoded_val; 214 uint32_t decoded_val;
214 EXPECT_FALSE(buffer.ReadExponentialGolomb(&decoded_val)); 215 EXPECT_FALSE(buffer.ReadExponentialGolomb(&decoded_val));
215 216
216 BitBuffer longer_buffer(bytes, 2); 217 BitBuffer longer_buffer(bytes, 2);
217 EXPECT_FALSE(longer_buffer.ReadExponentialGolomb(&decoded_val)); 218 EXPECT_FALSE(longer_buffer.ReadExponentialGolomb(&decoded_val));
218 219
219 BitBuffer longest_buffer(bytes, 3); 220 BitBuffer longest_buffer(bytes, 3);
220 EXPECT_TRUE(longest_buffer.ReadExponentialGolomb(&decoded_val)); 221 EXPECT_TRUE(longest_buffer.ReadExponentialGolomb(&decoded_val));
221 // Golomb should have read 9 bits, so 0x01FF, and since it is golomb, the 222 // Golomb should have read 9 bits, so 0x01FF, and since it is golomb, the
222 // result is 0x01FF - 1 = 0x01FE. 223 // result is 0x01FF - 1 = 0x01FE.
223 EXPECT_EQ(0x01FEu, decoded_val); 224 EXPECT_EQ(0x01FEu, decoded_val);
224 } 225 }
225 226
226 TEST(BitBufferWriterTest, SymmetricReadWrite) { 227 TEST(BitBufferWriterTest, SymmetricReadWrite) {
227 uint8 bytes[16] = {0}; 228 uint8_t bytes[16] = {0};
228 BitBufferWriter buffer(bytes, 4); 229 BitBufferWriter buffer(bytes, 4);
229 230
230 // Write some bit data at various sizes. 231 // Write some bit data at various sizes.
231 EXPECT_TRUE(buffer.WriteBits(0x2u, 3)); 232 EXPECT_TRUE(buffer.WriteBits(0x2u, 3));
232 EXPECT_TRUE(buffer.WriteBits(0x1u, 2)); 233 EXPECT_TRUE(buffer.WriteBits(0x1u, 2));
233 EXPECT_TRUE(buffer.WriteBits(0x53u, 7)); 234 EXPECT_TRUE(buffer.WriteBits(0x53u, 7));
234 EXPECT_TRUE(buffer.WriteBits(0x0u, 2)); 235 EXPECT_TRUE(buffer.WriteBits(0x0u, 2));
235 EXPECT_TRUE(buffer.WriteBits(0x1u, 1)); 236 EXPECT_TRUE(buffer.WriteBits(0x1u, 1));
236 EXPECT_TRUE(buffer.WriteBits(0x1ABCDu, 17)); 237 EXPECT_TRUE(buffer.WriteBits(0x1ABCDu, 17));
237 // That should be all that fits in the buffer. 238 // That should be all that fits in the buffer.
238 EXPECT_FALSE(buffer.WriteBits(1, 1)); 239 EXPECT_FALSE(buffer.WriteBits(1, 1));
239 240
240 EXPECT_TRUE(buffer.Seek(0, 0)); 241 EXPECT_TRUE(buffer.Seek(0, 0));
241 uint32 val; 242 uint32_t val;
242 EXPECT_TRUE(buffer.ReadBits(&val, 3)); 243 EXPECT_TRUE(buffer.ReadBits(&val, 3));
243 EXPECT_EQ(0x2u, val); 244 EXPECT_EQ(0x2u, val);
244 EXPECT_TRUE(buffer.ReadBits(&val, 2)); 245 EXPECT_TRUE(buffer.ReadBits(&val, 2));
245 EXPECT_EQ(0x1u, val); 246 EXPECT_EQ(0x1u, val);
246 EXPECT_TRUE(buffer.ReadBits(&val, 7)); 247 EXPECT_TRUE(buffer.ReadBits(&val, 7));
247 EXPECT_EQ(0x53u, val); 248 EXPECT_EQ(0x53u, val);
248 EXPECT_TRUE(buffer.ReadBits(&val, 2)); 249 EXPECT_TRUE(buffer.ReadBits(&val, 2));
249 EXPECT_EQ(0x0u, val); 250 EXPECT_EQ(0x0u, val);
250 EXPECT_TRUE(buffer.ReadBits(&val, 1)); 251 EXPECT_TRUE(buffer.ReadBits(&val, 1));
251 EXPECT_EQ(0x1u, val); 252 EXPECT_EQ(0x1u, val);
252 EXPECT_TRUE(buffer.ReadBits(&val, 17)); 253 EXPECT_TRUE(buffer.ReadBits(&val, 17));
253 EXPECT_EQ(0x1ABCDu, val); 254 EXPECT_EQ(0x1ABCDu, val);
254 // And there should be nothing left. 255 // And there should be nothing left.
255 EXPECT_FALSE(buffer.ReadBits(&val, 1)); 256 EXPECT_FALSE(buffer.ReadBits(&val, 1));
256 } 257 }
257 258
258 TEST(BitBufferWriterTest, SymmetricBytesMisaligned) { 259 TEST(BitBufferWriterTest, SymmetricBytesMisaligned) {
259 uint8 bytes[16] = {0}; 260 uint8_t bytes[16] = {0};
260 BitBufferWriter buffer(bytes, 16); 261 BitBufferWriter buffer(bytes, 16);
261 262
262 // Offset 3, to get things misaligned. 263 // Offset 3, to get things misaligned.
263 EXPECT_TRUE(buffer.ConsumeBits(3)); 264 EXPECT_TRUE(buffer.ConsumeBits(3));
264 EXPECT_TRUE(buffer.WriteUInt8(0x12u)); 265 EXPECT_TRUE(buffer.WriteUInt8(0x12u));
265 EXPECT_TRUE(buffer.WriteUInt16(0x3456u)); 266 EXPECT_TRUE(buffer.WriteUInt16(0x3456u));
266 EXPECT_TRUE(buffer.WriteUInt32(0x789ABCDEu)); 267 EXPECT_TRUE(buffer.WriteUInt32(0x789ABCDEu));
267 268
268 buffer.Seek(0, 3); 269 buffer.Seek(0, 3);
269 uint8 val8; 270 uint8_t val8;
270 uint16 val16; 271 uint16_t val16;
271 uint32 val32; 272 uint32_t val32;
272 EXPECT_TRUE(buffer.ReadUInt8(&val8)); 273 EXPECT_TRUE(buffer.ReadUInt8(&val8));
273 EXPECT_EQ(0x12u, val8); 274 EXPECT_EQ(0x12u, val8);
274 EXPECT_TRUE(buffer.ReadUInt16(&val16)); 275 EXPECT_TRUE(buffer.ReadUInt16(&val16));
275 EXPECT_EQ(0x3456u, val16); 276 EXPECT_EQ(0x3456u, val16);
276 EXPECT_TRUE(buffer.ReadUInt32(&val32)); 277 EXPECT_TRUE(buffer.ReadUInt32(&val32));
277 EXPECT_EQ(0x789ABCDEu, val32); 278 EXPECT_EQ(0x789ABCDEu, val32);
278 } 279 }
279 280
280 TEST(BitBufferWriterTest, SymmetricGolomb) { 281 TEST(BitBufferWriterTest, SymmetricGolomb) {
281 char test_string[] = "my precious"; 282 char test_string[] = "my precious";
282 uint8 bytes[64] = {0}; 283 uint8_t bytes[64] = {0};
283 BitBufferWriter buffer(bytes, 64); 284 BitBufferWriter buffer(bytes, 64);
284 for (size_t i = 0; i < ARRAY_SIZE(test_string); ++i) { 285 for (size_t i = 0; i < ARRAY_SIZE(test_string); ++i) {
285 EXPECT_TRUE(buffer.WriteExponentialGolomb(test_string[i])); 286 EXPECT_TRUE(buffer.WriteExponentialGolomb(test_string[i]));
286 } 287 }
287 buffer.Seek(0, 0); 288 buffer.Seek(0, 0);
288 for (size_t i = 0; i < ARRAY_SIZE(test_string); ++i) { 289 for (size_t i = 0; i < ARRAY_SIZE(test_string); ++i) {
289 uint32 val; 290 uint32_t val;
290 EXPECT_TRUE(buffer.ReadExponentialGolomb(&val)); 291 EXPECT_TRUE(buffer.ReadExponentialGolomb(&val));
291 EXPECT_LE(val, std::numeric_limits<uint8>::max()); 292 EXPECT_LE(val, std::numeric_limits<uint8_t>::max());
292 EXPECT_EQ(test_string[i], static_cast<char>(val)); 293 EXPECT_EQ(test_string[i], static_cast<char>(val));
293 } 294 }
294 } 295 }
295 296
296 TEST(BitBufferWriterTest, WriteClearsBits) { 297 TEST(BitBufferWriterTest, WriteClearsBits) {
297 uint8 bytes[] = {0xFF, 0xFF}; 298 uint8_t bytes[] = {0xFF, 0xFF};
298 BitBufferWriter buffer(bytes, 2); 299 BitBufferWriter buffer(bytes, 2);
299 EXPECT_TRUE(buffer.ConsumeBits(3)); 300 EXPECT_TRUE(buffer.ConsumeBits(3));
300 EXPECT_TRUE(buffer.WriteBits(0, 1)); 301 EXPECT_TRUE(buffer.WriteBits(0, 1));
301 EXPECT_EQ(0xEFu, bytes[0]); 302 EXPECT_EQ(0xEFu, bytes[0]);
302 EXPECT_TRUE(buffer.WriteBits(0, 3)); 303 EXPECT_TRUE(buffer.WriteBits(0, 3));
303 EXPECT_EQ(0xE1u, bytes[0]); 304 EXPECT_EQ(0xE1u, bytes[0]);
304 EXPECT_TRUE(buffer.WriteBits(0, 2)); 305 EXPECT_TRUE(buffer.WriteBits(0, 2));
305 EXPECT_EQ(0xE0u, bytes[0]); 306 EXPECT_EQ(0xE0u, bytes[0]);
306 EXPECT_EQ(0x7F, bytes[1]); 307 EXPECT_EQ(0x7F, bytes[1]);
307 } 308 }
308 309
309 } // namespace rtc 310 } // namespace rtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698