147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org/* 247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org * Copyright 2004 The WebRTC Project Authors. All rights reserved. 347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org * 447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org * Use of this source code is governed by a BSD-style license 547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org * that can be found in the LICENSE file in the root of the source 647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org * tree. An additional intellectual property rights grant can be found 747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org * in the file PATENTS. All contributing project authors may 847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org * be found in the AUTHORS file in the root of the source tree. 947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org */ 1047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 1147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#include "webrtc/base/bytebuffer.h" 1247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#include "webrtc/base/byteorder.h" 1347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#include "webrtc/base/common.h" 1447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#include "webrtc/base/gunit.h" 1547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 1647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgnamespace rtc { 1747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 1847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgTEST(ByteBufferTest, TestByteOrder) { 1947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org uint16 n16 = 1; 2047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org uint32 n32 = 1; 2147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org uint64 n64 = 1; 2247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 2347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(n16, NetworkToHost16(HostToNetwork16(n16))); 2447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(n32, NetworkToHost32(HostToNetwork32(n32))); 2547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(n64, NetworkToHost64(HostToNetwork64(n64))); 2647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 2747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org if (IsHostBigEndian()) { 2847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // The host is the network (big) endian. 2947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(n16, HostToNetwork16(n16)); 3047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(n32, HostToNetwork32(n32)); 3147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(n64, HostToNetwork64(n64)); 3247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 3347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // GetBE converts big endian to little endian here. 3447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(n16 >> 8, GetBE16(&n16)); 3547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(n32 >> 24, GetBE32(&n32)); 3647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(n64 >> 56, GetBE64(&n64)); 3747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org } else { 3847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // The host is little endian. 3947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_NE(n16, HostToNetwork16(n16)); 4047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_NE(n32, HostToNetwork32(n32)); 4147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_NE(n64, HostToNetwork64(n64)); 4247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 4347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // GetBE converts little endian to big endian here. 4447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(GetBE16(&n16), HostToNetwork16(n16)); 4547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(GetBE32(&n32), HostToNetwork32(n32)); 4647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(GetBE64(&n64), HostToNetwork64(n64)); 4747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 4847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // GetBE converts little endian to big endian here. 4947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(n16 << 8, GetBE16(&n16)); 5047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(n32 << 24, GetBE32(&n32)); 5147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(n64 << 56, GetBE64(&n64)); 5247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org } 5347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org} 5447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 5547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgTEST(ByteBufferTest, TestBufferLength) { 5647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org ByteBuffer buffer; 5747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org size_t size = 0; 5847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(size, buffer.Length()); 5947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 6047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org buffer.WriteUInt8(1); 6147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org ++size; 6247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(size, buffer.Length()); 6347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 6447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org buffer.WriteUInt16(1); 6547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org size += 2; 6647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(size, buffer.Length()); 6747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 6847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org buffer.WriteUInt24(1); 6947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org size += 3; 7047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(size, buffer.Length()); 7147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 7247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org buffer.WriteUInt32(1); 7347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org size += 4; 7447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(size, buffer.Length()); 7547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 7647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org buffer.WriteUInt64(1); 7747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org size += 8; 7847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(size, buffer.Length()); 7947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 8047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(buffer.Consume(0)); 8147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(size, buffer.Length()); 8247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 8347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(buffer.Consume(4)); 8447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org size -= 4; 8547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(size, buffer.Length()); 8647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org} 8747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 8847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgTEST(ByteBufferTest, TestGetSetReadPosition) { 8947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org ByteBuffer buffer("ABCDEF", 6); 9047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(6U, buffer.Length()); 9147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org ByteBuffer::ReadPosition pos(buffer.GetReadPosition()); 9247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(buffer.SetReadPosition(pos)); 9347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(6U, buffer.Length()); 9447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org std::string read; 9547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(buffer.ReadString(&read, 3)); 9647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ("ABC", read); 9747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(3U, buffer.Length()); 9847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(buffer.SetReadPosition(pos)); 9947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(6U, buffer.Length()); 10047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org read.clear(); 10147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(buffer.ReadString(&read, 3)); 10247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ("ABC", read); 10347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(3U, buffer.Length()); 10447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // For a resize by writing Capacity() number of bytes. 10547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org size_t capacity = buffer.Capacity(); 10647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org buffer.ReserveWriteBuffer(buffer.Capacity()); 10747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(capacity + 3U, buffer.Length()); 10847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(buffer.SetReadPosition(pos)); 10947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org read.clear(); 11047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(buffer.ReadString(&read, 3)); 11147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ("DEF", read); 11247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org} 11347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 11447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgTEST(ByteBufferTest, TestReadWriteBuffer) { 11547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org ByteBuffer::ByteOrder orders[2] = { ByteBuffer::ORDER_HOST, 11647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org ByteBuffer::ORDER_NETWORK }; 11747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org for (size_t i = 0; i < ARRAY_SIZE(orders); i++) { 11847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org ByteBuffer buffer(orders[i]); 11947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(orders[i], buffer.Order()); 12047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org uint8 ru8; 12147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(buffer.ReadUInt8(&ru8)); 12247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 12347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // Write and read uint8. 12447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org uint8 wu8 = 1; 12547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org buffer.WriteUInt8(wu8); 12647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(buffer.ReadUInt8(&ru8)); 12747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(wu8, ru8); 12847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(0U, buffer.Length()); 12947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 13047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // Write and read uint16. 13147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org uint16 wu16 = (1 << 8) + 1; 13247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org buffer.WriteUInt16(wu16); 13347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org uint16 ru16; 13447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(buffer.ReadUInt16(&ru16)); 13547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(wu16, ru16); 13647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(0U, buffer.Length()); 13747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 13847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // Write and read uint24. 13947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org uint32 wu24 = (3 << 16) + (2 << 8) + 1; 14047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org buffer.WriteUInt24(wu24); 14147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org uint32 ru24; 14247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(buffer.ReadUInt24(&ru24)); 14347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(wu24, ru24); 14447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(0U, buffer.Length()); 14547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 14647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // Write and read uint32. 14747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org uint32 wu32 = (4 << 24) + (3 << 16) + (2 << 8) + 1; 14847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org buffer.WriteUInt32(wu32); 14947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org uint32 ru32; 15047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(buffer.ReadUInt32(&ru32)); 15147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(wu32, ru32); 15247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(0U, buffer.Length()); 15347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 15447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // Write and read uint64. 15547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org uint32 another32 = (8 << 24) + (7 << 16) + (6 << 8) + 5; 15647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org uint64 wu64 = (static_cast<uint64>(another32) << 32) + wu32; 15747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org buffer.WriteUInt64(wu64); 15847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org uint64 ru64; 15947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(buffer.ReadUInt64(&ru64)); 16047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(wu64, ru64); 16147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(0U, buffer.Length()); 16247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 16347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // Write and read string. 16447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org std::string write_string("hello"); 16547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org buffer.WriteString(write_string); 16647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org std::string read_string; 16747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(buffer.ReadString(&read_string, write_string.size())); 16847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(write_string, read_string); 16947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(0U, buffer.Length()); 17047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 17147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // Write and read bytes 17247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org char write_bytes[] = "foo"; 17347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org buffer.WriteBytes(write_bytes, 3); 17447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org char read_bytes[3]; 17547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(buffer.ReadBytes(read_bytes, 3)); 17647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org for (int i = 0; i < 3; ++i) { 17747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(write_bytes[i], read_bytes[i]); 17847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org } 17947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(0U, buffer.Length()); 18047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 18147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // Write and read reserved buffer space 18247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org char* write_dst = buffer.ReserveWriteBuffer(3); 18347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org memcpy(write_dst, write_bytes, 3); 18447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org memset(read_bytes, 0, 3); 18547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(buffer.ReadBytes(read_bytes, 3)); 18647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org for (int i = 0; i < 3; ++i) { 18747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(write_bytes[i], read_bytes[i]); 18847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org } 18947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(0U, buffer.Length()); 19047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 19147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // Write and read in order. 19247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org buffer.WriteUInt8(wu8); 19347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org buffer.WriteUInt16(wu16); 19447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org buffer.WriteUInt24(wu24); 19547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org buffer.WriteUInt32(wu32); 19647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org buffer.WriteUInt64(wu64); 19747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(buffer.ReadUInt8(&ru8)); 19847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(wu8, ru8); 19947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(buffer.ReadUInt16(&ru16)); 20047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(wu16, ru16); 20147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(buffer.ReadUInt24(&ru24)); 20247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(wu24, ru24); 20347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(buffer.ReadUInt32(&ru32)); 20447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(wu32, ru32); 20547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(buffer.ReadUInt64(&ru64)); 20647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(wu64, ru64); 20747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(0U, buffer.Length()); 20847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org } 20947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org} 21047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 21147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org} // namespace rtc 212