Add a basic unittest for webrtc::voe::ChannelReceive
This CL adds an unittest that a ChannelReceive can be constructed and destroyed without crashing. It is a basis for further testing. Lack of unit test was discovered while pursuing bug mentioned below. Bug: webrtc:13931 Change-Id: Iddb110f2df25e3806c74a5d00bbfab6d6d8e267f Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/291338 Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org> Commit-Queue: Harald Alvestrand <hta@webrtc.org> Cr-Commit-Position: refs/heads/main@{#39200}
This commit is contained in:
parent
664cf14f9f
commit
e15b9ff408
@ -160,6 +160,7 @@ if (rtc_include_tests) {
|
||||
deps = [
|
||||
":audio",
|
||||
":audio_end_to_end_test",
|
||||
":channel_receive_unittest",
|
||||
"../api:libjingle_peerconnection_api",
|
||||
"../api:mock_audio_mixer",
|
||||
"../api:mock_frame_decryptor",
|
||||
@ -181,6 +182,7 @@ if (rtc_include_tests) {
|
||||
"../call:rtp_sender",
|
||||
"../common_audio",
|
||||
"../logging:mocks",
|
||||
"../modules/audio_device:audio_device_api",
|
||||
"../modules/audio_device:audio_device_impl", # For TestAudioDeviceModule
|
||||
"../modules/audio_device:mock_audio_device",
|
||||
"../modules/audio_mixer:audio_mixer_impl",
|
||||
@ -197,6 +199,7 @@ if (rtc_include_tests) {
|
||||
"../rtc_base:rtc_base_tests_utils",
|
||||
"../rtc_base:safe_compare",
|
||||
"../rtc_base:task_queue_for_test",
|
||||
"../rtc_base:threading",
|
||||
"../rtc_base:timeutils",
|
||||
"../system_wrappers",
|
||||
"../test:audio_codec_mocks",
|
||||
@ -214,6 +217,22 @@ if (rtc_include_tests) {
|
||||
]
|
||||
}
|
||||
|
||||
rtc_library("channel_receive_unittest") {
|
||||
testonly = true
|
||||
sources = [ "channel_receive_unittest.cc" ]
|
||||
deps = [
|
||||
":audio",
|
||||
"../api/crypto:frame_decryptor_interface",
|
||||
"../api/task_queue:default_task_queue_factory",
|
||||
"../modules/audio_device:audio_device_api",
|
||||
"../modules/audio_device:mock_audio_device",
|
||||
"../rtc_base:threading",
|
||||
"../test:mock_transport",
|
||||
"../test:test_support",
|
||||
"../test/time_controller",
|
||||
]
|
||||
}
|
||||
|
||||
if (rtc_enable_protobuf && !build_with_chromium) {
|
||||
rtc_test("low_bandwidth_audio_test") {
|
||||
testonly = true
|
||||
|
||||
50
audio/channel_receive_unittest.cc
Normal file
50
audio/channel_receive_unittest.cc
Normal file
@ -0,0 +1,50 @@
|
||||
/*
|
||||
* Copyright 2023 The WebRTC project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#include "audio/channel_receive.h"
|
||||
|
||||
#include "api/crypto/frame_decryptor_interface.h"
|
||||
#include "api/task_queue/default_task_queue_factory.h"
|
||||
#include "modules/audio_device/include/audio_device.h"
|
||||
#include "modules/audio_device/include/mock_audio_device.h"
|
||||
#include "rtc_base/thread.h"
|
||||
#include "test/gmock.h"
|
||||
#include "test/gtest.h"
|
||||
#include "test/mock_transport.h"
|
||||
#include "test/time_controller/simulated_time_controller.h"
|
||||
|
||||
namespace webrtc {
|
||||
namespace voe {
|
||||
|
||||
TEST(ChannelReceiveTest, CreateAndDestroy) {
|
||||
GlobalSimulatedTimeController time_controller(Timestamp::Seconds(5555));
|
||||
uint32_t local_ssrc = 1111;
|
||||
uint32_t remote_ssrc = 2222;
|
||||
webrtc::CryptoOptions crypto_options;
|
||||
rtc::scoped_refptr<test::MockAudioDeviceModule> audio_device_module =
|
||||
test::MockAudioDeviceModule::CreateNice();
|
||||
MockTransport transport;
|
||||
auto channel = CreateChannelReceive(
|
||||
time_controller.GetClock(),
|
||||
/* neteq_factory= */ nullptr, audio_device_module.get(), &transport,
|
||||
/* rtc_event_log= */ nullptr, local_ssrc, remote_ssrc,
|
||||
/* jitter_buffer_max_packets= */ 0,
|
||||
/* jitter_buffer_fast_playout= */ false,
|
||||
/* jitter_buffer_min_delay_ms= */ 0,
|
||||
/* enable_non_sender_rtt= */ false,
|
||||
/* decoder_factory= */ nullptr,
|
||||
/* codec_pair_id= */ absl::nullopt,
|
||||
/* frame_decryptor_interface= */ nullptr, crypto_options,
|
||||
/* frame_transformer= */ nullptr);
|
||||
EXPECT_TRUE(!!channel);
|
||||
}
|
||||
|
||||
} // namespace voe
|
||||
} // namespace webrtc
|
||||
Loading…
x
Reference in New Issue
Block a user