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/mediastream.h"
|
||||||
#include "webrtc/pc/peerconnection.h"
|
#include "webrtc/pc/peerconnection.h"
|
||||||
#include "webrtc/pc/streamcollection.h"
|
#include "webrtc/pc/streamcollection.h"
|
||||||
|
#include "webrtc/pc/test/fakeaudiocapturemodule.h"
|
||||||
#include "webrtc/pc/test/fakertccertificategenerator.h"
|
#include "webrtc/pc/test/fakertccertificategenerator.h"
|
||||||
#include "webrtc/pc/test/fakevideotracksource.h"
|
#include "webrtc/pc/test/fakevideotracksource.h"
|
||||||
#include "webrtc/pc/test/mockpeerconnectionobservers.h"
|
#include "webrtc/pc/test/mockpeerconnectionobservers.h"
|
||||||
@ -662,8 +663,9 @@ class PeerConnectionFactoryForTest : public webrtc::PeerConnectionFactory {
|
|||||||
|
|
||||||
return new rtc::RefCountedObject<PeerConnectionFactoryForTest>(
|
return new rtc::RefCountedObject<PeerConnectionFactoryForTest>(
|
||||||
rtc::Thread::Current(), rtc::Thread::Current(), rtc::Thread::Current(),
|
rtc::Thread::Current(), rtc::Thread::Current(), rtc::Thread::Current(),
|
||||||
nullptr, audio_encoder_factory, audio_decoder_factory, nullptr, nullptr,
|
FakeAudioCaptureModule::Create(), audio_encoder_factory,
|
||||||
nullptr, std::move(media_engine), std::move(call_factory),
|
audio_decoder_factory, nullptr, nullptr, nullptr,
|
||||||
|
std::move(media_engine), std::move(call_factory),
|
||||||
std::move(event_log_factory));
|
std::move(event_log_factory));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -671,7 +673,7 @@ class PeerConnectionFactoryForTest : public webrtc::PeerConnectionFactory {
|
|||||||
rtc::Thread* network_thread,
|
rtc::Thread* network_thread,
|
||||||
rtc::Thread* worker_thread,
|
rtc::Thread* worker_thread,
|
||||||
rtc::Thread* signaling_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::AudioEncoderFactory> audio_encoder_factory,
|
||||||
rtc::scoped_refptr<webrtc::AudioDecoderFactory> audio_decoder_factory,
|
rtc::scoped_refptr<webrtc::AudioDecoderFactory> audio_decoder_factory,
|
||||||
cricket::WebRtcVideoEncoderFactory* video_encoder_factory,
|
cricket::WebRtcVideoEncoderFactory* video_encoder_factory,
|
||||||
@ -683,7 +685,7 @@ class PeerConnectionFactoryForTest : public webrtc::PeerConnectionFactory {
|
|||||||
: webrtc::PeerConnectionFactory(network_thread,
|
: webrtc::PeerConnectionFactory(network_thread,
|
||||||
worker_thread,
|
worker_thread,
|
||||||
signaling_thread,
|
signaling_thread,
|
||||||
default_adm,
|
fake_adm,
|
||||||
audio_encoder_factory,
|
audio_encoder_factory,
|
||||||
audio_decoder_factory,
|
audio_decoder_factory,
|
||||||
video_encoder_factory,
|
video_encoder_factory,
|
||||||
@ -702,6 +704,7 @@ class PeerConnectionFactoryForTest : public webrtc::PeerConnectionFactory {
|
|||||||
return transport_controller;
|
return transport_controller;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rtc::scoped_refptr<FakeAudioCaptureModule> fake_audio_capture_module_;
|
||||||
cricket::TransportController* transport_controller;
|
cricket::TransportController* transport_controller;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -715,9 +718,12 @@ class PeerConnectionInterfaceTest : public testing::Test {
|
|||||||
}
|
}
|
||||||
|
|
||||||
virtual void SetUp() {
|
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(
|
pc_factory_ = webrtc::CreatePeerConnectionFactory(
|
||||||
rtc::Thread::Current(), rtc::Thread::Current(), rtc::Thread::Current(),
|
rtc::Thread::Current(), rtc::Thread::Current(), rtc::Thread::Current(),
|
||||||
nullptr, nullptr, nullptr);
|
fake_audio_capture_module_, nullptr, nullptr);
|
||||||
ASSERT_TRUE(pc_factory_);
|
ASSERT_TRUE(pc_factory_);
|
||||||
pc_factory_for_test_ =
|
pc_factory_for_test_ =
|
||||||
PeerConnectionFactoryForTest::CreatePeerConnectionFactoryForTest();
|
PeerConnectionFactoryForTest::CreatePeerConnectionFactoryForTest();
|
||||||
@ -1237,6 +1243,7 @@ class PeerConnectionInterfaceTest : public testing::Test {
|
|||||||
|
|
||||||
std::unique_ptr<rtc::VirtualSocketServer> vss_;
|
std::unique_ptr<rtc::VirtualSocketServer> vss_;
|
||||||
rtc::AutoSocketServerThread main_;
|
rtc::AutoSocketServerThread main_;
|
||||||
|
rtc::scoped_refptr<FakeAudioCaptureModule> fake_audio_capture_module_;
|
||||||
cricket::FakePortAllocator* port_allocator_ = nullptr;
|
cricket::FakePortAllocator* port_allocator_ = nullptr;
|
||||||
FakeRTCCertificateGenerator* fake_certificate_generator_ = nullptr;
|
FakeRTCCertificateGenerator* fake_certificate_generator_ = nullptr;
|
||||||
rtc::scoped_refptr<webrtc::PeerConnectionFactoryInterface> pc_factory_;
|
rtc::scoped_refptr<webrtc::PeerConnectionFactoryInterface> pc_factory_;
|
||||||
@ -1370,7 +1377,8 @@ TEST_F(PeerConnectionInterfaceTest,
|
|||||||
rtc::scoped_refptr<webrtc::PeerConnectionFactoryInterface> pc_factory(
|
rtc::scoped_refptr<webrtc::PeerConnectionFactoryInterface> pc_factory(
|
||||||
webrtc::CreatePeerConnectionFactory(
|
webrtc::CreatePeerConnectionFactory(
|
||||||
rtc::Thread::Current(), rtc::Thread::Current(),
|
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(
|
rtc::scoped_refptr<PeerConnectionInterface> pc(
|
||||||
pc_factory->CreatePeerConnection(
|
pc_factory->CreatePeerConnection(
|
||||||
config, nullptr, std::move(port_allocator), nullptr, &observer_));
|
config, nullptr, std::move(port_allocator), nullptr, &observer_));
|
||||||
@ -1396,7 +1404,7 @@ TEST_F(PeerConnectionInterfaceTest,
|
|||||||
rtc::scoped_refptr<webrtc::PeerConnectionFactoryInterface> pc_factory(
|
rtc::scoped_refptr<webrtc::PeerConnectionFactoryInterface> pc_factory(
|
||||||
webrtc::CreatePeerConnectionFactory(
|
webrtc::CreatePeerConnectionFactory(
|
||||||
network_thread.get(), rtc::Thread::Current(), rtc::Thread::Current(),
|
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(
|
std::unique_ptr<cricket::FakePortAllocator> port_allocator(
|
||||||
new cricket::FakePortAllocator(network_thread.get(), nullptr));
|
new cricket::FakePortAllocator(network_thread.get(), nullptr));
|
||||||
cricket::FakePortAllocator* raw_port_allocator = port_allocator.get();
|
cricket::FakePortAllocator* raw_port_allocator = port_allocator.get();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user