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

Side by Side Diff: webrtc/modules/audio_coding/audio_network_adaptor/audio_network_adaptor_impl_unittest.cc

Issue 2362003002: Revert of Adding debug dump to audio network adaptor. (Closed)
Patch Set: 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 (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 <utility> 11 #include <utility>
12 #include <vector> 12 #include <vector>
13 13
14 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
15 #include "webrtc/modules/audio_coding/audio_network_adaptor/audio_network_adapto r_impl.h" 15 #include "webrtc/modules/audio_coding/audio_network_adaptor/audio_network_adapto r_impl.h"
16 #include "webrtc/modules/audio_coding/audio_network_adaptor/mock/mock_controller .h" 16 #include "webrtc/modules/audio_coding/audio_network_adaptor/mock/mock_controller .h"
17 #include "webrtc/modules/audio_coding/audio_network_adaptor/mock/mock_controller _manager.h" 17 #include "webrtc/modules/audio_coding/audio_network_adaptor/mock/mock_controller _manager.h"
18 #include "webrtc/modules/audio_coding/audio_network_adaptor/mock/mock_debug_dump _writer.h"
19 18
20 namespace webrtc { 19 namespace webrtc {
21 20
22 using ::testing::_; 21 using ::testing::_;
23 using ::testing::NiceMock; 22 using ::testing::NiceMock;
24 using ::testing::Return; 23 using ::testing::Return;
25 using ::testing::SetArgPointee;
26 24
27 namespace { 25 namespace {
28 26
29 constexpr size_t kNumControllers = 2; 27 constexpr size_t kNumControllers = 2;
30 28
31 constexpr int64_t kClockInitialTimeMs = 12345678;
32
33 MATCHER_P(NetworkMetricsIs, metric, "") { 29 MATCHER_P(NetworkMetricsIs, metric, "") {
34 return arg.uplink_bandwidth_bps == metric.uplink_bandwidth_bps && 30 return arg.uplink_bandwidth_bps == metric.uplink_bandwidth_bps &&
35 arg.target_audio_bitrate_bps == metric.target_audio_bitrate_bps && 31 arg.target_audio_bitrate_bps == metric.target_audio_bitrate_bps &&
36 arg.rtt_ms == metric.rtt_ms &&
37 arg.uplink_packet_loss_fraction == metric.uplink_packet_loss_fraction; 32 arg.uplink_packet_loss_fraction == metric.uplink_packet_loss_fraction;
38 } 33 }
39 34
40 MATCHER_P(ConstraintsReceiverFrameLengthRangeIs, frame_length_range, "") { 35 MATCHER_P(ConstraintsReceiverFrameLengthRangeIs, frame_length_range, "") {
41 return arg.receiver_frame_length_range->min_frame_length_ms == 36 return arg.receiver_frame_length_range->min_frame_length_ms ==
42 frame_length_range.min_frame_length_ms && 37 frame_length_range.min_frame_length_ms &&
43 arg.receiver_frame_length_range->max_frame_length_ms == 38 arg.receiver_frame_length_range->max_frame_length_ms ==
44 frame_length_range.max_frame_length_ms; 39 frame_length_range.max_frame_length_ms;
45 } 40 }
46 41
47 MATCHER_P(EncoderRuntimeConfigIs, config, "") {
48 return arg.bitrate_bps == config.bitrate_bps &&
49 arg.frame_length_ms == config.frame_length_ms &&
50 arg.uplink_packet_loss_fraction ==
51 config.uplink_packet_loss_fraction &&
52 arg.enable_fec == config.enable_fec &&
53 arg.enable_dtx == config.enable_dtx &&
54 arg.num_channels == config.num_channels;
55 }
56
57 struct AudioNetworkAdaptorStates { 42 struct AudioNetworkAdaptorStates {
58 std::unique_ptr<AudioNetworkAdaptorImpl> audio_network_adaptor; 43 std::unique_ptr<AudioNetworkAdaptorImpl> audio_network_adaptor;
59 std::vector<std::unique_ptr<MockController>> mock_controllers; 44 std::vector<std::unique_ptr<MockController>> mock_controllers;
60 std::unique_ptr<SimulatedClock> simulated_clock;
61 MockDebugDumpWriter* mock_debug_dump_writer;
62 }; 45 };
63 46
64 AudioNetworkAdaptorStates CreateAudioNetworkAdaptor() { 47 AudioNetworkAdaptorStates CreateAudioNetworkAdaptor() {
65 AudioNetworkAdaptorStates states; 48 AudioNetworkAdaptorStates states;
66 std::vector<Controller*> controllers; 49 std::vector<Controller*> controllers;
67 for (size_t i = 0; i < kNumControllers; ++i) { 50 for (size_t i = 0; i < kNumControllers; ++i) {
68 auto controller = 51 auto controller =
69 std::unique_ptr<MockController>(new NiceMock<MockController>()); 52 std::unique_ptr<MockController>(new NiceMock<MockController>());
70 EXPECT_CALL(*controller, Die()); 53 EXPECT_CALL(*controller, Die());
71 controllers.push_back(controller.get()); 54 controllers.push_back(controller.get());
72 states.mock_controllers.push_back(std::move(controller)); 55 states.mock_controllers.push_back(std::move(controller));
73 } 56 }
74 57
75 auto controller_manager = std::unique_ptr<MockControllerManager>( 58 auto controller_manager = std::unique_ptr<MockControllerManager>(
76 new NiceMock<MockControllerManager>()); 59 new NiceMock<MockControllerManager>());
77 60
78 EXPECT_CALL(*controller_manager, Die()); 61 EXPECT_CALL(*controller_manager, Die());
79 EXPECT_CALL(*controller_manager, GetControllers()) 62 EXPECT_CALL(*controller_manager, GetControllers())
80 .WillRepeatedly(Return(controllers)); 63 .WillRepeatedly(Return(controllers));
81 EXPECT_CALL(*controller_manager, GetSortedControllers(_)) 64 EXPECT_CALL(*controller_manager, GetSortedControllers(_))
82 .WillRepeatedly(Return(controllers)); 65 .WillRepeatedly(Return(controllers));
83 66
84 states.simulated_clock.reset(new SimulatedClock(kClockInitialTimeMs * 1000));
85
86 auto debug_dump_writer =
87 std::unique_ptr<MockDebugDumpWriter>(new NiceMock<MockDebugDumpWriter>());
88 EXPECT_CALL(*debug_dump_writer, Die());
89 states.mock_debug_dump_writer = debug_dump_writer.get();
90
91 AudioNetworkAdaptorImpl::Config config;
92 config.clock = states.simulated_clock.get();
93 // AudioNetworkAdaptorImpl governs the lifetime of controller manager. 67 // AudioNetworkAdaptorImpl governs the lifetime of controller manager.
94 states.audio_network_adaptor.reset(new AudioNetworkAdaptorImpl( 68 states.audio_network_adaptor.reset(new AudioNetworkAdaptorImpl(
95 config, 69 AudioNetworkAdaptorImpl::Config(), std::move(controller_manager)));
96 std::move(controller_manager), std::move(debug_dump_writer)));
97 70
98 return states; 71 return states;
99 } 72 }
100 73
101 } // namespace 74 } // namespace
102 75
103 TEST(AudioNetworkAdaptorImplTest, 76 TEST(AudioNetworkAdaptorImplTest,
104 MakeDecisionIsCalledOnGetEncoderRuntimeConfig) { 77 MakeDecisionIsCalledOnGetEncoderRuntimeConfig) {
105 auto states = CreateAudioNetworkAdaptor(); 78 auto states = CreateAudioNetworkAdaptor();
106 79
(...skipping 21 matching lines...) Expand all
128 auto states = CreateAudioNetworkAdaptor(); 101 auto states = CreateAudioNetworkAdaptor();
129 102
130 for (auto& mock_controller : states.mock_controllers) { 103 for (auto& mock_controller : states.mock_controllers) {
131 EXPECT_CALL(*mock_controller, 104 EXPECT_CALL(*mock_controller,
132 SetConstraints(ConstraintsReceiverFrameLengthRangeIs( 105 SetConstraints(ConstraintsReceiverFrameLengthRangeIs(
133 Controller::Constraints::FrameLengthRange(20, 120)))); 106 Controller::Constraints::FrameLengthRange(20, 120))));
134 } 107 }
135 states.audio_network_adaptor->SetReceiverFrameLengthRange(20, 120); 108 states.audio_network_adaptor->SetReceiverFrameLengthRange(20, 120);
136 } 109 }
137 110
138 TEST(AudioNetworkAdaptorImplTest,
139 DumpEncoderRuntimeConfigIsCalledOnGetEncoderRuntimeConfig) {
140 auto states = CreateAudioNetworkAdaptor();
141
142 AudioNetworkAdaptor::EncoderRuntimeConfig config;
143 config.bitrate_bps = rtc::Optional<int>(32000);
144 config.enable_fec = rtc::Optional<bool>(true);
145
146 EXPECT_CALL(*states.mock_controllers[0], MakeDecision(_, _))
147 .WillOnce(SetArgPointee<1>(config));
148
149 EXPECT_CALL(*states.mock_debug_dump_writer,
150 DumpEncoderRuntimeConfig(EncoderRuntimeConfigIs(config),
151 kClockInitialTimeMs));
152 states.audio_network_adaptor->GetEncoderRuntimeConfig();
153 }
154
155 TEST(AudioNetworkAdaptorImplTest,
156 DumpNetworkMetricsIsCalledOnSetNetworkMetrics) {
157 auto states = CreateAudioNetworkAdaptor();
158
159 constexpr int kBandwidth = 16000;
160 constexpr float kPacketLoss = 0.7f;
161 constexpr int kRtt = 100;
162
163 Controller::NetworkMetrics check;
164 check.uplink_bandwidth_bps = rtc::Optional<int>(kBandwidth);
165 int64_t timestamp_check = kClockInitialTimeMs;
166
167 EXPECT_CALL(*states.mock_debug_dump_writer,
168 DumpNetworkMetrics(NetworkMetricsIs(check), timestamp_check));
169 states.audio_network_adaptor->SetUplinkBandwidth(kBandwidth);
170
171 states.simulated_clock->AdvanceTimeMilliseconds(100);
172 timestamp_check += 100;
173 check.uplink_packet_loss_fraction = rtc::Optional<float>(kPacketLoss);
174 EXPECT_CALL(*states.mock_debug_dump_writer,
175 DumpNetworkMetrics(NetworkMetricsIs(check), timestamp_check));
176 states.audio_network_adaptor->SetUplinkPacketLossFraction(kPacketLoss);
177
178 states.simulated_clock->AdvanceTimeMilliseconds(200);
179 timestamp_check += 200;
180 check.rtt_ms = rtc::Optional<int>(kRtt);
181 EXPECT_CALL(*states.mock_debug_dump_writer,
182 DumpNetworkMetrics(NetworkMetricsIs(check), timestamp_check));
183 states.audio_network_adaptor->SetRtt(kRtt);
184 }
185
186 } // namespace webrtc 111 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698