Ensures that ADM unit tests builds on all platforms.
Review URL: http://webrtc-codereview.appspot.com/240009 git-svn-id: http://webrtc.googlecode.com/svn/trunk@800 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
@ -14,6 +14,7 @@
|
|||||||
#include "audio_device_test_defines.h"
|
#include "audio_device_test_defines.h"
|
||||||
|
|
||||||
#include "../source/audio_device_config.h"
|
#include "../source/audio_device_config.h"
|
||||||
|
#include "../source/audio_device_impl.h"
|
||||||
#include "../source/audio_device_utility.h"
|
#include "../source/audio_device_utility.h"
|
||||||
|
|
||||||
// Helper functions
|
// Helper functions
|
||||||
@ -213,7 +214,7 @@ int api_test()
|
|||||||
processThread->Start();
|
processThread->Start();
|
||||||
|
|
||||||
// =======================================================
|
// =======================================================
|
||||||
// AudioDeviceModule::Create
|
// AudioDeviceModuleImpl::Create
|
||||||
//
|
//
|
||||||
// Windows:
|
// Windows:
|
||||||
// if (WEBRTC_WINDOWS_CORE_AUDIO_BUILD)
|
// if (WEBRTC_WINDOWS_CORE_AUDIO_BUILD)
|
||||||
@ -226,74 +227,78 @@ int api_test()
|
|||||||
AudioDeviceModule* audioDevice(NULL);
|
AudioDeviceModule* audioDevice(NULL);
|
||||||
|
|
||||||
#if defined(_WIN32)
|
#if defined(_WIN32)
|
||||||
TEST((audioDevice = AudioDeviceModule::Create(
|
TEST((audioDevice = AudioDeviceModuleImpl::Create(
|
||||||
myId, AudioDeviceModule::kLinuxAlsaAudio)) == NULL);
|
myId, AudioDeviceModule::kLinuxAlsaAudio)) == NULL);
|
||||||
#if defined(WEBRTC_WINDOWS_CORE_AUDIO_BUILD)
|
#if defined(WEBRTC_WINDOWS_CORE_AUDIO_BUILD)
|
||||||
TEST_LOG("WEBRTC_WINDOWS_CORE_AUDIO_BUILD is defined!\n\n");
|
TEST_LOG("WEBRTC_WINDOWS_CORE_AUDIO_BUILD is defined!\n\n");
|
||||||
// create default implementation (=Core Audio) instance
|
// create default implementation (=Core Audio) instance
|
||||||
TEST((audioDevice = AudioDeviceModule::Create(
|
TEST((audioDevice = AudioDeviceModuleImpl::Create(
|
||||||
myId, AudioDeviceModule::kPlatformDefaultAudio)) != NULL);
|
myId, AudioDeviceModule::kPlatformDefaultAudio)) != NULL);
|
||||||
AudioDeviceModule::Destroy(audioDevice);
|
audioDevice->AddRef();
|
||||||
|
TEST(audioDevice->Release() == 0);
|
||||||
// create non-default (=Wave Audio) instance
|
// create non-default (=Wave Audio) instance
|
||||||
TEST((audioDevice = AudioDeviceModule::Create(
|
TEST((audioDevice = AudioDeviceModuleImpl::Create(
|
||||||
myId, AudioDeviceModule::kWindowsWaveAudio)) != NULL);
|
myId, AudioDeviceModule::kWindowsWaveAudio)) != NULL);
|
||||||
AudioDeviceModule::Destroy(audioDevice);
|
audioDevice->AddRef();
|
||||||
|
TEST(audioDevice->Release() == 0);
|
||||||
// explicitly specify usage of Core Audio (same as default)
|
// explicitly specify usage of Core Audio (same as default)
|
||||||
TEST((audioDevice = AudioDeviceModule::Create(
|
TEST((audioDevice = AudioDeviceModuleImpl::Create(
|
||||||
myId, AudioDeviceModule::kWindowsCoreAudio)) != NULL);
|
myId, AudioDeviceModule::kWindowsCoreAudio)) != NULL);
|
||||||
#else
|
#else
|
||||||
// TEST_LOG("WEBRTC_WINDOWS_CORE_AUDIO_BUILD is *not* defined!\n");
|
TEST_LOG("WEBRTC_WINDOWS_CORE_AUDIO_BUILD is *not* defined!\n");
|
||||||
TEST((audioDevice = AudioDeviceModule::Create(
|
TEST((audioDevice = AudioDeviceModuleImpl::Create(
|
||||||
myId, AudioDeviceModule::kWindowsCoreAudio)) == NULL);
|
myId, AudioDeviceModule::kWindowsCoreAudio)) == NULL);
|
||||||
// create default implementation (=Wave Audio) instance
|
// create default implementation (=Wave Audio) instance
|
||||||
TEST((audioDevice = AudioDeviceModule::Create(
|
TEST((audioDevice = AudioDeviceModuleImpl::Create(
|
||||||
myId, AudioDeviceModule::kPlatformDefaultAudio)) != NULL);
|
myId, AudioDeviceModule::kPlatformDefaultAudio)) != NULL);
|
||||||
AudioDeviceModule::Destroy(audioDevice);
|
audioDevice->AddRef();
|
||||||
|
TEST(audioDevice->Release() == 0);
|
||||||
// explicitly specify usage of Wave Audio (same as default)
|
// explicitly specify usage of Wave Audio (same as default)
|
||||||
TEST((audioDevice = AudioDeviceModule::Create(
|
TEST((audioDevice = AudioDeviceModuleImpl::Create(
|
||||||
myId, AudioDeviceModule::kWindowsWaveAudio)) != NULL);
|
myId, AudioDeviceModule::kWindowsWaveAudio)) != NULL);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(ANDROID)
|
#if defined(ANDROID)
|
||||||
// Fails tests
|
// Fails tests
|
||||||
TEST((audioDevice = AudioDeviceModule::Create(
|
TEST((audioDevice = AudioDeviceModuleImpl::Create(
|
||||||
myId, AudioDeviceModule::kWindowsWaveAudio)) == NULL);
|
myId, AudioDeviceModule::kWindowsWaveAudio)) == NULL);
|
||||||
TEST((audioDevice = AudioDeviceModule::Create(
|
TEST((audioDevice = AudioDeviceModuleImpl::Create(
|
||||||
myId, AudioDeviceModule::kWindowsCoreAudio)) == NULL);
|
myId, AudioDeviceModule::kWindowsCoreAudio)) == NULL);
|
||||||
TEST((audioDevice = AudioDeviceModule::Create(
|
TEST((audioDevice = AudioDeviceModuleImpl::Create(
|
||||||
myId, AudioDeviceModule::kLinuxAlsaAudio)) == NULL);
|
myId, AudioDeviceModule::kLinuxAlsaAudio)) == NULL);
|
||||||
TEST((audioDevice = AudioDeviceModule::Create(
|
TEST((audioDevice = AudioDeviceModuleImpl::Create(
|
||||||
myId, AudioDeviceModule::kLinuxPulseAudio)) == NULL);
|
myId, AudioDeviceModule::kLinuxPulseAudio)) == NULL);
|
||||||
// Create default implementation instance
|
// Create default implementation instance
|
||||||
TEST((audioDevice = AudioDeviceModule::Create(
|
TEST((audioDevice = AudioDeviceModuleImpl::Create(
|
||||||
myId, AudioDeviceModule::kPlatformDefaultAudio)) != NULL);
|
myId, AudioDeviceModule::kPlatformDefaultAudio)) != NULL);
|
||||||
#elif defined(WEBRTC_LINUX)
|
#elif defined(WEBRTC_LINUX)
|
||||||
TEST((audioDevice = AudioDeviceModule::Create(
|
TEST((audioDevice = AudioDeviceModuleImpl::Create(
|
||||||
myId, AudioDeviceModule::kWindowsWaveAudio)) == NULL);
|
myId, AudioDeviceModule::kWindowsWaveAudio)) == NULL);
|
||||||
TEST((audioDevice = AudioDeviceModule::Create(
|
TEST((audioDevice = AudioDeviceModuleImpl::Create(
|
||||||
myId, AudioDeviceModule::kWindowsCoreAudio)) == NULL);
|
myId, AudioDeviceModule::kWindowsCoreAudio)) == NULL);
|
||||||
// create default implementation (=ALSA Audio) instance
|
// create default implementation (=ALSA Audio) instance
|
||||||
TEST((audioDevice = AudioDeviceModule::Create(
|
TEST((audioDevice = AudioDeviceModuleImpl::Create(
|
||||||
myId, AudioDeviceModule::kPlatformDefaultAudio)) != NULL);
|
myId, AudioDeviceModule::kPlatformDefaultAudio)) != NULL);
|
||||||
AudioDeviceModule::Destroy(audioDevice);
|
audioDevice->AddRef();
|
||||||
|
TEST(audioDevice->Release() == 0);
|
||||||
// explicitly specify usage of Pulse Audio (same as default)
|
// explicitly specify usage of Pulse Audio (same as default)
|
||||||
TEST((audioDevice = AudioDeviceModule::Create(
|
TEST((audioDevice = AudioDeviceModuleImpl::Create(
|
||||||
myId, AudioDeviceModule::kLinuxPulseAudio)) != NULL);
|
myId, AudioDeviceModule::kLinuxPulseAudio)) != NULL);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(WEBRTC_MAC)
|
#if defined(WEBRTC_MAC)
|
||||||
// Fails tests
|
// Fails tests
|
||||||
TEST((audioDevice = AudioDeviceModule::Create(
|
TEST((audioDevice = AudioDeviceModuleImpl::Create(
|
||||||
myId, AudioDeviceModule::kWindowsWaveAudio)) == NULL);
|
myId, AudioDeviceModule::kWindowsWaveAudio)) == NULL);
|
||||||
TEST((audioDevice = AudioDeviceModule::Create(
|
TEST((audioDevice = AudioDeviceModuleImpl::Create(
|
||||||
myId, AudioDeviceModule::kWindowsCoreAudio)) == NULL);
|
myId, AudioDeviceModule::kWindowsCoreAudio)) == NULL);
|
||||||
TEST((audioDevice = AudioDeviceModule::Create(
|
TEST((audioDevice = AudioDeviceModuleImpl::Create(
|
||||||
myId, AudioDeviceModule::kLinuxAlsaAudio)) == NULL);
|
myId, AudioDeviceModule::kLinuxAlsaAudio)) == NULL);
|
||||||
TEST((audioDevice = AudioDeviceModule::Create(
|
TEST((audioDevice = AudioDeviceModuleImpl::Create(
|
||||||
myId, AudioDeviceModule::kLinuxPulseAudio)) == NULL);
|
myId, AudioDeviceModule::kLinuxPulseAudio)) == NULL);
|
||||||
// Create default implementation instance
|
// Create default implementation instance
|
||||||
TEST((audioDevice = AudioDeviceModule::Create(
|
TEST((audioDevice = AudioDeviceModuleImpl::Create(
|
||||||
myId, AudioDeviceModule::kPlatformDefaultAudio)) != NULL);
|
myId, AudioDeviceModule::kPlatformDefaultAudio)) != NULL);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -307,6 +312,9 @@ int api_test()
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// The ADM is reference counted.
|
||||||
|
audioDevice->AddRef();
|
||||||
|
|
||||||
processThread->RegisterModule(audioDevice);
|
processThread->RegisterModule(audioDevice);
|
||||||
|
|
||||||
// ===============
|
// ===============
|
||||||
@ -2201,7 +2209,7 @@ int api_test()
|
|||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
|
|
||||||
// ===================================================
|
// ===================================================
|
||||||
// AudioDeviceModule::Destroy
|
// AudioDeviceModuleImpl::Destroy
|
||||||
// ===================================================
|
// ===================================================
|
||||||
|
|
||||||
|
|
||||||
@ -2228,8 +2236,9 @@ int api_test()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// release the AudioDeviceModule object
|
// release the AudioDeviceModule object
|
||||||
if (audioDevice)
|
if (audioDevice) {
|
||||||
AudioDeviceModule::Destroy(audioDevice);
|
TEST(audioDevice->Release() == 0);
|
||||||
|
}
|
||||||
|
|
||||||
TEST_LOG("\n");
|
TEST_LOG("\n");
|
||||||
PRINT_TEST_RESULTS;
|
PRINT_TEST_RESULTS;
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
#include "func_test_manager.h"
|
#include "func_test_manager.h"
|
||||||
|
|
||||||
#include "../source/audio_device_config.h"
|
#include "../source/audio_device_config.h"
|
||||||
|
#include "../source/audio_device_impl.h"
|
||||||
|
|
||||||
#ifndef __GNUC__
|
#ifndef __GNUC__
|
||||||
// Disable warning message ('sprintf': name was marked as #pragma deprecated)
|
// Disable warning message ('sprintf': name was marked as #pragma deprecated)
|
||||||
@ -597,11 +598,13 @@ WebRtc_Word32 FuncTestManager::Init()
|
|||||||
_processThread->Start();
|
_processThread->Start();
|
||||||
|
|
||||||
// create the Audio Device module
|
// create the Audio Device module
|
||||||
TEST((_audioDevice = AudioDeviceModule::Create(555, ADM_AUDIO_LAYER)) != NULL);
|
TEST((_audioDevice = AudioDeviceModuleImpl::Create(
|
||||||
|
555, ADM_AUDIO_LAYER)) != NULL);
|
||||||
if (_audioDevice == NULL)
|
if (_audioDevice == NULL)
|
||||||
{
|
{
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
TEST(_audioDevice->AddRef() == 1);
|
||||||
|
|
||||||
// register the Audio Device module
|
// register the Audio Device module
|
||||||
_processThread->RegisterModule(_audioDevice);
|
_processThread->RegisterModule(_audioDevice);
|
||||||
@ -656,7 +659,7 @@ WebRtc_Word32 FuncTestManager::Close()
|
|||||||
// release the AudioDeviceModule object
|
// release the AudioDeviceModule object
|
||||||
if (_audioDevice)
|
if (_audioDevice)
|
||||||
{
|
{
|
||||||
AudioDeviceModule::Destroy(_audioDevice);
|
TEST(_audioDevice->Release() == 0);
|
||||||
_audioDevice = NULL;
|
_audioDevice = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -826,7 +829,7 @@ WebRtc_Word32 FuncTestManager::TestAudioLayerSelection()
|
|||||||
// release the AudioDeviceModule object
|
// release the AudioDeviceModule object
|
||||||
if (_audioDevice)
|
if (_audioDevice)
|
||||||
{
|
{
|
||||||
AudioDeviceModule::Destroy(_audioDevice);
|
TEST(_audioDevice->Release() == 0);
|
||||||
_audioDevice = NULL;
|
_audioDevice = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -843,12 +846,12 @@ WebRtc_Word32 FuncTestManager::TestAudioLayerSelection()
|
|||||||
// create the Audio Device module based on selected audio layer
|
// create the Audio Device module based on selected audio layer
|
||||||
if (tryWinWave)
|
if (tryWinWave)
|
||||||
{
|
{
|
||||||
_audioDevice = AudioDeviceModule::Create(
|
_audioDevice = AudioDeviceModuleImpl::Create(
|
||||||
555,
|
555,
|
||||||
AudioDeviceModule::kWindowsWaveAudio);
|
AudioDeviceModule::kWindowsWaveAudio);
|
||||||
} else if (tryWinCore)
|
} else if (tryWinCore)
|
||||||
{
|
{
|
||||||
_audioDevice = AudioDeviceModule::Create(
|
_audioDevice = AudioDeviceModuleImpl::Create(
|
||||||
555,
|
555,
|
||||||
AudioDeviceModule::kWindowsCoreAudio);
|
AudioDeviceModule::kWindowsCoreAudio);
|
||||||
}
|
}
|
||||||
@ -857,7 +860,7 @@ WebRtc_Word32 FuncTestManager::TestAudioLayerSelection()
|
|||||||
{
|
{
|
||||||
TEST_LOG("\nERROR: Switch of audio layer failed!\n");
|
TEST_LOG("\nERROR: Switch of audio layer failed!\n");
|
||||||
// restore default audio layer instead
|
// restore default audio layer instead
|
||||||
TEST((_audioDevice = AudioDeviceModule::Create(
|
TEST((_audioDevice = AudioDeviceModuleImpl::Create(
|
||||||
555, AudioDeviceModule::kPlatformDefaultAudio)) != NULL);
|
555, AudioDeviceModule::kPlatformDefaultAudio)) != NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -867,6 +870,8 @@ WebRtc_Word32 FuncTestManager::TestAudioLayerSelection()
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(_audioDevice->AddRef() == 1);
|
||||||
|
|
||||||
// register the Audio Device module
|
// register the Audio Device module
|
||||||
_processThread->RegisterModule(_audioDevice);
|
_processThread->RegisterModule(_audioDevice);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user