diff options
author | chrisgao@chromium.org <chrisgao@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-08 01:58:50 +0000 |
---|---|---|
committer | chrisgao@chromium.org <chrisgao@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-08 01:58:50 +0000 |
commit | 8ad2a2bfbcda2cb07af5a117f5caa0bfe95414b6 (patch) | |
tree | 102a77312bcb1aa2acd9383d46738409d5e27a3b | |
parent | cb4efe3022284c8b24af7ec8478c1e91badd0fb7 (diff) | |
download | chromium_src-8ad2a2bfbcda2cb07af5a117f5caa0bfe95414b6.zip chromium_src-8ad2a2bfbcda2cb07af5a117f5caa0bfe95414b6.tar.gz chromium_src-8ad2a2bfbcda2cb07af5a117f5caa0bfe95414b6.tar.bz2 |
[chromedriver] Fix SyncWebSocketImplTest.Reconnect in pyauto bots.
One purpose of this test is to check if the message queue of SyncWebSocket is cleared after reconnection.
The failure is caused by stopping the server right after pushing request message to SyncWebSocket.
The server has no time to response or even might not receive the request yet.
NOTRY=true
Review URL: https://chromiumcodereview.appspot.com/12586002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@186847 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/test/chromedriver/net/sync_websocket_impl_unittest.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/chrome/test/chromedriver/net/sync_websocket_impl_unittest.cc b/chrome/test/chromedriver/net/sync_websocket_impl_unittest.cc index d185008..23ed385 100644 --- a/chrome/test/chromedriver/net/sync_websocket_impl_unittest.cc +++ b/chrome/test/chromedriver/net/sync_websocket_impl_unittest.cc @@ -9,7 +9,9 @@ #include "base/message_loop.h" #include "base/message_loop_proxy.h" #include "base/single_thread_task_runner.h" +#include "base/threading/platform_thread.h" #include "base/threading/thread.h" +#include "base/time.h" #include "chrome/test/chromedriver/net/sync_websocket_impl.h" #include "chrome/test/chromedriver/net/test_http_server.h" #include "chrome/test/chromedriver/net/url_request_context_getter.h" @@ -114,6 +116,14 @@ TEST_F(SyncWebSocketImplTest, Reconnect) { SyncWebSocketImpl sock(context_getter_); ASSERT_TRUE(sock.Connect(server_.web_socket_url())); ASSERT_TRUE(sock.Send("1")); + // Wait for SyncWebSocket to receive the response from the server. + base::Time deadline = base::Time::Now() + base::TimeDelta::FromSeconds(20); + while (base::Time::Now() < deadline) { + if (sock.IsConnected() && !sock.HasNextMessage()) + base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(10)); + else + break; + } server_.Stop(); ASSERT_FALSE(sock.Send("2")); ASSERT_FALSE(sock.IsConnected()); |