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

Side by Side Diff: webrtc/p2p/base/dtlstransportchannel_unittest.cc

Issue 2416023002: Introduce rtc::PacketTransportInterface and let cricket::TransportChannel inherit. (Closed)
Patch Set: Let BaseChannel::PacketIsRtcp() use PacketTransportInterface. Created 4 years, 2 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 2011 The WebRTC Project Authors. All rights reserved. 2 * Copyright 2011 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 <memory> 11 #include <memory>
12 #include <set> 12 #include <set>
13 13
14 #include "webrtc/p2p/base/dtlstransport.h" 14 #include "webrtc/p2p/base/dtlstransport.h"
15 #include "webrtc/p2p/base/faketransportcontroller.h" 15 #include "webrtc/p2p/base/faketransportcontroller.h"
16 #include "webrtc/p2p/base/packettransportinterface.h"
16 #include "webrtc/base/common.h" 17 #include "webrtc/base/common.h"
17 #include "webrtc/base/dscp.h" 18 #include "webrtc/base/dscp.h"
18 #include "webrtc/base/gunit.h" 19 #include "webrtc/base/gunit.h"
19 #include "webrtc/base/helpers.h" 20 #include "webrtc/base/helpers.h"
20 #include "webrtc/base/ssladapter.h" 21 #include "webrtc/base/ssladapter.h"
21 #include "webrtc/base/sslidentity.h" 22 #include "webrtc/base/sslidentity.h"
22 #include "webrtc/base/sslstreamadapter.h" 23 #include "webrtc/base/sslstreamadapter.h"
23 #include "webrtc/base/stringutils.h" 24 #include "webrtc/base/stringutils.h"
24 25
25 #define MAYBE_SKIP_TEST(feature) \ 26 #define MAYBE_SKIP_TEST(feature) \
(...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after
357 int num_matches = 0; 358 int num_matches = 0;
358 for (size_t i = kPacketNumOffset; i < size; ++i) { 359 for (size_t i = kPacketNumOffset; i < size; ++i) {
359 if (static_cast<uint8_t>(data[i]) == (packet_num & 0xff)) { 360 if (static_cast<uint8_t>(data[i]) == (packet_num & 0xff)) {
360 ++num_matches; 361 ++num_matches;
361 } 362 }
362 } 363 }
363 return (num_matches < ((static_cast<int>(size) - 5) / 10)); 364 return (num_matches < ((static_cast<int>(size) - 5) / 10));
364 } 365 }
365 366
366 // Transport channel callbacks 367 // Transport channel callbacks
367 void OnTransportChannelWritableState(cricket::TransportChannel* channel) { 368 void OnTransportChannelWritableState(
368 LOG(LS_INFO) << name_ << ": Channel '" << channel->component() 369 rtc::PacketTransportInterface* transport) {
370 LOG(LS_INFO) << name_ << ": Channel '" << transport->debug_name()
369 << "' is writable"; 371 << "' is writable";
370 } 372 }
371 373
372 void OnTransportChannelReadPacket(cricket::TransportChannel* channel, 374 void OnTransportChannelReadPacket(rtc::PacketTransportInterface* transport,
373 const char* data, size_t size, 375 const char* data,
376 size_t size,
374 const rtc::PacketTime& packet_time, 377 const rtc::PacketTime& packet_time,
375 int flags) { 378 int flags) {
376 uint32_t packet_num = 0; 379 uint32_t packet_num = 0;
377 ASSERT_TRUE(VerifyPacket(data, size, &packet_num)); 380 ASSERT_TRUE(VerifyPacket(data, size, &packet_num));
378 received_.insert(packet_num); 381 received_.insert(packet_num);
379 // Only DTLS-SRTP packets should have the bypass flag set. 382 // Only DTLS-SRTP packets should have the bypass flag set.
380 int expected_flags = 383 int expected_flags =
381 (certificate_ && IsRtpLeadByte(data[0])) ? cricket::PF_SRTP_BYPASS : 0; 384 (certificate_ && IsRtpLeadByte(data[0])) ? cricket::PF_SRTP_BYPASS : 0;
382 ASSERT_EQ(expected_flags, flags); 385 ASSERT_EQ(expected_flags, flags);
383 } 386 }
384 387
385 void OnTransportChannelSentPacket(cricket::TransportChannel* channel, 388 void OnTransportChannelSentPacket(rtc::PacketTransportInterface* transport,
386 const rtc::SentPacket& sent_packet) { 389 const rtc::SentPacket& sent_packet) {
387 sent_packet_ = sent_packet; 390 sent_packet_ = sent_packet;
388 } 391 }
389 392
390 rtc::SentPacket sent_packet() const { return sent_packet_; } 393 rtc::SentPacket sent_packet() const { return sent_packet_; }
391 394
392 // Hook into the raw packet stream to make sure DTLS packets are encrypted. 395 // Hook into the raw packet stream to make sure DTLS packets are encrypted.
393 void OnFakeTransportChannelReadPacket(cricket::TransportChannel* channel, 396 void OnFakeTransportChannelReadPacket(
394 const char* data, size_t size, 397 rtc::PacketTransportInterface* transport,
395 const rtc::PacketTime& time, 398 const char* data,
396 int flags) { 399 size_t size,
400 const rtc::PacketTime& time,
401 int flags) {
397 // Flags shouldn't be set on the underlying TransportChannel packets. 402 // Flags shouldn't be set on the underlying TransportChannel packets.
398 ASSERT_EQ(0, flags); 403 ASSERT_EQ(0, flags);
399 404
400 // Look at the handshake packets to see what role we played. 405 // Look at the handshake packets to see what role we played.
401 // Check that non-handshake packets are DTLS data or SRTP bypass. 406 // Check that non-handshake packets are DTLS data or SRTP bypass.
402 if (data[0] == 22 && size > 17) { 407 if (data[0] == 22 && size > 17) {
403 if (data[13] == 1) { 408 if (data[13] == 1) {
404 ++received_dtls_client_hellos_; 409 ++received_dtls_client_hellos_;
405 } else if (data[13] == 2) { 410 } else if (data[13] == 2) {
406 ++received_dtls_server_hellos_; 411 ++received_dtls_server_hellos_;
(...skipping 759 matching lines...) Expand 10 before | Expand all | Expand 10 after
1166 std::vector<DtlsTransportEvent>{ 1171 std::vector<DtlsTransportEvent>{
1167 CALLER_RECEIVES_CLIENTHELLO, CALLER_RECEIVES_FINGERPRINT, 1172 CALLER_RECEIVES_CLIENTHELLO, CALLER_RECEIVES_FINGERPRINT,
1168 CALLER_WRITABLE, HANDSHAKE_FINISHES}, 1173 CALLER_WRITABLE, HANDSHAKE_FINISHES},
1169 std::vector<DtlsTransportEvent>{ 1174 std::vector<DtlsTransportEvent>{
1170 CALLER_RECEIVES_CLIENTHELLO, CALLER_WRITABLE, 1175 CALLER_RECEIVES_CLIENTHELLO, CALLER_WRITABLE,
1171 CALLER_RECEIVES_FINGERPRINT, HANDSHAKE_FINISHES}, 1176 CALLER_RECEIVES_FINGERPRINT, HANDSHAKE_FINISHES},
1172 std::vector<DtlsTransportEvent>{CALLER_RECEIVES_CLIENTHELLO, 1177 std::vector<DtlsTransportEvent>{CALLER_RECEIVES_CLIENTHELLO,
1173 CALLER_WRITABLE, HANDSHAKE_FINISHES, 1178 CALLER_WRITABLE, HANDSHAKE_FINISHES,
1174 CALLER_RECEIVES_FINGERPRINT}), 1179 CALLER_RECEIVES_FINGERPRINT}),
1175 ::testing::Bool())); 1180 ::testing::Bool()));
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698