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

Unified Diff: webrtc/p2p/base/port_unittest.cc

Issue 1821083002: Split ByteBuffer into writer/reader objects. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/p2p/base/port.cc ('k') | webrtc/p2p/base/pseudotcp.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/p2p/base/port_unittest.cc
diff --git a/webrtc/p2p/base/port_unittest.cc b/webrtc/p2p/base/port_unittest.cc
index be5ced97c0b0085170c30dc0715fb3998fb348e5..ddc6d986ab7058026ce6a87b4d02a16672c73b36 100644
--- a/webrtc/p2p/base/port_unittest.cc
+++ b/webrtc/p2p/base/port_unittest.cc
@@ -18,6 +18,7 @@
#include "webrtc/p2p/base/transport.h"
#include "webrtc/p2p/base/turnport.h"
#include "webrtc/base/arraysize.h"
+#include "webrtc/base/buffer.h"
#include "webrtc/base/crc32.h"
#include "webrtc/base/gunit.h"
#include "webrtc/base/helpers.h"
@@ -33,7 +34,9 @@
#include "webrtc/base/virtualsocketserver.h"
using rtc::AsyncPacketSocket;
-using rtc::ByteBuffer;
+using rtc::Buffer;
+using rtc::ByteBufferReader;
+using rtc::ByteBufferWriter;
using rtc::NATType;
using rtc::NAT_OPEN_CONE;
using rtc::NAT_ADDR_RESTRICTED;
@@ -84,13 +87,14 @@ static SocketAddress GetAddress(Port* port) {
static IceMessage* CopyStunMessage(const IceMessage* src) {
IceMessage* dst = new IceMessage();
- ByteBuffer buf;
+ ByteBufferWriter buf;
src->Write(&buf);
- dst->Read(&buf);
+ ByteBufferReader read_buf(buf);
+ dst->Read(&read_buf);
return dst;
}
-static bool WriteStunMessage(const StunMessage* msg, ByteBuffer* buf) {
+static bool WriteStunMessage(const StunMessage* msg, ByteBufferWriter* buf) {
buf->Resize(0); // clear out any existing buffer contents
return msg->Write(buf);
}
@@ -123,7 +127,7 @@ class TestPort : public Port {
// The last StunMessage that was sent on this Port.
// TODO: Make these const; requires changes to SendXXXXResponse.
- ByteBuffer* last_stun_buf() { return last_stun_buf_.get(); }
+ Buffer* last_stun_buf() { return last_stun_buf_.get(); }
IceMessage* last_stun_msg() { return last_stun_msg_.get(); }
int last_stun_error_code() {
int code = 0;
@@ -174,14 +178,13 @@ class TestPort : public Port {
const rtc::PacketOptions& options, bool payload) {
if (!payload) {
IceMessage* msg = new IceMessage;
- ByteBuffer* buf = new ByteBuffer(static_cast<const char*>(data), size);
- ByteBuffer::ReadPosition pos(buf->GetReadPosition());
- if (!msg->Read(buf)) {
+ Buffer* buf = new Buffer(static_cast<const char*>(data), size);
+ ByteBufferReader read_buf(*buf);
+ if (!msg->Read(&read_buf)) {
delete msg;
delete buf;
return -1;
}
- buf->SetReadPosition(pos);
last_stun_buf_.reset(buf);
last_stun_msg_.reset(msg);
}
@@ -209,7 +212,7 @@ class TestPort : public Port {
const rtc::SentPacket& sent_packet) {
PortInterface::SignalSentPacket(sent_packet);
}
- rtc::scoped_ptr<ByteBuffer> last_stun_buf_;
+ rtc::scoped_ptr<Buffer> last_stun_buf_;
rtc::scoped_ptr<IceMessage> last_stun_msg_;
int type_preference_ = 0;
};
@@ -1328,8 +1331,8 @@ TEST_F(PortTest, TestLoopbackCal) {
ASSERT_TRUE_WAIT(lport->last_stun_msg() != NULL, 1000);
IceMessage* msg = lport->last_stun_msg();
EXPECT_EQ(STUN_BINDING_REQUEST, msg->type());
- conn->OnReadPacket(lport->last_stun_buf()->Data(),
- lport->last_stun_buf()->Length(),
+ conn->OnReadPacket(lport->last_stun_buf()->data<char>(),
+ lport->last_stun_buf()->size(),
rtc::PacketTime());
ASSERT_TRUE_WAIT(lport->last_stun_msg() != NULL, 1000);
msg = lport->last_stun_msg();
@@ -1361,7 +1364,7 @@ TEST_F(PortTest, TestLoopbackCal) {
modified_req->AddFingerprint();
lport->Reset();
- rtc::scoped_ptr<ByteBuffer> buf(new ByteBuffer());
+ rtc::scoped_ptr<ByteBufferWriter> buf(new ByteBufferWriter());
WriteStunMessage(modified_req.get(), buf.get());
conn1->OnReadPacket(buf->Data(), buf->Length(), rtc::PacketTime());
ASSERT_TRUE_WAIT(lport->last_stun_msg() != NULL, 1000);
@@ -1398,8 +1401,8 @@ TEST_F(PortTest, TestIceRoleConflict) {
IceMessage* msg = rport->last_stun_msg();
EXPECT_EQ(STUN_BINDING_REQUEST, msg->type());
// Send rport binding request to lport.
- lconn->OnReadPacket(rport->last_stun_buf()->Data(),
- rport->last_stun_buf()->Length(),
+ lconn->OnReadPacket(rport->last_stun_buf()->data<char>(),
+ rport->last_stun_buf()->size(),
rtc::PacketTime());
ASSERT_TRUE_WAIT(lport->last_stun_msg() != NULL, 1000);
@@ -1624,7 +1627,7 @@ TEST_F(PortTest, TestSendStunMessage) {
EXPECT_EQ("rfrag:lfrag", username_attr->GetString());
EXPECT_TRUE(msg->GetByteString(STUN_ATTR_MESSAGE_INTEGRITY) != NULL);
EXPECT_TRUE(StunMessage::ValidateMessageIntegrity(
- lport->last_stun_buf()->Data(), lport->last_stun_buf()->Length(),
+ lport->last_stun_buf()->data<char>(), lport->last_stun_buf()->size(),
"rpass"));
const StunUInt64Attribute* ice_controlling_attr =
msg->GetUInt64(STUN_ATTR_ICE_CONTROLLING);
@@ -1634,7 +1637,7 @@ TEST_F(PortTest, TestSendStunMessage) {
EXPECT_TRUE(msg->GetByteString(STUN_ATTR_USE_CANDIDATE) != NULL);
EXPECT_TRUE(msg->GetUInt32(STUN_ATTR_FINGERPRINT) != NULL);
EXPECT_TRUE(StunMessage::ValidateFingerprint(
- lport->last_stun_buf()->Data(), lport->last_stun_buf()->Length()));
+ lport->last_stun_buf()->data<char>(), lport->last_stun_buf()->size()));
// Request should not include ping count.
ASSERT_TRUE(msg->GetUInt32(STUN_ATTR_RETRANSMIT_COUNT) == NULL);
@@ -1656,11 +1659,11 @@ TEST_F(PortTest, TestSendStunMessage) {
EXPECT_EQ(lport->Candidates()[0].address(), addr_attr->GetAddress());
EXPECT_TRUE(msg->GetByteString(STUN_ATTR_MESSAGE_INTEGRITY) != NULL);
EXPECT_TRUE(StunMessage::ValidateMessageIntegrity(
- rport->last_stun_buf()->Data(), rport->last_stun_buf()->Length(),
+ rport->last_stun_buf()->data<char>(), rport->last_stun_buf()->size(),
"rpass"));
EXPECT_TRUE(msg->GetUInt32(STUN_ATTR_FINGERPRINT) != NULL);
EXPECT_TRUE(StunMessage::ValidateFingerprint(
- lport->last_stun_buf()->Data(), lport->last_stun_buf()->Length()));
+ lport->last_stun_buf()->data<char>(), lport->last_stun_buf()->size()));
// No USERNAME or PRIORITY in ICE responses.
EXPECT_TRUE(msg->GetByteString(STUN_ATTR_USERNAME) == NULL);
EXPECT_TRUE(msg->GetByteString(STUN_ATTR_PRIORITY) == NULL);
@@ -1688,11 +1691,11 @@ TEST_F(PortTest, TestSendStunMessage) {
EXPECT_EQ(std::string(STUN_ERROR_REASON_SERVER_ERROR), error_attr->reason());
EXPECT_TRUE(msg->GetByteString(STUN_ATTR_MESSAGE_INTEGRITY) != NULL);
EXPECT_TRUE(StunMessage::ValidateMessageIntegrity(
- rport->last_stun_buf()->Data(), rport->last_stun_buf()->Length(),
+ rport->last_stun_buf()->data<char>(), rport->last_stun_buf()->size(),
"rpass"));
EXPECT_TRUE(msg->GetUInt32(STUN_ATTR_FINGERPRINT) != NULL);
EXPECT_TRUE(StunMessage::ValidateFingerprint(
- lport->last_stun_buf()->Data(), lport->last_stun_buf()->Length()));
+ lport->last_stun_buf()->data<char>(), lport->last_stun_buf()->size()));
// No USERNAME with ICE.
EXPECT_TRUE(msg->GetByteString(STUN_ATTR_USERNAME) == NULL);
EXPECT_TRUE(msg->GetByteString(STUN_ATTR_PRIORITY) == NULL);
@@ -1764,7 +1767,7 @@ TEST_F(PortTest, TestHandleStunMessage) {
CreateTestPort(kLocalAddr2, "rfrag", "rpass"));
rtc::scoped_ptr<IceMessage> in_msg, out_msg;
- rtc::scoped_ptr<ByteBuffer> buf(new ByteBuffer());
+ rtc::scoped_ptr<ByteBufferWriter> buf(new ByteBufferWriter());
rtc::SocketAddress addr(kLocalAddr1);
std::string username;
@@ -1814,7 +1817,7 @@ TEST_F(PortTest, TestHandleStunMessageBadUsername) {
CreateTestPort(kLocalAddr2, "rfrag", "rpass"));
rtc::scoped_ptr<IceMessage> in_msg, out_msg;
- rtc::scoped_ptr<ByteBuffer> buf(new ByteBuffer());
+ rtc::scoped_ptr<ByteBufferWriter> buf(new ByteBufferWriter());
rtc::SocketAddress addr(kLocalAddr1);
std::string username;
@@ -1883,7 +1886,7 @@ TEST_F(PortTest, TestHandleStunMessageBadMessageIntegrity) {
CreateTestPort(kLocalAddr2, "rfrag", "rpass"));
rtc::scoped_ptr<IceMessage> in_msg, out_msg;
- rtc::scoped_ptr<ByteBuffer> buf(new ByteBuffer());
+ rtc::scoped_ptr<ByteBufferWriter> buf(new ByteBufferWriter());
rtc::SocketAddress addr(kLocalAddr1);
std::string username;
@@ -1924,7 +1927,7 @@ TEST_F(PortTest, TestHandleStunMessageBadFingerprint) {
CreateTestPort(kLocalAddr2, "rfrag", "rpass"));
rtc::scoped_ptr<IceMessage> in_msg, out_msg;
- rtc::scoped_ptr<ByteBuffer> buf(new ByteBuffer());
+ rtc::scoped_ptr<ByteBufferWriter> buf(new ByteBufferWriter());
rtc::SocketAddress addr(kLocalAddr1);
std::string username;
@@ -1993,7 +1996,7 @@ TEST_F(PortTest, TestHandleStunBindingIndication) {
// Verifying encoding and decoding STUN indication message.
rtc::scoped_ptr<IceMessage> in_msg, out_msg;
- rtc::scoped_ptr<ByteBuffer> buf(new ByteBuffer());
+ rtc::scoped_ptr<ByteBufferWriter> buf(new ByteBufferWriter());
rtc::SocketAddress addr(kLocalAddr1);
std::string username;
@@ -2028,8 +2031,8 @@ TEST_F(PortTest, TestHandleStunBindingIndication) {
IceMessage* msg = rport->last_stun_msg();
EXPECT_EQ(STUN_BINDING_REQUEST, msg->type());
// Send rport binding request to lport.
- lconn->OnReadPacket(rport->last_stun_buf()->Data(),
- rport->last_stun_buf()->Length(),
+ lconn->OnReadPacket(rport->last_stun_buf()->data<char>(),
+ rport->last_stun_buf()->size(),
rtc::PacketTime());
ASSERT_TRUE_WAIT(lport->last_stun_msg() != NULL, 1000);
EXPECT_EQ(STUN_BINDING_RESPONSE, lport->last_stun_msg()->type());
@@ -2415,8 +2418,8 @@ TEST_F(PortTest, TestIceLiteConnectivity) {
request.get(), ice_full_port->Candidates()[0].address());
// Feeding the respone message from litemode to the full mode connection.
- ch1.conn()->OnReadPacket(ice_lite_port->last_stun_buf()->Data(),
- ice_lite_port->last_stun_buf()->Length(),
+ ch1.conn()->OnReadPacket(ice_lite_port->last_stun_buf()->data<char>(),
+ ice_lite_port->last_stun_buf()->size(),
rtc::PacketTime());
// Verifying full mode connection becomes writable from the response.
EXPECT_EQ_WAIT(Connection::STATE_WRITABLE, ch1.conn()->write_state(),
« no previous file with comments | « webrtc/p2p/base/port.cc ('k') | webrtc/p2p/base/pseudotcp.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698