Use fake audio device in peerconnectioninterface_unittest.cc.
This test doesn't actually send/receive any audio; it's only testing the interface layer. But the fact that it was creating/destroying real audio devices repeatedly caused problems when tests were run in parallel. So switching to a fake audio device solves this. BUG=webrtc:7806 Review-Url: https://codereview.webrtc.org/2997383002 Cr-Commit-Position: refs/heads/master@{#19472}
This commit is contained in:
parent
60e10c794e
commit
d7850b299b
@ -31,6 +31,7 @@
|
||||
#include "webrtc/pc/mediastream.h"
|
||||
#include "webrtc/pc/peerconnection.h"
|
||||
#include "webrtc/pc/streamcollection.h"
|
||||
#include "webrtc/pc/test/fakeaudiocapturemodule.h"
|
||||
#include "webrtc/pc/test/fakertccertificategenerator.h"
|
||||
#include "webrtc/pc/test/fakevideotracksource.h"
|
||||
#include "webrtc/pc/test/mockpeerconnectionobservers.h"
|
||||
@ -662,8 +663,9 @@ class PeerConnectionFactoryForTest : public webrtc::PeerConnectionFactory {
|
||||
|
||||
return new rtc::RefCountedObject<PeerConnectionFactoryForTest>(
|
||||
rtc::Thread::Current(), rtc::Thread::Current(), rtc::Thread::Current(),
|
||||
nullptr, audio_encoder_factory, audio_decoder_factory, nullptr, nullptr,
|
||||
nullptr, std::move(media_engine), std::move(call_factory),
|
||||
FakeAudioCaptureModule::Create(), audio_encoder_factory,
|
||||
audio_decoder_factory, nullptr, nullptr, nullptr,
|
||||
std::move(media_engine), std::move(call_factory),
|
||||
std::move(event_log_factory));
|
||||
}
|
||||
|
||||
@ -671,7 +673,7 @@ class PeerConnectionFactoryForTest : public webrtc::PeerConnectionFactory {
|
||||
rtc::Thread* network_thread,
|
||||
rtc::Thread* worker_thread,
|
||||
rtc::Thread* signaling_thread,
|
||||
webrtc::AudioDeviceModule* default_adm,
|
||||
rtc::scoped_refptr<FakeAudioCaptureModule> fake_adm,
|
||||
rtc::scoped_refptr<webrtc::AudioEncoderFactory> audio_encoder_factory,
|
||||
rtc::scoped_refptr<webrtc::AudioDecoderFactory> audio_decoder_factory,
|
||||
cricket::WebRtcVideoEncoderFactory* video_encoder_factory,
|
||||
@ -683,7 +685,7 @@ class PeerConnectionFactoryForTest : public webrtc::PeerConnectionFactory {
|
||||
: webrtc::PeerConnectionFactory(network_thread,
|
||||
worker_thread,
|
||||
signaling_thread,
|
||||
default_adm,
|
||||
fake_adm,
|
||||
audio_encoder_factory,
|
||||
audio_decoder_factory,
|
||||
video_encoder_factory,
|
||||
@ -702,6 +704,7 @@ class PeerConnectionFactoryForTest : public webrtc::PeerConnectionFactory {
|
||||
return transport_controller;
|
||||
}
|
||||
|
||||
rtc::scoped_refptr<FakeAudioCaptureModule> fake_audio_capture_module_;
|
||||
cricket::TransportController* transport_controller;
|
||||
};
|
||||
|
||||
@ -715,9 +718,12 @@ class PeerConnectionInterfaceTest : public testing::Test {
|
||||
}
|
||||
|
||||
virtual void SetUp() {
|
||||
// Use fake audio capture module since we're only testing the interface
|
||||
// level, and using a real one could make tests flaky when run in parallel.
|
||||
fake_audio_capture_module_ = FakeAudioCaptureModule::Create();
|
||||
pc_factory_ = webrtc::CreatePeerConnectionFactory(
|
||||
rtc::Thread::Current(), rtc::Thread::Current(), rtc::Thread::Current(),
|
||||
nullptr, nullptr, nullptr);
|
||||
fake_audio_capture_module_, nullptr, nullptr);
|
||||
ASSERT_TRUE(pc_factory_);
|
||||
pc_factory_for_test_ =
|
||||
PeerConnectionFactoryForTest::CreatePeerConnectionFactoryForTest();
|
||||
@ -1237,6 +1243,7 @@ class PeerConnectionInterfaceTest : public testing::Test {
|
||||
|
||||
std::unique_ptr<rtc::VirtualSocketServer> vss_;
|
||||
rtc::AutoSocketServerThread main_;
|
||||
rtc::scoped_refptr<FakeAudioCaptureModule> fake_audio_capture_module_;
|
||||
cricket::FakePortAllocator* port_allocator_ = nullptr;
|
||||
FakeRTCCertificateGenerator* fake_certificate_generator_ = nullptr;
|
||||
rtc::scoped_refptr<webrtc::PeerConnectionFactoryInterface> pc_factory_;
|
||||
@ -1370,7 +1377,8 @@ TEST_F(PeerConnectionInterfaceTest,
|
||||
rtc::scoped_refptr<webrtc::PeerConnectionFactoryInterface> pc_factory(
|
||||
webrtc::CreatePeerConnectionFactory(
|
||||
rtc::Thread::Current(), rtc::Thread::Current(),
|
||||
rtc::Thread::Current(), nullptr, nullptr, nullptr));
|
||||
rtc::Thread::Current(), fake_audio_capture_module_, nullptr,
|
||||
nullptr));
|
||||
rtc::scoped_refptr<PeerConnectionInterface> pc(
|
||||
pc_factory->CreatePeerConnection(
|
||||
config, nullptr, std::move(port_allocator), nullptr, &observer_));
|
||||
@ -1396,7 +1404,7 @@ TEST_F(PeerConnectionInterfaceTest,
|
||||
rtc::scoped_refptr<webrtc::PeerConnectionFactoryInterface> pc_factory(
|
||||
webrtc::CreatePeerConnectionFactory(
|
||||
network_thread.get(), rtc::Thread::Current(), rtc::Thread::Current(),
|
||||
nullptr, nullptr, nullptr));
|
||||
fake_audio_capture_module_, nullptr, nullptr));
|
||||
std::unique_ptr<cricket::FakePortAllocator> port_allocator(
|
||||
new cricket::FakePortAllocator(network_thread.get(), nullptr));
|
||||
cricket::FakePortAllocator* raw_port_allocator = port_allocator.get();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user