Use the injected clock in rtcp_transciever.

Bug: webrtc:11327
Change-Id: Idb02842f2eb679f972c0449a01a81a26ceb85827
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219789
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Paul Hallak <phallak@google.com>
Cr-Commit-Position: refs/heads/master@{#34080}
This commit is contained in:
Paul Hallak
2021-05-21 18:08:04 +02:00
committed by WebRTC LUCI CQ
parent 61a287a3cb
commit fe3dd51f32
7 changed files with 186 additions and 63 deletions

View File

@ -18,6 +18,7 @@
#include "modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h"
#include "rtc_base/event.h"
#include "rtc_base/task_queue_for_test.h"
#include "system_wrappers/include/clock.h"
#include "test/gmock.h"
#include "test/gtest.h"
#include "test/mock_transport.h"
@ -34,6 +35,7 @@ using ::testing::NiceMock;
using ::webrtc::MockTransport;
using ::webrtc::RtcpTransceiver;
using ::webrtc::RtcpTransceiverConfig;
using ::webrtc::SimulatedClock;
using ::webrtc::TaskQueueForTest;
using ::webrtc::rtcp::RemoteEstimate;
using ::webrtc::rtcp::RtcpPacket;
@ -57,9 +59,11 @@ void WaitPostedTasks(TaskQueueForTest* queue) {
}
TEST(RtcpTransceiverTest, SendsRtcpOnTaskQueueWhenCreatedOffTaskQueue) {
SimulatedClock clock(0);
MockTransport outgoing_transport;
TaskQueueForTest queue("rtcp");
RtcpTransceiverConfig config;
config.clock = &clock;
config.outgoing_transport = &outgoing_transport;
config.task_queue = queue.Get();
EXPECT_CALL(outgoing_transport, SendRtcp(_, _))
@ -74,9 +78,11 @@ TEST(RtcpTransceiverTest, SendsRtcpOnTaskQueueWhenCreatedOffTaskQueue) {
}
TEST(RtcpTransceiverTest, SendsRtcpOnTaskQueueWhenCreatedOnTaskQueue) {
SimulatedClock clock(0);
MockTransport outgoing_transport;
TaskQueueForTest queue("rtcp");
RtcpTransceiverConfig config;
config.clock = &clock;
config.outgoing_transport = &outgoing_transport;
config.task_queue = queue.Get();
EXPECT_CALL(outgoing_transport, SendRtcp(_, _))
@ -94,9 +100,11 @@ TEST(RtcpTransceiverTest, SendsRtcpOnTaskQueueWhenCreatedOnTaskQueue) {
}
TEST(RtcpTransceiverTest, CanBeDestroyedOnTaskQueue) {
SimulatedClock clock(0);
NiceMock<MockTransport> outgoing_transport;
TaskQueueForTest queue("rtcp");
RtcpTransceiverConfig config;
config.clock = &clock;
config.outgoing_transport = &outgoing_transport;
config.task_queue = queue.Get();
auto rtcp_transceiver = std::make_unique<RtcpTransceiver>(config);
@ -110,9 +118,11 @@ TEST(RtcpTransceiverTest, CanBeDestroyedOnTaskQueue) {
}
TEST(RtcpTransceiverTest, CanBeDestroyedWithoutBlocking) {
SimulatedClock clock(0);
TaskQueueForTest queue("rtcp");
NiceMock<MockTransport> outgoing_transport;
RtcpTransceiverConfig config;
config.clock = &clock;
config.outgoing_transport = &outgoing_transport;
config.task_queue = queue.Get();
auto* rtcp_transceiver = new RtcpTransceiver(config);
@ -131,9 +141,11 @@ TEST(RtcpTransceiverTest, CanBeDestroyedWithoutBlocking) {
}
TEST(RtcpTransceiverTest, MaySendPacketsAfterDestructor) { // i.e. Be careful!
SimulatedClock clock(0);
NiceMock<MockTransport> outgoing_transport; // Must outlive queue below.
TaskQueueForTest queue("rtcp");
RtcpTransceiverConfig config;
config.clock = &clock;
config.outgoing_transport = &outgoing_transport;
config.task_queue = queue.Get();
auto* rtcp_transceiver = new RtcpTransceiver(config);
@ -162,9 +174,11 @@ rtc::CopyOnWriteBuffer CreateSenderReport(uint32_t ssrc, uint32_t rtp_time) {
TEST(RtcpTransceiverTest, DoesntPostToRtcpObserverAfterCallToRemove) {
const uint32_t kRemoteSsrc = 1234;
SimulatedClock clock(0);
MockTransport null_transport;
TaskQueueForTest queue("rtcp");
RtcpTransceiverConfig config;
config.clock = &clock;
config.outgoing_transport = &null_transport;
config.task_queue = queue.Get();
RtcpTransceiver rtcp_transceiver(config);
@ -189,9 +203,11 @@ TEST(RtcpTransceiverTest, DoesntPostToRtcpObserverAfterCallToRemove) {
TEST(RtcpTransceiverTest, RemoveMediaReceiverRtcpObserverIsNonBlocking) {
const uint32_t kRemoteSsrc = 1234;
SimulatedClock clock(0);
MockTransport null_transport;
TaskQueueForTest queue("rtcp");
RtcpTransceiverConfig config;
config.clock = &clock;
config.outgoing_transport = &null_transport;
config.task_queue = queue.Get();
RtcpTransceiver rtcp_transceiver(config);
@ -213,9 +229,11 @@ TEST(RtcpTransceiverTest, RemoveMediaReceiverRtcpObserverIsNonBlocking) {
}
TEST(RtcpTransceiverTest, CanCallSendCompoundPacketFromAnyThread) {
SimulatedClock clock(0);
MockTransport outgoing_transport;
TaskQueueForTest queue("rtcp");
RtcpTransceiverConfig config;
config.clock = &clock;
config.outgoing_transport = &outgoing_transport;
config.task_queue = queue.Get();
@ -242,9 +260,11 @@ TEST(RtcpTransceiverTest, CanCallSendCompoundPacketFromAnyThread) {
}
TEST(RtcpTransceiverTest, DoesntSendPacketsAfterStopCallback) {
SimulatedClock clock(0);
NiceMock<MockTransport> outgoing_transport;
TaskQueueForTest queue("rtcp");
RtcpTransceiverConfig config;
config.clock = &clock;
config.outgoing_transport = &outgoing_transport;
config.task_queue = queue.Get();
config.schedule_periodic_compound_packets = true;
@ -263,9 +283,11 @@ TEST(RtcpTransceiverTest, DoesntSendPacketsAfterStopCallback) {
TEST(RtcpTransceiverTest, SendsCombinedRtcpPacketOnTaskQueue) {
static constexpr uint32_t kSenderSsrc = 12345;
SimulatedClock clock(0);
MockTransport outgoing_transport;
TaskQueueForTest queue("rtcp");
RtcpTransceiverConfig config;
config.clock = &clock;
config.feedback_ssrc = kSenderSsrc;
config.outgoing_transport = &outgoing_transport;
config.task_queue = queue.Get();
@ -300,9 +322,11 @@ TEST(RtcpTransceiverTest, SendsCombinedRtcpPacketOnTaskQueue) {
TEST(RtcpTransceiverTest, SendFrameIntraRequestDefaultsToNewRequest) {
static constexpr uint32_t kSenderSsrc = 12345;
SimulatedClock clock(0);
MockTransport outgoing_transport;
TaskQueueForTest queue("rtcp");
RtcpTransceiverConfig config;
config.clock = &clock;
config.feedback_ssrc = kSenderSsrc;
config.outgoing_transport = &outgoing_transport;
config.task_queue = queue.Get();