diff options
author | tommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-25 11:06:17 +0000 |
---|---|---|
committer | tommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-25 11:06:17 +0000 |
commit | c4b74f1ab67a21fee79a8f60b4ab667755304e7e (patch) | |
tree | 8a715ce549bc0da0d2a6ab7b2b06ab722cd18d18 /media | |
parent | 921c7b571ab4682edfabccfc0dfba08207265432 (diff) | |
download | chromium_src-c4b74f1ab67a21fee79a8f60b4ab667755304e7e.zip chromium_src-c4b74f1ab67a21fee79a8f60b4ab667755304e7e.tar.gz chromium_src-c4b74f1ab67a21fee79a8f60b4ab667755304e7e.tar.bz2 |
Expose a way for unit tests to terminate the AudioManager singleton to avoid conflicts between tests.
This fixes occasional crashes when running audio tests manually (won't happen on the bots right now since they don't have the required hardware).
TEST=Run content tests with --gtest_filter=*WebRTC* --gtest_repeat=1000
BUG=none
Review URL: http://codereview.chromium.org/8558022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@111586 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r-- | media/audio/audio_manager.cc | 10 | ||||
-rw-r--r-- | media/audio/audio_manager.h | 4 |
2 files changed, 14 insertions, 0 deletions
diff --git a/media/audio/audio_manager.cc b/media/audio/audio_manager.cc index b11cb9c..45c67f9 100644 --- a/media/audio/audio_manager.cc +++ b/media/audio/audio_manager.cc @@ -32,3 +32,13 @@ AudioManager* AudioManager::GetAudioManager() { } return g_audio_manager; } + +// static +bool AudioManager::SingletonExists() { + return g_audio_manager != NULL; +} + +// static +void AudioManager::Resurrect() { + g_destroy_called = false; +} diff --git a/media/audio/audio_manager.h b/media/audio/audio_manager.h index eb94831..817761a 100644 --- a/media/audio/audio_manager.h +++ b/media/audio/audio_manager.h @@ -120,7 +120,11 @@ class MEDIA_EXPORT AudioManager { virtual void Cleanup() = 0; private: + // Allow unit tests to delete and recreate the singleton. + friend class AutoAudioManagerCleanup; static void Destroy(void*); + static bool SingletonExists(); + static void Resurrect(); // Called by GetAudioManager() to create platform-specific audio manager. static AudioManager* CreateAudioManager(); |