[Sanitizers] Disable tests at compile-time rather than run-time.
Rationale: * More explicit (you won't miss that when glancing at the code). * More consistent (see MAYBE_* in other tests). * Allow to re-activate tests via CLI (--gtest_also_run_disabled_tests). * Tests won't wrongly show up as PASSING (bug/webrtc:10819), since they won't show up at all. Bug: webrtc:9778 Change-Id: Ic32e18cb8ee2352def95206c2aa66e1dea0cc1e3 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/146200 Reviewed-by: Henrik Andreassson <henrika@webrtc.org> Commit-Queue: Yves Gerey <yvesg@google.com> Cr-Commit-Position: refs/heads/master@{#28617}
This commit is contained in:
@ -67,23 +67,13 @@ namespace {
|
|||||||
#endif
|
#endif
|
||||||
#define PRINT(...) fprintf(stderr, __VA_ARGS__);
|
#define PRINT(...) fprintf(stderr, __VA_ARGS__);
|
||||||
|
|
||||||
// Don't run these tests in combination with sanitizers.
|
// Don't run these tests if audio-related requirements are not met.
|
||||||
// TODO(webrtc:9778): Re-enable on THREAD_SANITIZER?
|
|
||||||
#if defined(ADDRESS_SANITIZER) || defined(MEMORY_SANITIZER) || \
|
|
||||||
defined(THREAD_SANITIZER)
|
|
||||||
#define SKIP_TEST_IF_NOT(requirements_satisfied) \
|
|
||||||
do { \
|
|
||||||
GTEST_SKIP() << "Skipped for sanitizers."; \
|
|
||||||
} while (false)
|
|
||||||
#else
|
|
||||||
// Or if other audio-related requirements are not met.
|
|
||||||
#define SKIP_TEST_IF_NOT(requirements_satisfied) \
|
#define SKIP_TEST_IF_NOT(requirements_satisfied) \
|
||||||
do { \
|
do { \
|
||||||
if (!requirements_satisfied) { \
|
if (!requirements_satisfied) { \
|
||||||
GTEST_SKIP() << "Skipped. No audio device found."; \
|
GTEST_SKIP() << "Skipped. No audio device found."; \
|
||||||
} \
|
} \
|
||||||
} while (false)
|
} while (false)
|
||||||
#endif
|
|
||||||
|
|
||||||
// Number of callbacks (input or output) the tests waits for before we set
|
// Number of callbacks (input or output) the tests waits for before we set
|
||||||
// an event indicating that the test was OK.
|
// an event indicating that the test was OK.
|
||||||
@ -510,15 +500,22 @@ class MockAudioTransport : public test::MockAudioTransport {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// AudioDeviceTest test fixture.
|
// AudioDeviceTest test fixture.
|
||||||
class AudioDeviceTest
|
|
||||||
|
// Don't run these tests in combination with sanitizers.
|
||||||
|
// TODO(webrtc:9778): Re-enable on THREAD_SANITIZER?
|
||||||
|
#if defined(ADDRESS_SANITIZER) || defined(MEMORY_SANITIZER) || \
|
||||||
|
defined(THREAD_SANITIZER)
|
||||||
|
#define MAYBE_AudioDeviceTest DISABLED_AudioDeviceTest
|
||||||
|
#else
|
||||||
|
#define MAYBE_AudioDeviceTest AudioDeviceTest
|
||||||
|
#endif
|
||||||
|
|
||||||
|
class MAYBE_AudioDeviceTest
|
||||||
: public ::testing::TestWithParam<webrtc::AudioDeviceModule::AudioLayer> {
|
: public ::testing::TestWithParam<webrtc::AudioDeviceModule::AudioLayer> {
|
||||||
protected:
|
protected:
|
||||||
AudioDeviceTest()
|
MAYBE_AudioDeviceTest()
|
||||||
: audio_layer_(GetParam()),
|
: audio_layer_(GetParam()),
|
||||||
task_queue_factory_(CreateDefaultTaskQueueFactory()) {
|
task_queue_factory_(CreateDefaultTaskQueueFactory()) {
|
||||||
// TODO(webrtc:9778): Re-enable on THREAD_SANITIZER?
|
|
||||||
#if !defined(ADDRESS_SANITIZER) && !defined(MEMORY_SANITIZER) && \
|
|
||||||
!defined(WEBRTC_DUMMY_AUDIO_BUILD) && !defined(THREAD_SANITIZER)
|
|
||||||
rtc::LogMessage::LogToDebug(rtc::LS_INFO);
|
rtc::LogMessage::LogToDebug(rtc::LS_INFO);
|
||||||
// Add extra logging fields here if needed for debugging.
|
// Add extra logging fields here if needed for debugging.
|
||||||
rtc::LogMessage::LogTimestamps();
|
rtc::LogMessage::LogTimestamps();
|
||||||
@ -543,9 +540,6 @@ class AudioDeviceTest
|
|||||||
requirements_satisfied_ =
|
requirements_satisfied_ =
|
||||||
num_playout_devices > 0 && num_record_devices > 0;
|
num_playout_devices > 0 && num_record_devices > 0;
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
requirements_satisfied_ = false;
|
|
||||||
#endif
|
|
||||||
if (requirements_satisfied_) {
|
if (requirements_satisfied_) {
|
||||||
EXPECT_EQ(0, audio_device_->SetPlayoutDevice(AUDIO_DEVICE_ID));
|
EXPECT_EQ(0, audio_device_->SetPlayoutDevice(AUDIO_DEVICE_ID));
|
||||||
EXPECT_EQ(0, audio_device_->InitSpeaker());
|
EXPECT_EQ(0, audio_device_->InitSpeaker());
|
||||||
@ -561,7 +555,7 @@ class AudioDeviceTest
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual ~AudioDeviceTest() {
|
virtual ~MAYBE_AudioDeviceTest() {
|
||||||
if (audio_device_) {
|
if (audio_device_) {
|
||||||
EXPECT_EQ(0, audio_device_->Terminate());
|
EXPECT_EQ(0, audio_device_->Terminate());
|
||||||
}
|
}
|
||||||
@ -699,9 +693,9 @@ TEST(AudioDeviceTestWin, ConstructDestructWithFactory) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Uses the test fixture to create, initialize and destruct the ADM.
|
// Uses the test fixture to create, initialize and destruct the ADM.
|
||||||
TEST_P(AudioDeviceTest, ConstructDestructDefault) {}
|
TEST_P(MAYBE_AudioDeviceTest, ConstructDestructDefault) {}
|
||||||
|
|
||||||
TEST_P(AudioDeviceTest, InitTerminate) {
|
TEST_P(MAYBE_AudioDeviceTest, InitTerminate) {
|
||||||
SKIP_TEST_IF_NOT(requirements_satisfied());
|
SKIP_TEST_IF_NOT(requirements_satisfied());
|
||||||
// Initialization is part of the test fixture.
|
// Initialization is part of the test fixture.
|
||||||
EXPECT_TRUE(audio_device()->Initialized());
|
EXPECT_TRUE(audio_device()->Initialized());
|
||||||
@ -710,7 +704,7 @@ TEST_P(AudioDeviceTest, InitTerminate) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Enumerate all available and active output devices.
|
// Enumerate all available and active output devices.
|
||||||
TEST_P(AudioDeviceTest, PlayoutDeviceNames) {
|
TEST_P(MAYBE_AudioDeviceTest, PlayoutDeviceNames) {
|
||||||
SKIP_TEST_IF_NOT(requirements_satisfied());
|
SKIP_TEST_IF_NOT(requirements_satisfied());
|
||||||
char device_name[kAdmMaxDeviceNameSize];
|
char device_name[kAdmMaxDeviceNameSize];
|
||||||
char unique_id[kAdmMaxGuidSize];
|
char unique_id[kAdmMaxGuidSize];
|
||||||
@ -727,7 +721,7 @@ TEST_P(AudioDeviceTest, PlayoutDeviceNames) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Enumerate all available and active input devices.
|
// Enumerate all available and active input devices.
|
||||||
TEST_P(AudioDeviceTest, RecordingDeviceNames) {
|
TEST_P(MAYBE_AudioDeviceTest, RecordingDeviceNames) {
|
||||||
SKIP_TEST_IF_NOT(requirements_satisfied());
|
SKIP_TEST_IF_NOT(requirements_satisfied());
|
||||||
char device_name[kAdmMaxDeviceNameSize];
|
char device_name[kAdmMaxDeviceNameSize];
|
||||||
char unique_id[kAdmMaxGuidSize];
|
char unique_id[kAdmMaxGuidSize];
|
||||||
@ -745,7 +739,7 @@ TEST_P(AudioDeviceTest, RecordingDeviceNames) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Counts number of active output devices and ensure that all can be selected.
|
// Counts number of active output devices and ensure that all can be selected.
|
||||||
TEST_P(AudioDeviceTest, SetPlayoutDevice) {
|
TEST_P(MAYBE_AudioDeviceTest, SetPlayoutDevice) {
|
||||||
SKIP_TEST_IF_NOT(requirements_satisfied());
|
SKIP_TEST_IF_NOT(requirements_satisfied());
|
||||||
int num_devices = audio_device()->PlayoutDevices();
|
int num_devices = audio_device()->PlayoutDevices();
|
||||||
if (NewWindowsAudioDeviceModuleIsUsed()) {
|
if (NewWindowsAudioDeviceModuleIsUsed()) {
|
||||||
@ -768,7 +762,7 @@ TEST_P(AudioDeviceTest, SetPlayoutDevice) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Counts number of active input devices and ensure that all can be selected.
|
// Counts number of active input devices and ensure that all can be selected.
|
||||||
TEST_P(AudioDeviceTest, SetRecordingDevice) {
|
TEST_P(MAYBE_AudioDeviceTest, SetRecordingDevice) {
|
||||||
SKIP_TEST_IF_NOT(requirements_satisfied());
|
SKIP_TEST_IF_NOT(requirements_satisfied());
|
||||||
int num_devices = audio_device()->RecordingDevices();
|
int num_devices = audio_device()->RecordingDevices();
|
||||||
if (NewWindowsAudioDeviceModuleIsUsed()) {
|
if (NewWindowsAudioDeviceModuleIsUsed()) {
|
||||||
@ -791,14 +785,14 @@ TEST_P(AudioDeviceTest, SetRecordingDevice) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Tests Start/Stop playout without any registered audio callback.
|
// Tests Start/Stop playout without any registered audio callback.
|
||||||
TEST_P(AudioDeviceTest, StartStopPlayout) {
|
TEST_P(MAYBE_AudioDeviceTest, StartStopPlayout) {
|
||||||
SKIP_TEST_IF_NOT(requirements_satisfied());
|
SKIP_TEST_IF_NOT(requirements_satisfied());
|
||||||
StartPlayout();
|
StartPlayout();
|
||||||
StopPlayout();
|
StopPlayout();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Tests Start/Stop recording without any registered audio callback.
|
// Tests Start/Stop recording without any registered audio callback.
|
||||||
TEST_P(AudioDeviceTest, StartStopRecording) {
|
TEST_P(MAYBE_AudioDeviceTest, StartStopRecording) {
|
||||||
SKIP_TEST_IF_NOT(requirements_satisfied());
|
SKIP_TEST_IF_NOT(requirements_satisfied());
|
||||||
StartRecording();
|
StartRecording();
|
||||||
StopRecording();
|
StopRecording();
|
||||||
@ -807,7 +801,7 @@ TEST_P(AudioDeviceTest, StartStopRecording) {
|
|||||||
// Tests Init/Stop/Init recording without any registered audio callback.
|
// Tests Init/Stop/Init recording without any registered audio callback.
|
||||||
// See https://bugs.chromium.org/p/webrtc/issues/detail?id=8041 for details
|
// See https://bugs.chromium.org/p/webrtc/issues/detail?id=8041 for details
|
||||||
// on why this test is useful.
|
// on why this test is useful.
|
||||||
TEST_P(AudioDeviceTest, InitStopInitRecording) {
|
TEST_P(MAYBE_AudioDeviceTest, InitStopInitRecording) {
|
||||||
SKIP_TEST_IF_NOT(requirements_satisfied());
|
SKIP_TEST_IF_NOT(requirements_satisfied());
|
||||||
EXPECT_EQ(0, audio_device()->InitRecording());
|
EXPECT_EQ(0, audio_device()->InitRecording());
|
||||||
EXPECT_TRUE(audio_device()->RecordingIsInitialized());
|
EXPECT_TRUE(audio_device()->RecordingIsInitialized());
|
||||||
@ -818,7 +812,7 @@ TEST_P(AudioDeviceTest, InitStopInitRecording) {
|
|||||||
|
|
||||||
// Verify that additional attempts to initialize or start recording while
|
// Verify that additional attempts to initialize or start recording while
|
||||||
// already being active works. Additional calls should just be ignored.
|
// already being active works. Additional calls should just be ignored.
|
||||||
TEST_P(AudioDeviceTest, StartInitRecording) {
|
TEST_P(MAYBE_AudioDeviceTest, StartInitRecording) {
|
||||||
SKIP_TEST_IF_NOT(requirements_satisfied());
|
SKIP_TEST_IF_NOT(requirements_satisfied());
|
||||||
StartRecording();
|
StartRecording();
|
||||||
// An additional attempt to initialize at this stage should be ignored.
|
// An additional attempt to initialize at this stage should be ignored.
|
||||||
@ -830,7 +824,7 @@ TEST_P(AudioDeviceTest, StartInitRecording) {
|
|||||||
|
|
||||||
// Verify that additional attempts to initialize or start playou while
|
// Verify that additional attempts to initialize or start playou while
|
||||||
// already being active works. Additional calls should just be ignored.
|
// already being active works. Additional calls should just be ignored.
|
||||||
TEST_P(AudioDeviceTest, StartInitPlayout) {
|
TEST_P(MAYBE_AudioDeviceTest, StartInitPlayout) {
|
||||||
SKIP_TEST_IF_NOT(requirements_satisfied());
|
SKIP_TEST_IF_NOT(requirements_satisfied());
|
||||||
StartPlayout();
|
StartPlayout();
|
||||||
// An additional attempt to initialize at this stage should be ignored.
|
// An additional attempt to initialize at this stage should be ignored.
|
||||||
@ -841,7 +835,7 @@ TEST_P(AudioDeviceTest, StartInitPlayout) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Tests Init/Stop/Init recording while playout is active.
|
// Tests Init/Stop/Init recording while playout is active.
|
||||||
TEST_P(AudioDeviceTest, InitStopInitRecordingWhilePlaying) {
|
TEST_P(MAYBE_AudioDeviceTest, InitStopInitRecordingWhilePlaying) {
|
||||||
SKIP_TEST_IF_NOT(requirements_satisfied());
|
SKIP_TEST_IF_NOT(requirements_satisfied());
|
||||||
StartPlayout();
|
StartPlayout();
|
||||||
EXPECT_EQ(0, audio_device()->InitRecording());
|
EXPECT_EQ(0, audio_device()->InitRecording());
|
||||||
@ -853,7 +847,7 @@ TEST_P(AudioDeviceTest, InitStopInitRecordingWhilePlaying) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Tests Init/Stop/Init playout without any registered audio callback.
|
// Tests Init/Stop/Init playout without any registered audio callback.
|
||||||
TEST_P(AudioDeviceTest, InitStopInitPlayout) {
|
TEST_P(MAYBE_AudioDeviceTest, InitStopInitPlayout) {
|
||||||
SKIP_TEST_IF_NOT(requirements_satisfied());
|
SKIP_TEST_IF_NOT(requirements_satisfied());
|
||||||
EXPECT_EQ(0, audio_device()->InitPlayout());
|
EXPECT_EQ(0, audio_device()->InitPlayout());
|
||||||
EXPECT_TRUE(audio_device()->PlayoutIsInitialized());
|
EXPECT_TRUE(audio_device()->PlayoutIsInitialized());
|
||||||
@ -863,7 +857,7 @@ TEST_P(AudioDeviceTest, InitStopInitPlayout) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Tests Init/Stop/Init playout while recording is active.
|
// Tests Init/Stop/Init playout while recording is active.
|
||||||
TEST_P(AudioDeviceTest, InitStopInitPlayoutWhileRecording) {
|
TEST_P(MAYBE_AudioDeviceTest, InitStopInitPlayoutWhileRecording) {
|
||||||
SKIP_TEST_IF_NOT(requirements_satisfied());
|
SKIP_TEST_IF_NOT(requirements_satisfied());
|
||||||
StartRecording();
|
StartRecording();
|
||||||
EXPECT_EQ(0, audio_device()->InitPlayout());
|
EXPECT_EQ(0, audio_device()->InitPlayout());
|
||||||
@ -879,7 +873,7 @@ TEST_P(AudioDeviceTest, InitStopInitPlayoutWhileRecording) {
|
|||||||
#ifdef WEBRTC_WIN
|
#ifdef WEBRTC_WIN
|
||||||
// Tests Start/Stop playout followed by a second session (emulates a restart
|
// Tests Start/Stop playout followed by a second session (emulates a restart
|
||||||
// triggered by a user using public APIs).
|
// triggered by a user using public APIs).
|
||||||
TEST_P(AudioDeviceTest, StartStopPlayoutWithExternalRestart) {
|
TEST_P(MAYBE_AudioDeviceTest, StartStopPlayoutWithExternalRestart) {
|
||||||
SKIP_TEST_IF_NOT(requirements_satisfied());
|
SKIP_TEST_IF_NOT(requirements_satisfied());
|
||||||
StartPlayout();
|
StartPlayout();
|
||||||
StopPlayout();
|
StopPlayout();
|
||||||
@ -891,7 +885,7 @@ TEST_P(AudioDeviceTest, StartStopPlayoutWithExternalRestart) {
|
|||||||
|
|
||||||
// Tests Start/Stop recording followed by a second session (emulates a restart
|
// Tests Start/Stop recording followed by a second session (emulates a restart
|
||||||
// triggered by a user using public APIs).
|
// triggered by a user using public APIs).
|
||||||
TEST_P(AudioDeviceTest, StartStopRecordingWithExternalRestart) {
|
TEST_P(MAYBE_AudioDeviceTest, StartStopRecordingWithExternalRestart) {
|
||||||
SKIP_TEST_IF_NOT(requirements_satisfied());
|
SKIP_TEST_IF_NOT(requirements_satisfied());
|
||||||
StartRecording();
|
StartRecording();
|
||||||
StopRecording();
|
StopRecording();
|
||||||
@ -905,7 +899,7 @@ TEST_P(AudioDeviceTest, StartStopRecordingWithExternalRestart) {
|
|||||||
// triggered by an internal callback e.g. corresponding to a device switch).
|
// triggered by an internal callback e.g. corresponding to a device switch).
|
||||||
// Note that, internal restart is only supported in combination with the latest
|
// Note that, internal restart is only supported in combination with the latest
|
||||||
// Windows ADM.
|
// Windows ADM.
|
||||||
TEST_P(AudioDeviceTest, StartStopPlayoutWithInternalRestart) {
|
TEST_P(MAYBE_AudioDeviceTest, StartStopPlayoutWithInternalRestart) {
|
||||||
SKIP_TEST_IF_NOT(requirements_satisfied());
|
SKIP_TEST_IF_NOT(requirements_satisfied());
|
||||||
if (audio_layer() != AudioDeviceModule::kWindowsCoreAudio2) {
|
if (audio_layer() != AudioDeviceModule::kWindowsCoreAudio2) {
|
||||||
return;
|
return;
|
||||||
@ -949,7 +943,7 @@ TEST_P(AudioDeviceTest, StartStopPlayoutWithInternalRestart) {
|
|||||||
// triggered by an internal callback e.g. corresponding to a device switch).
|
// triggered by an internal callback e.g. corresponding to a device switch).
|
||||||
// Note that, internal restart is only supported in combination with the latest
|
// Note that, internal restart is only supported in combination with the latest
|
||||||
// Windows ADM.
|
// Windows ADM.
|
||||||
TEST_P(AudioDeviceTest, StartStopRecordingWithInternalRestart) {
|
TEST_P(MAYBE_AudioDeviceTest, StartStopRecordingWithInternalRestart) {
|
||||||
SKIP_TEST_IF_NOT(requirements_satisfied());
|
SKIP_TEST_IF_NOT(requirements_satisfied());
|
||||||
if (audio_layer() != AudioDeviceModule::kWindowsCoreAudio2) {
|
if (audio_layer() != AudioDeviceModule::kWindowsCoreAudio2) {
|
||||||
return;
|
return;
|
||||||
@ -997,7 +991,7 @@ TEST_P(AudioDeviceTest, StartStopRecordingWithInternalRestart) {
|
|||||||
// Note that we can't add expectations on audio parameters in EXPECT_CALL
|
// Note that we can't add expectations on audio parameters in EXPECT_CALL
|
||||||
// since parameter are not provided in the each callback. We therefore test and
|
// since parameter are not provided in the each callback. We therefore test and
|
||||||
// verify the parameters in the fake audio transport implementation instead.
|
// verify the parameters in the fake audio transport implementation instead.
|
||||||
TEST_P(AudioDeviceTest, StartPlayoutVerifyCallbacks) {
|
TEST_P(MAYBE_AudioDeviceTest, StartPlayoutVerifyCallbacks) {
|
||||||
SKIP_TEST_IF_NOT(requirements_satisfied());
|
SKIP_TEST_IF_NOT(requirements_satisfied());
|
||||||
MockAudioTransport mock(TransportType::kPlay);
|
MockAudioTransport mock(TransportType::kPlay);
|
||||||
mock.HandleCallbacks(event(), nullptr, kNumCallbacks);
|
mock.HandleCallbacks(event(), nullptr, kNumCallbacks);
|
||||||
@ -1011,7 +1005,7 @@ TEST_P(AudioDeviceTest, StartPlayoutVerifyCallbacks) {
|
|||||||
|
|
||||||
// Start recording and verify that the native audio layer starts providing real
|
// Start recording and verify that the native audio layer starts providing real
|
||||||
// audio samples using the RecordedDataIsAvailable() callback.
|
// audio samples using the RecordedDataIsAvailable() callback.
|
||||||
TEST_P(AudioDeviceTest, StartRecordingVerifyCallbacks) {
|
TEST_P(MAYBE_AudioDeviceTest, StartRecordingVerifyCallbacks) {
|
||||||
SKIP_TEST_IF_NOT(requirements_satisfied());
|
SKIP_TEST_IF_NOT(requirements_satisfied());
|
||||||
MockAudioTransport mock(TransportType::kRecord);
|
MockAudioTransport mock(TransportType::kRecord);
|
||||||
mock.HandleCallbacks(event(), nullptr, kNumCallbacks);
|
mock.HandleCallbacks(event(), nullptr, kNumCallbacks);
|
||||||
@ -1026,7 +1020,7 @@ TEST_P(AudioDeviceTest, StartRecordingVerifyCallbacks) {
|
|||||||
|
|
||||||
// Start playout and recording (full-duplex audio) and verify that audio is
|
// Start playout and recording (full-duplex audio) and verify that audio is
|
||||||
// active in both directions.
|
// active in both directions.
|
||||||
TEST_P(AudioDeviceTest, StartPlayoutAndRecordingVerifyCallbacks) {
|
TEST_P(MAYBE_AudioDeviceTest, StartPlayoutAndRecordingVerifyCallbacks) {
|
||||||
SKIP_TEST_IF_NOT(requirements_satisfied());
|
SKIP_TEST_IF_NOT(requirements_satisfied());
|
||||||
MockAudioTransport mock(TransportType::kPlayAndRecord);
|
MockAudioTransport mock(TransportType::kPlayAndRecord);
|
||||||
mock.HandleCallbacks(event(), nullptr, kNumCallbacks);
|
mock.HandleCallbacks(event(), nullptr, kNumCallbacks);
|
||||||
@ -1055,7 +1049,7 @@ TEST_P(AudioDeviceTest, StartPlayoutAndRecordingVerifyCallbacks) {
|
|||||||
// sequence by running in loopback for a few seconds while measuring the size
|
// sequence by running in loopback for a few seconds while measuring the size
|
||||||
// (max and average) of the FIFO. The size of the FIFO is increased by the
|
// (max and average) of the FIFO. The size of the FIFO is increased by the
|
||||||
// recording side and decreased by the playout side.
|
// recording side and decreased by the playout side.
|
||||||
TEST_P(AudioDeviceTest, RunPlayoutAndRecordingInFullDuplex) {
|
TEST_P(MAYBE_AudioDeviceTest, RunPlayoutAndRecordingInFullDuplex) {
|
||||||
SKIP_TEST_IF_NOT(requirements_satisfied());
|
SKIP_TEST_IF_NOT(requirements_satisfied());
|
||||||
NiceMock<MockAudioTransport> mock(TransportType::kPlayAndRecord);
|
NiceMock<MockAudioTransport> mock(TransportType::kPlayAndRecord);
|
||||||
FifoAudioStream audio_stream;
|
FifoAudioStream audio_stream;
|
||||||
@ -1086,7 +1080,7 @@ TEST_P(AudioDeviceTest, RunPlayoutAndRecordingInFullDuplex) {
|
|||||||
// Runs audio in full duplex until user hits Enter. Intended as a manual test
|
// Runs audio in full duplex until user hits Enter. Intended as a manual test
|
||||||
// to ensure that the audio quality is good and that real device switches works
|
// to ensure that the audio quality is good and that real device switches works
|
||||||
// as intended.
|
// as intended.
|
||||||
TEST_P(AudioDeviceTest,
|
TEST_P(MAYBE_AudioDeviceTest,
|
||||||
DISABLED_RunPlayoutAndRecordingInFullDuplexAndWaitForEnterKey) {
|
DISABLED_RunPlayoutAndRecordingInFullDuplexAndWaitForEnterKey) {
|
||||||
SKIP_TEST_IF_NOT(requirements_satisfied());
|
SKIP_TEST_IF_NOT(requirements_satisfied());
|
||||||
if (audio_layer() != AudioDeviceModule::kWindowsCoreAudio2) {
|
if (audio_layer() != AudioDeviceModule::kWindowsCoreAudio2) {
|
||||||
@ -1123,7 +1117,7 @@ TEST_P(AudioDeviceTest,
|
|||||||
// some sort of audio feedback loop. E.g. a headset where the mic is placed
|
// some sort of audio feedback loop. E.g. a headset where the mic is placed
|
||||||
// close to the speaker to ensure highest possible echo. It is also recommended
|
// close to the speaker to ensure highest possible echo. It is also recommended
|
||||||
// to run the test at highest possible output volume.
|
// to run the test at highest possible output volume.
|
||||||
TEST_P(AudioDeviceTest, DISABLED_MeasureLoopbackLatency) {
|
TEST_P(MAYBE_AudioDeviceTest, DISABLED_MeasureLoopbackLatency) {
|
||||||
SKIP_TEST_IF_NOT(requirements_satisfied());
|
SKIP_TEST_IF_NOT(requirements_satisfied());
|
||||||
NiceMock<MockAudioTransport> mock(TransportType::kPlayAndRecord);
|
NiceMock<MockAudioTransport> mock(TransportType::kPlayAndRecord);
|
||||||
LatencyAudioStream audio_stream;
|
LatencyAudioStream audio_stream;
|
||||||
@ -1151,14 +1145,14 @@ TEST_P(AudioDeviceTest, DISABLED_MeasureLoopbackLatency) {
|
|||||||
// implementations) for Windows.
|
// implementations) for Windows.
|
||||||
INSTANTIATE_TEST_SUITE_P(
|
INSTANTIATE_TEST_SUITE_P(
|
||||||
AudioLayerWin,
|
AudioLayerWin,
|
||||||
AudioDeviceTest,
|
MAYBE_AudioDeviceTest,
|
||||||
::testing::Values(AudioDeviceModule::kPlatformDefaultAudio,
|
::testing::Values(AudioDeviceModule::kPlatformDefaultAudio,
|
||||||
AudioDeviceModule::kWindowsCoreAudio2));
|
AudioDeviceModule::kWindowsCoreAudio2));
|
||||||
#else
|
#else
|
||||||
// For all platforms but Windows, only test the default audio layer.
|
// For all platforms but Windows, only test the default audio layer.
|
||||||
INSTANTIATE_TEST_SUITE_P(
|
INSTANTIATE_TEST_SUITE_P(
|
||||||
AudioLayer,
|
AudioLayer,
|
||||||
AudioDeviceTest,
|
MAYBE_AudioDeviceTest,
|
||||||
::testing::Values(AudioDeviceModule::kPlatformDefaultAudio));
|
::testing::Values(AudioDeviceModule::kPlatformDefaultAudio));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user