| Index: net/proxy/multi_threaded_proxy_resolver_unittest.cc
|
| diff --git a/net/proxy/multi_threaded_proxy_resolver_unittest.cc b/net/proxy/multi_threaded_proxy_resolver_unittest.cc
|
| index e1c9e90b761ef677bda373f8058ba0091dae11d2..991325f180006109d96865677d1cca89d7f278c5 100644
|
| --- a/net/proxy/multi_threaded_proxy_resolver_unittest.cc
|
| +++ b/net/proxy/multi_threaded_proxy_resolver_unittest.cc
|
| @@ -58,18 +58,14 @@ class MockProxyResolver : public ProxyResolver {
|
| return request_count_++;
|
| }
|
|
|
| - virtual void CancelRequest(RequestHandle request) OVERRIDE {
|
| - NOTREACHED();
|
| - }
|
| + virtual void CancelRequest(RequestHandle request) OVERRIDE { NOTREACHED(); }
|
|
|
| virtual LoadState GetLoadState(RequestHandle request) const OVERRIDE {
|
| NOTREACHED();
|
| return LOAD_STATE_IDLE;
|
| }
|
|
|
| - virtual void CancelSetPacScript() OVERRIDE {
|
| - NOTREACHED();
|
| - }
|
| + virtual void CancelSetPacScript() OVERRIDE { NOTREACHED(); }
|
|
|
| virtual int SetPacScript(
|
| const scoped_refptr<ProxyResolverScriptData>& script_data,
|
| @@ -104,7 +100,6 @@ class MockProxyResolver : public ProxyResolver {
|
| base::TimeDelta resolve_latency_;
|
| };
|
|
|
| -
|
| // A mock synchronous ProxyResolver which can be set to block upon reaching
|
| // GetProxyForURL().
|
| // TODO(eroman): WaitUntilBlocked() *must* be called before calling Unblock(),
|
| @@ -113,10 +108,7 @@ class MockProxyResolver : public ProxyResolver {
|
| class BlockableProxyResolver : public MockProxyResolver {
|
| public:
|
| BlockableProxyResolver()
|
| - : should_block_(false),
|
| - unblocked_(true, true),
|
| - blocked_(true, false) {
|
| - }
|
| + : should_block_(false), unblocked_(true, true), blocked_(true, false) {}
|
|
|
| void Block() {
|
| should_block_ = true;
|
| @@ -129,9 +121,7 @@ class BlockableProxyResolver : public MockProxyResolver {
|
| unblocked_.Signal();
|
| }
|
|
|
| - void WaitUntilBlocked() {
|
| - blocked_.Wait();
|
| - }
|
| + void WaitUntilBlocked() { blocked_.Wait(); }
|
|
|
| virtual int GetProxyForURL(const GURL& query_url,
|
| ProxyInfo* results,
|
| @@ -157,8 +147,7 @@ class BlockableProxyResolver : public MockProxyResolver {
|
| class ForwardingProxyResolver : public ProxyResolver {
|
| public:
|
| explicit ForwardingProxyResolver(ProxyResolver* impl)
|
| - : ProxyResolver(impl->expects_pac_bytes()),
|
| - impl_(impl) {}
|
| + : ProxyResolver(impl->expects_pac_bytes()), impl_(impl) {}
|
|
|
| virtual int GetProxyForURL(const GURL& query_url,
|
| ProxyInfo* results,
|
| @@ -178,9 +167,7 @@ class ForwardingProxyResolver : public ProxyResolver {
|
| return LOAD_STATE_IDLE;
|
| }
|
|
|
| - virtual void CancelSetPacScript() OVERRIDE {
|
| - impl_->CancelSetPacScript();
|
| - }
|
| + virtual void CancelSetPacScript() OVERRIDE { impl_->CancelSetPacScript(); }
|
|
|
| virtual int SetPacScript(
|
| const scoped_refptr<ProxyResolverScriptData>& script_data,
|
| @@ -213,9 +200,7 @@ class BlockableProxyResolverFactory : public ProxyResolverFactory {
|
| public:
|
| BlockableProxyResolverFactory() : ProxyResolverFactory(true) {}
|
|
|
| - virtual ~BlockableProxyResolverFactory() {
|
| - STLDeleteElements(&resolvers_);
|
| - }
|
| + virtual ~BlockableProxyResolverFactory() { STLDeleteElements(&resolvers_); }
|
|
|
| virtual ProxyResolver* CreateProxyResolver() OVERRIDE {
|
| BlockableProxyResolver* resolver = new BlockableProxyResolver;
|
| @@ -223,9 +208,7 @@ class BlockableProxyResolverFactory : public ProxyResolverFactory {
|
| return new ForwardingProxyResolver(resolver);
|
| }
|
|
|
| - std::vector<BlockableProxyResolver*> resolvers() {
|
| - return resolvers_;
|
| - }
|
| + std::vector<BlockableProxyResolver*> resolvers() { return resolvers_; }
|
|
|
| private:
|
| std::vector<BlockableProxyResolver*> resolvers_;
|
| @@ -256,8 +239,11 @@ TEST(MultiThreadedProxyResolverTest, SingleThread_Basic) {
|
| TestCompletionCallback callback0;
|
| CapturingBoundNetLog log0;
|
| ProxyInfo results0;
|
| - rv = resolver.GetProxyForURL(GURL("http://request0"), &results0,
|
| - callback0.callback(), NULL, log0.bound());
|
| + rv = resolver.GetProxyForURL(GURL("http://request0"),
|
| + &results0,
|
| + callback0.callback(),
|
| + NULL,
|
| + log0.bound());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
|
|
| // Wait for request 0 to finish.
|
| @@ -279,20 +265,29 @@ TEST(MultiThreadedProxyResolverTest, SingleThread_Basic) {
|
|
|
| TestCompletionCallback callback1;
|
| ProxyInfo results1;
|
| - rv = resolver.GetProxyForURL(GURL("http://request1"), &results1,
|
| - callback1.callback(), NULL, BoundNetLog());
|
| + rv = resolver.GetProxyForURL(GURL("http://request1"),
|
| + &results1,
|
| + callback1.callback(),
|
| + NULL,
|
| + BoundNetLog());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
|
|
| TestCompletionCallback callback2;
|
| ProxyInfo results2;
|
| - rv = resolver.GetProxyForURL(GURL("http://request2"), &results2,
|
| - callback2.callback(), NULL, BoundNetLog());
|
| + rv = resolver.GetProxyForURL(GURL("http://request2"),
|
| + &results2,
|
| + callback2.callback(),
|
| + NULL,
|
| + BoundNetLog());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
|
|
| TestCompletionCallback callback3;
|
| ProxyInfo results3;
|
| - rv = resolver.GetProxyForURL(GURL("http://request3"), &results3,
|
| - callback3.callback(), NULL, BoundNetLog());
|
| + rv = resolver.GetProxyForURL(GURL("http://request3"),
|
| + &results3,
|
| + callback3.callback(),
|
| + NULL,
|
| + BoundNetLog());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
|
|
| // Wait for the requests to finish (they must finish in the order they were
|
| @@ -313,8 +308,7 @@ TEST(MultiThreadedProxyResolverTest, SingleThread_Basic) {
|
|
|
| // Tests that the NetLog is updated to include the time the request was waiting
|
| // to be scheduled to a thread.
|
| -TEST(MultiThreadedProxyResolverTest,
|
| - SingleThread_UpdatesNetLogWithThreadWait) {
|
| +TEST(MultiThreadedProxyResolverTest, SingleThread_UpdatesNetLogWithThreadWait) {
|
| const size_t kNumThreads = 1u;
|
| scoped_ptr<BlockableProxyResolver> mock(new BlockableProxyResolver);
|
| MultiThreadedProxyResolver resolver(
|
| @@ -336,8 +330,11 @@ TEST(MultiThreadedProxyResolverTest,
|
| TestCompletionCallback callback0;
|
| ProxyInfo results0;
|
| CapturingBoundNetLog log0;
|
| - rv = resolver.GetProxyForURL(GURL("http://request0"), &results0,
|
| - callback0.callback(), &request0, log0.bound());
|
| + rv = resolver.GetProxyForURL(GURL("http://request0"),
|
| + &results0,
|
| + callback0.callback(),
|
| + &request0,
|
| + log0.bound());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
|
|
| // Start 2 more requests (request1 and request2).
|
| @@ -345,16 +342,22 @@ TEST(MultiThreadedProxyResolverTest,
|
| TestCompletionCallback callback1;
|
| ProxyInfo results1;
|
| CapturingBoundNetLog log1;
|
| - rv = resolver.GetProxyForURL(GURL("http://request1"), &results1,
|
| - callback1.callback(), NULL, log1.bound());
|
| + rv = resolver.GetProxyForURL(GURL("http://request1"),
|
| + &results1,
|
| + callback1.callback(),
|
| + NULL,
|
| + log1.bound());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
|
|
| ProxyResolver::RequestHandle request2;
|
| TestCompletionCallback callback2;
|
| ProxyInfo results2;
|
| CapturingBoundNetLog log2;
|
| - rv = resolver.GetProxyForURL(GURL("http://request2"), &results2,
|
| - callback2.callback(), &request2, log2.bound());
|
| + rv = resolver.GetProxyForURL(GURL("http://request2"),
|
| + &results2,
|
| + callback2.callback(),
|
| + &request2,
|
| + log2.bound());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
|
|
| // Unblock the worker thread so the requests can continue running.
|
| @@ -371,8 +374,7 @@ TEST(MultiThreadedProxyResolverTest,
|
| log0.GetEntries(&entries0);
|
|
|
| ASSERT_EQ(2u, entries0.size());
|
| - EXPECT_EQ(NetLog::TYPE_SUBMITTED_TO_RESOLVER_THREAD,
|
| - entries0[0].type);
|
| + EXPECT_EQ(NetLog::TYPE_SUBMITTED_TO_RESOLVER_THREAD, entries0[0].type);
|
|
|
| // Check that request 1 completed as expected.
|
| EXPECT_EQ(1, callback1.WaitForResult());
|
| @@ -383,11 +385,9 @@ TEST(MultiThreadedProxyResolverTest,
|
|
|
| ASSERT_EQ(4u, entries1.size());
|
| EXPECT_TRUE(LogContainsBeginEvent(
|
| - entries1, 0,
|
| - NetLog::TYPE_WAITING_FOR_PROXY_RESOLVER_THREAD));
|
| + entries1, 0, NetLog::TYPE_WAITING_FOR_PROXY_RESOLVER_THREAD));
|
| EXPECT_TRUE(LogContainsEndEvent(
|
| - entries1, 1,
|
| - NetLog::TYPE_WAITING_FOR_PROXY_RESOLVER_THREAD));
|
| + entries1, 1, NetLog::TYPE_WAITING_FOR_PROXY_RESOLVER_THREAD));
|
|
|
| // Check that request 2 completed as expected.
|
| EXPECT_EQ(2, callback2.WaitForResult());
|
| @@ -398,11 +398,9 @@ TEST(MultiThreadedProxyResolverTest,
|
|
|
| ASSERT_EQ(4u, entries2.size());
|
| EXPECT_TRUE(LogContainsBeginEvent(
|
| - entries2, 0,
|
| - NetLog::TYPE_WAITING_FOR_PROXY_RESOLVER_THREAD));
|
| + entries2, 0, NetLog::TYPE_WAITING_FOR_PROXY_RESOLVER_THREAD));
|
| EXPECT_TRUE(LogContainsEndEvent(
|
| - entries2, 1,
|
| - NetLog::TYPE_WAITING_FOR_PROXY_RESOLVER_THREAD));
|
| + entries2, 1, NetLog::TYPE_WAITING_FOR_PROXY_RESOLVER_THREAD));
|
| }
|
|
|
| // Cancel a request which is in progress, and then cancel a request which
|
| @@ -411,8 +409,7 @@ TEST(MultiThreadedProxyResolverTest, SingleThread_CancelRequest) {
|
| const size_t kNumThreads = 1u;
|
| scoped_ptr<BlockableProxyResolver> mock(new BlockableProxyResolver);
|
| MultiThreadedProxyResolver resolver(
|
| - new ForwardingProxyResolverFactory(mock.get()),
|
| - kNumThreads);
|
| + new ForwardingProxyResolverFactory(mock.get()), kNumThreads);
|
|
|
| int rv;
|
|
|
| @@ -429,8 +426,11 @@ TEST(MultiThreadedProxyResolverTest, SingleThread_CancelRequest) {
|
| ProxyResolver::RequestHandle request0;
|
| TestCompletionCallback callback0;
|
| ProxyInfo results0;
|
| - rv = resolver.GetProxyForURL(GURL("http://request0"), &results0,
|
| - callback0.callback(), &request0, BoundNetLog());
|
| + rv = resolver.GetProxyForURL(GURL("http://request0"),
|
| + &results0,
|
| + callback0.callback(),
|
| + &request0,
|
| + BoundNetLog());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
|
|
| // Wait until requests 0 reaches the worker thread.
|
| @@ -440,21 +440,30 @@ TEST(MultiThreadedProxyResolverTest, SingleThread_CancelRequest) {
|
|
|
| TestCompletionCallback callback1;
|
| ProxyInfo results1;
|
| - rv = resolver.GetProxyForURL(GURL("http://request1"), &results1,
|
| - callback1.callback(), NULL, BoundNetLog());
|
| + rv = resolver.GetProxyForURL(GURL("http://request1"),
|
| + &results1,
|
| + callback1.callback(),
|
| + NULL,
|
| + BoundNetLog());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
|
|
| ProxyResolver::RequestHandle request2;
|
| TestCompletionCallback callback2;
|
| ProxyInfo results2;
|
| - rv = resolver.GetProxyForURL(GURL("http://request2"), &results2,
|
| - callback2.callback(), &request2, BoundNetLog());
|
| + rv = resolver.GetProxyForURL(GURL("http://request2"),
|
| + &results2,
|
| + callback2.callback(),
|
| + &request2,
|
| + BoundNetLog());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
|
|
| TestCompletionCallback callback3;
|
| ProxyInfo results3;
|
| - rv = resolver.GetProxyForURL(GURL("http://request3"), &results3,
|
| - callback3.callback(), NULL, BoundNetLog());
|
| + rv = resolver.GetProxyForURL(GURL("http://request3"),
|
| + &results3,
|
| + callback3.callback(),
|
| + NULL,
|
| + BoundNetLog());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
|
|
| // Cancel request0 (inprogress) and request2 (pending).
|
| @@ -506,20 +515,29 @@ TEST(MultiThreadedProxyResolverTest, SingleThread_CancelRequestByDeleting) {
|
|
|
| TestCompletionCallback callback0;
|
| ProxyInfo results0;
|
| - rv = resolver->GetProxyForURL(GURL("http://request0"), &results0,
|
| - callback0.callback(), NULL, BoundNetLog());
|
| + rv = resolver->GetProxyForURL(GURL("http://request0"),
|
| + &results0,
|
| + callback0.callback(),
|
| + NULL,
|
| + BoundNetLog());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
|
|
| TestCompletionCallback callback1;
|
| ProxyInfo results1;
|
| - rv = resolver->GetProxyForURL(GURL("http://request1"), &results1,
|
| - callback1.callback(), NULL, BoundNetLog());
|
| + rv = resolver->GetProxyForURL(GURL("http://request1"),
|
| + &results1,
|
| + callback1.callback(),
|
| + NULL,
|
| + BoundNetLog());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
|
|
| TestCompletionCallback callback2;
|
| ProxyInfo results2;
|
| - rv = resolver->GetProxyForURL(GURL("http://request2"), &results2,
|
| - callback2.callback(), NULL, BoundNetLog());
|
| + rv = resolver->GetProxyForURL(GURL("http://request2"),
|
| + &results2,
|
| + callback2.callback(),
|
| + NULL,
|
| + BoundNetLog());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
|
|
| // Wait until request 0 reaches the worker thread.
|
| @@ -610,9 +628,11 @@ TEST(MultiThreadedProxyResolverTest, ThreeThreads_Basic) {
|
|
|
| // Start request 0 -- this should run on thread 0 as there is nothing else
|
| // going on right now.
|
| - rv = resolver.GetProxyForURL(
|
| - GURL("http://request0"), &results[0], callback[0].callback(), &request[0],
|
| - BoundNetLog());
|
| + rv = resolver.GetProxyForURL(GURL("http://request0"),
|
| + &results[0],
|
| + callback[0].callback(),
|
| + &request[0],
|
| + BoundNetLog());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
|
|
| // Wait for request 0 to finish.
|
| @@ -629,9 +649,12 @@ TEST(MultiThreadedProxyResolverTest, ThreeThreads_Basic) {
|
| // have).
|
|
|
| for (int i = 1; i < kNumRequests; ++i) {
|
| - rv = resolver.GetProxyForURL(
|
| - GURL(base::StringPrintf("http://request%d", i)), &results[i],
|
| - callback[i].callback(), &request[i], BoundNetLog());
|
| + rv =
|
| + resolver.GetProxyForURL(GURL(base::StringPrintf("http://request%d", i)),
|
| + &results[i],
|
| + callback[i].callback(),
|
| + &request[i],
|
| + BoundNetLog());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
| }
|
|
|
| @@ -669,9 +692,9 @@ TEST(MultiThreadedProxyResolverTest, ThreeThreads_Basic) {
|
| ASSERT_EQ(4u, factory->resolvers().size());
|
|
|
| for (int i = 0; i < 3; ++i) {
|
| - EXPECT_EQ(
|
| - ASCIIToUTF16("pac script bytes"),
|
| - factory->resolvers()[i]->last_script_data()->utf16()) << "i=" << i;
|
| + EXPECT_EQ(ASCIIToUTF16("pac script bytes"),
|
| + factory->resolvers()[i]->last_script_data()->utf16())
|
| + << "i=" << i;
|
| }
|
|
|
| EXPECT_EQ(ASCIIToUTF16("xyz"),
|
| @@ -724,9 +747,11 @@ TEST(MultiThreadedProxyResolverTest, OneThreadBlocked) {
|
|
|
| factory->resolvers()[0]->Block();
|
|
|
| - rv = resolver.GetProxyForURL(
|
| - GURL("http://request0"), &results[0], callback[0].callback(), &request[0],
|
| - BoundNetLog());
|
| + rv = resolver.GetProxyForURL(GURL("http://request0"),
|
| + &results[0],
|
| + callback[0].callback(),
|
| + &request[0],
|
| + BoundNetLog());
|
|
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
| factory->resolvers()[0]->WaitUntilBlocked();
|
| @@ -735,9 +760,12 @@ TEST(MultiThreadedProxyResolverTest, OneThreadBlocked) {
|
| // since thread #1 is blocked.
|
|
|
| for (int i = 1; i < kNumRequests; ++i) {
|
| - rv = resolver.GetProxyForURL(
|
| - GURL(base::StringPrintf("http://request%d", i)),
|
| - &results[i], callback[i].callback(), &request[i], BoundNetLog());
|
| + rv =
|
| + resolver.GetProxyForURL(GURL(base::StringPrintf("http://request%d", i)),
|
| + &results[i],
|
| + callback[i].callback(),
|
| + &request[i],
|
| + BoundNetLog());
|
| EXPECT_EQ(ERR_IO_PENDING, rv);
|
| }
|
|
|
|
|