diff options
author | phoglund@chromium.org <phoglund@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-02 17:53:48 +0000 |
---|---|---|
committer | phoglund@chromium.org <phoglund@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-02 17:53:48 +0000 |
commit | f7ab05b3f68b0cf0946dddcab92b831289e193aa (patch) | |
tree | 85ef9995df2a686fda85776d3a512ea00f1f5eca | |
parent | a3526116fa1985aa42b2e198b38d77c0a38491d7 (diff) | |
download | chromium_src-f7ab05b3f68b0cf0946dddcab92b831289e193aa.zip chromium_src-f7ab05b3f68b0cf0946dddcab92b831289e193aa.tar.gz chromium_src-f7ab05b3f68b0cf0946dddcab92b831289e193aa.tar.bz2 |
Working around IO thread chrashes for WebRTC tests on Android.
Because the content_browsertests tearDown logic is broken with respect
to threading on Android, we here work around the problem by sleeping in
the tearDown to give the IO thread time to finish its work. This will
lengthen the execution time of the tests but hopefully make the tests
stable enough to last us until the Clank team finds time to rewrite the
tearDown logic.
BUG=362852
Review URL: https://codereview.chromium.org/251323002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@267858 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | build/android/pylib/gtest/filter/content_browsertests_disabled | 3 | ||||
-rw-r--r-- | content/browser/media/webrtc_browsertest.cc | 15 |
2 files changed, 14 insertions, 4 deletions
diff --git a/build/android/pylib/gtest/filter/content_browsertests_disabled b/build/android/pylib/gtest/filter/content_browsertests_disabled index 2978ce0..c96ce6c 100644 --- a/build/android/pylib/gtest/filter/content_browsertests_disabled +++ b/build/android/pylib/gtest/filter/content_browsertests_disabled @@ -120,6 +120,3 @@ TracingControllerTest.EnableCaptureAndDisableMonitoringWithFilePath # http://crbug.com/343604 MSE_ClearKey/EncryptedMediaTest.ConfigChangeVideo/0 - -# http://crbug.com/362852 -WebRtcBrowserTests/WebRtcBrowserTest.* diff --git a/content/browser/media/webrtc_browsertest.cc b/content/browser/media/webrtc_browsertest.cc index ce566ae..2f81335 100644 --- a/content/browser/media/webrtc_browsertest.cc +++ b/content/browser/media/webrtc_browsertest.cc @@ -5,6 +5,7 @@ #include "base/command_line.h" #include "base/file_util.h" #include "base/strings/stringprintf.h" +#include "base/threading/platform_thread.h" #include "base/values.h" #include "content/browser/media/webrtc_internals.h" #include "content/browser/web_contents/web_contents_impl.h" @@ -45,6 +46,18 @@ class WebRtcBrowserTest : public WebRtcContentBrowserTest, command_line->AppendSwitch(switches::kEnableAudioTrackProcessing); } + virtual void TearDownOnMainThread() OVERRIDE { +#if defined(OS_ANDROID) + // TODO(phoglund): this is a ugly workaround to let the IO thread + // finish its work. The reason we need this on Android is that + // content_browsertests tearDown logic is broken with respect + // to threading, which causes the IO thread to compete with the + // teardown. See http://crbug.com/362852. I also tried with 2 + // seconds, but that isn't enough. + base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(5)); +#endif + } + // Convenience function since most peerconnection-call.html tests just load // the page, kick off some javascript and wait for the title to change to OK. void MakeTypicalPeerConnectionCall(const std::string& javascript) { @@ -58,7 +71,7 @@ class WebRtcBrowserTest : public WebRtcContentBrowserTest, } void DisableOpusIfOnAndroid() { -#if defined (OS_ANDROID) +#if defined(OS_ANDROID) // Always force iSAC 16K on Android for now (Opus is broken). EXPECT_EQ("isac-forced", ExecuteJavascriptAndReturnResult("forceIsac16KInSdp();")); |