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

Side by Side Diff: webrtc/modules/congestion_controller/delay_based_bwe_unittest.cc

Issue 2917873002: Refactored incoming bitrate estimator. (Closed)
Patch Set: Responsed to comments Created 3 years, 6 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 (c) 2016 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2016 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/test/gtest.h" 11 #include "webrtc/test/gtest.h"
12 #include "webrtc/base/constructormagic.h" 12 #include "webrtc/base/constructormagic.h"
13 #include "webrtc/modules/pacing/paced_sender.h" 13 #include "webrtc/modules/pacing/paced_sender.h"
14 #include "webrtc/modules/congestion_controller/delay_based_bwe.h" 14 #include "webrtc/modules/congestion_controller/delay_based_bwe.h"
15 #include "webrtc/modules/congestion_controller/delay_based_bwe_unittest_helper.h " 15 #include "webrtc/modules/congestion_controller/delay_based_bwe_unittest_helper.h "
16 #include "webrtc/system_wrappers/include/clock.h" 16 #include "webrtc/system_wrappers/include/clock.h"
17 #include "webrtc/test/field_trial.h" 17 #include "webrtc/test/field_trial.h"
18 18
19 namespace webrtc { 19 namespace webrtc {
20 20
21 namespace { 21 namespace {
22 constexpr int kNumProbesCluster0 = 5; 22 constexpr int kNumProbesCluster0 = 5;
23 constexpr int kNumProbesCluster1 = 8; 23 constexpr int kNumProbesCluster1 = 8;
24 const PacedPacketInfo kPacingInfo0(0, kNumProbesCluster0, 2000); 24 const PacedPacketInfo kPacingInfo0(0, kNumProbesCluster0, 2000);
25 const PacedPacketInfo kPacingInfo1(1, kNumProbesCluster1, 4000); 25 const PacedPacketInfo kPacingInfo1(1, kNumProbesCluster1, 4000);
26 } // namespace 26 } // namespace
27 27
28 TEST_F(DelayBasedBweTest, NoCrashEmptyFeedback) { 28 TEST_F(DelayBasedBweTest, NoCrashEmptyFeedback) {
29 std::vector<PacketFeedback> packet_feedback_vector; 29 std::vector<PacketFeedback> packet_feedback_vector;
30 bitrate_estimator_->IncomingPacketFeedbackVector(packet_feedback_vector); 30 bitrate_estimator_->IncomingPacketFeedbackVector(packet_feedback_vector,
31 rtc::Optional<uint32_t>());
terelius 2017/06/02 12:14:05 Do we have test coverage for the "typical" case wh
tschumi 2017/06/02 13:13:04 Yes its done with the help of delay_based_bwe_unit
31 } 32 }
32 33
33 TEST_F(DelayBasedBweTest, NoCrashOnlyLostFeedback) { 34 TEST_F(DelayBasedBweTest, NoCrashOnlyLostFeedback) {
34 std::vector<PacketFeedback> packet_feedback_vector; 35 std::vector<PacketFeedback> packet_feedback_vector;
35 packet_feedback_vector.push_back( 36 packet_feedback_vector.push_back(
36 PacketFeedback(-1, -1, 0, 1500, PacedPacketInfo())); 37 PacketFeedback(-1, -1, 0, 1500, PacedPacketInfo()));
37 packet_feedback_vector.push_back( 38 packet_feedback_vector.push_back(
38 PacketFeedback(-1, -1, 1, 1500, PacedPacketInfo())); 39 PacketFeedback(-1, -1, 1, 1500, PacedPacketInfo()));
39 bitrate_estimator_->IncomingPacketFeedbackVector(packet_feedback_vector); 40 bitrate_estimator_->IncomingPacketFeedbackVector(packet_feedback_vector,
41 rtc::Optional<uint32_t>());
40 } 42 }
41 43
42 TEST_F(DelayBasedBweTest, ProbeDetection) { 44 TEST_F(DelayBasedBweTest, ProbeDetection) {
43 int64_t now_ms = clock_.TimeInMilliseconds(); 45 int64_t now_ms = clock_.TimeInMilliseconds();
44 uint16_t seq_num = 0; 46 uint16_t seq_num = 0;
45 47
46 // First burst sent at 8 * 1000 / 10 = 800 kbps. 48 // First burst sent at 8 * 1000 / 10 = 800 kbps.
47 for (int i = 0; i < kNumProbesCluster0; ++i) { 49 for (int i = 0; i < kNumProbesCluster0; ++i) {
48 clock_.AdvanceTimeMilliseconds(10); 50 clock_.AdvanceTimeMilliseconds(10);
49 now_ms = clock_.TimeInMilliseconds(); 51 now_ms = clock_.TimeInMilliseconds();
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 181
180 TEST_F(DelayBasedBweTest, TestLongTimeoutAndWrap) { 182 TEST_F(DelayBasedBweTest, TestLongTimeoutAndWrap) {
181 // Simulate a client leaving and rejoining the call after some multiple of 183 // Simulate a client leaving and rejoining the call after some multiple of
182 // 64 seconds later. This will cause a zero difference in abs send times due 184 // 64 seconds later. This will cause a zero difference in abs send times due
183 // to the wrap, but a big difference in arrival time, if streams aren't 185 // to the wrap, but a big difference in arrival time, if streams aren't
184 // properly timed out. 186 // properly timed out.
185 TestWrappingHelper(10 * 64); 187 TestWrappingHelper(10 * 64);
186 } 188 }
187 189
188 } // namespace webrtc 190 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698