Unit test now checks that ADM:Init() works before any test runs. It means that all tests will be skipped on bots that lack Pulse support which is as how it worked before this CL as well. But then, we detected the lack of support by checking that the audio layer had changed from Pulse to Alsa. As a consequence, I also decided to inject fake/mock ADMs in more unit tests. One was actually already injected for other reasons (see https://codereview.webrtc.org/2997383002/) but it had accidentally been "reverted" later in combination with other changes. To summarize: before this change we had a set of unit tests where real audio was tested but it was not the intention of the test or required. In addition, some Linux bots (VM:s) did not support PulseAudio and on them the tests relied on a fallback mechanism to ALSA to work, i.e., we had a rather complex dependency on hardware. This dependency has now been removed and it should result in more stable tests. Bug: webrtc:7306, webrtc:7806 Change-Id: Ia0485658c04a4ef3b3f2dc0d557d73738067304b Reviewed-on: https://webrtc-review.googlesource.com/8640 Commit-Queue: Henrik Andreassson <henrika@webrtc.org> Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org> Cr-Commit-Position: refs/heads/master@{#20307}
50 lines
1.9 KiB
C++
50 lines
1.9 KiB
C++
/*
|
|
* Copyright (c) 2016 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 "media/engine/nullwebrtcvideoengine.h"
|
|
#include "media/engine/webrtcvoiceengine.h"
|
|
#include "modules/audio_device/include/mock_audio_device.h"
|
|
#include "modules/audio_processing/include/audio_processing.h"
|
|
#include "test/gtest.h"
|
|
#include "test/mock_audio_decoder_factory.h"
|
|
#include "test/mock_audio_encoder_factory.h"
|
|
|
|
namespace cricket {
|
|
|
|
class WebRtcMediaEngineNullVideo
|
|
: public CompositeMediaEngine<WebRtcVoiceEngine, NullWebRtcVideoEngine> {
|
|
public:
|
|
WebRtcMediaEngineNullVideo(
|
|
webrtc::AudioDeviceModule* adm,
|
|
const rtc::scoped_refptr<webrtc::AudioEncoderFactory>&
|
|
audio_encoder_factory,
|
|
const rtc::scoped_refptr<webrtc::AudioDecoderFactory>&
|
|
audio_decoder_factory)
|
|
: CompositeMediaEngine<WebRtcVoiceEngine, NullWebRtcVideoEngine>(
|
|
std::forward_as_tuple(adm,
|
|
audio_encoder_factory,
|
|
audio_decoder_factory,
|
|
nullptr,
|
|
webrtc::AudioProcessing::Create()),
|
|
std::forward_as_tuple()) {}
|
|
};
|
|
|
|
// Simple test to check if NullWebRtcVideoEngine implements the methods
|
|
// required by CompositeMediaEngine.
|
|
TEST(NullWebRtcVideoEngineTest, CheckInterface) {
|
|
testing::NiceMock<webrtc::test::MockAudioDeviceModule> adm;
|
|
WebRtcMediaEngineNullVideo engine(
|
|
&adm, webrtc::MockAudioEncoderFactory::CreateUnusedFactory(),
|
|
webrtc::MockAudioDecoderFactory::CreateUnusedFactory());
|
|
EXPECT_TRUE(engine.Init());
|
|
}
|
|
|
|
} // namespace cricket
|