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

Unified Diff: webrtc/modules/congestion_controller/transport_feedback_adapter_unittest.cc

Issue 2725823002: Move delay_based_bwe_ into CongestionController (Closed)
Patch Set: More refactoring + UTs moved. Created 3 years, 10 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
Index: webrtc/modules/congestion_controller/transport_feedback_adapter_unittest.cc
diff --git a/webrtc/modules/congestion_controller/transport_feedback_adapter_unittest.cc b/webrtc/modules/congestion_controller/transport_feedback_adapter_unittest.cc
index 76db0fdf7bbe8f5671dbc0ad97221f54a08069fc..5637229662bf397af22f91fd4853976a881c961e 100644
--- a/webrtc/modules/congestion_controller/transport_feedback_adapter_unittest.cc
+++ b/webrtc/modules/congestion_controller/transport_feedback_adapter_unittest.cc
@@ -24,6 +24,7 @@
using ::testing::_;
using ::testing::Invoke;
+using testing::NiceMock;
namespace webrtc {
@@ -39,37 +40,17 @@ namespace test {
class TransportFeedbackAdapterTest : public ::testing::Test {
public:
- TransportFeedbackAdapterTest()
- : clock_(0), bitrate_controller_(this), target_bitrate_bps_(0) {}
+ TransportFeedbackAdapterTest() : clock_(0) {}
virtual ~TransportFeedbackAdapterTest() {}
virtual void SetUp() {
- adapter_.reset(
- new TransportFeedbackAdapter(nullptr, &clock_, &bitrate_controller_));
- adapter_->InitBwe();
- adapter_->SetStartBitrate(300000);
+ adapter_.reset(new TransportFeedbackAdapter(&clock_));
}
virtual void TearDown() { adapter_.reset(); }
protected:
- // Proxy class used since TransportFeedbackAdapter will own the instance
- // passed at construction.
- class MockBitrateControllerAdapter : public MockBitrateController {
- public:
- explicit MockBitrateControllerAdapter(TransportFeedbackAdapterTest* owner)
- : MockBitrateController(), owner_(owner) {}
-
- ~MockBitrateControllerAdapter() override {}
-
- void OnDelayBasedBweResult(const DelayBasedBwe::Result& result) override {
- owner_->target_bitrate_bps_ = result.target_bitrate_bps;
- }
-
- TransportFeedbackAdapterTest* const owner_;
- };
-
void OnReceivedEstimatedBitrate(uint32_t bitrate) {}
void OnReceivedRtcpReceiverReport(const ReportBlockList& report_blocks,
@@ -102,10 +83,7 @@ class TransportFeedbackAdapterTest : public ::testing::Test {
}
}
- // Utility method, to reset arrival_time_ms before adding send time.
- void OnSentPacket(PacketFeedback packet_feedback) {
- packet_feedback.arrival_time_ms = 0;
- // TODO(philipel): Change -1, -1 to some values.
+ void OnSentPacket(const PacketFeedback& packet_feedback) {
adapter_->AddPacket(packet_feedback.sequence_number,
packet_feedback.payload_size,
packet_feedback.pacing_info);
@@ -114,10 +92,7 @@ class TransportFeedbackAdapterTest : public ::testing::Test {
}
SimulatedClock clock_;
- MockBitrateControllerAdapter bitrate_controller_;
std::unique_ptr<TransportFeedbackAdapter> adapter_;
-
- uint32_t target_bitrate_bps_;
};
TEST_F(TransportFeedbackAdapterTest, AdaptsFeedbackAndPopulatesSendTimes) {
@@ -181,90 +156,6 @@ TEST_F(TransportFeedbackAdapterTest, FeedbackVectorReportsUnreceived) {
ComparePacketVectors(sent_packets, adapter_->GetTransportFeedbackVector());
}
-TEST_F(TransportFeedbackAdapterTest, LongFeedbackDelays) {
- const int64_t kFeedbackTimeoutMs = 60001;
- const int kMaxConsecutiveFailedLookups = 5;
- for (int i = 0; i < kMaxConsecutiveFailedLookups; ++i) {
- std::vector<PacketFeedback> packets;
- packets.push_back(
- PacketFeedback(i * 100, 2 * i * 100, 0, 1500, kPacingInfo0));
- packets.push_back(
- PacketFeedback(i * 100 + 10, 2 * i * 100 + 10, 1, 1500, kPacingInfo0));
- packets.push_back(
- PacketFeedback(i * 100 + 20, 2 * i * 100 + 20, 2, 1500, kPacingInfo0));
- packets.push_back(
- PacketFeedback(i * 100 + 30, 2 * i * 100 + 30, 3, 1500, kPacingInfo1));
- packets.push_back(
- PacketFeedback(i * 100 + 40, 2 * i * 100 + 40, 4, 1500, kPacingInfo1));
-
- for (const PacketFeedback& packet : packets)
- OnSentPacket(packet);
-
- rtcp::TransportFeedback feedback;
- feedback.SetBase(packets[0].sequence_number,
- packets[0].arrival_time_ms * 1000);
-
- for (const PacketFeedback& packet : packets) {
- EXPECT_TRUE(feedback.AddReceivedPacket(packet.sequence_number,
- packet.arrival_time_ms * 1000));
- }
-
- feedback.Build();
-
- clock_.AdvanceTimeMilliseconds(kFeedbackTimeoutMs);
- PacketFeedback later_packet(kFeedbackTimeoutMs + i * 100 + 40,
- kFeedbackTimeoutMs + i * 200 + 40, 5, 1500,
- kPacingInfo1);
- OnSentPacket(later_packet);
-
- adapter_->OnTransportFeedback(feedback);
-
- // Check that packets have timed out.
- for (PacketFeedback& packet : packets) {
- packet.send_time_ms = -1;
- packet.payload_size = 0;
- packet.pacing_info = PacedPacketInfo();
- }
- ComparePacketVectors(packets, adapter_->GetTransportFeedbackVector());
- }
-
- // Target bitrate should have halved due to feedback delays.
- EXPECT_EQ(150000u, target_bitrate_bps_);
-
- // Test with feedback that isn't late enough to time out.
- {
- std::vector<PacketFeedback> packets;
- packets.push_back(PacketFeedback(100, 200, 0, 1500, kPacingInfo0));
- packets.push_back(PacketFeedback(110, 210, 1, 1500, kPacingInfo0));
- packets.push_back(PacketFeedback(120, 220, 2, 1500, kPacingInfo0));
- packets.push_back(PacketFeedback(130, 230, 3, 1500, kPacingInfo1));
- packets.push_back(PacketFeedback(140, 240, 4, 1500, kPacingInfo1));
-
- for (const PacketFeedback& packet : packets)
- OnSentPacket(packet);
-
- rtcp::TransportFeedback feedback;
- feedback.SetBase(packets[0].sequence_number,
- packets[0].arrival_time_ms * 1000);
-
- for (const PacketFeedback& packet : packets) {
- EXPECT_TRUE(feedback.AddReceivedPacket(packet.sequence_number,
- packet.arrival_time_ms * 1000));
- }
-
- feedback.Build();
-
- clock_.AdvanceTimeMilliseconds(kFeedbackTimeoutMs - 1);
- PacketFeedback later_packet(kFeedbackTimeoutMs + 140,
- kFeedbackTimeoutMs + 240, 5, 1500,
- kPacingInfo1);
- OnSentPacket(later_packet);
-
- adapter_->OnTransportFeedback(feedback);
- ComparePacketVectors(packets, adapter_->GetTransportFeedbackVector());
- }
-}
-
TEST_F(TransportFeedbackAdapterTest, HandlesDroppedPackets) {
std::vector<PacketFeedback> packets;
packets.push_back(PacketFeedback(100, 200, 0, 1500, kPacingInfo0));
@@ -454,35 +345,5 @@ TEST_F(TransportFeedbackAdapterTest, TimestampDeltas) {
adapter_->GetTransportFeedbackVector());
}
}
-
-TEST_F(TransportFeedbackAdapterTest, UpdatesDelayBasedEstimate) {
- uint16_t seq_num = 0;
- size_t kPayloadSize = 1000;
- // The test must run and insert packets/feedback long enough that the
- // BWE computes a valid estimate.
- const int64_t kRunTimeMs = 6000;
- int64_t start_time_ms = clock_.TimeInMilliseconds();
- while (clock_.TimeInMilliseconds() - start_time_ms < kRunTimeMs) {
- PacketFeedback packet(clock_.TimeInMilliseconds(),
- clock_.TimeInMilliseconds(), seq_num, kPayloadSize,
- PacedPacketInfo());
- OnSentPacket(packet);
- // Create expected feedback and send into adapter.
- std::unique_ptr<rtcp::TransportFeedback> feedback(
- new rtcp::TransportFeedback());
- feedback->SetBase(packet.sequence_number, packet.arrival_time_ms * 1000);
- EXPECT_TRUE(feedback->AddReceivedPacket(packet.sequence_number,
- packet.arrival_time_ms * 1000));
- rtc::Buffer raw_packet = feedback->Build();
- feedback = rtcp::TransportFeedback::ParseFrom(raw_packet.data(),
- raw_packet.size());
- EXPECT_TRUE(feedback.get() != nullptr);
- adapter_->OnTransportFeedback(*feedback.get());
- clock_.AdvanceTimeMilliseconds(50);
- ++seq_num;
- }
- EXPECT_GT(target_bitrate_bps_, 0u);
-}
-
} // namespace test
} // namespace webrtc

Powered by Google App Engine
This is Rietveld 408576698