| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/base_paths.h" |
| 6 #include "base/file_util.h" |
| 7 #include "base/path_service.h" |
| 5 #include "base/perftimer.h" | 8 #include "base/perftimer.h" |
| 6 #include "base/string_util.h" | 9 #include "base/string_util.h" |
| 7 #include "net/base/mock_host_resolver.h" | 10 #include "net/base/mock_host_resolver.h" |
| 11 #include "net/base/net_errors.h" |
| 12 #include "net/proxy/proxy_info.h" |
| 8 #include "net/proxy/proxy_resolver_js_bindings.h" | 13 #include "net/proxy/proxy_resolver_js_bindings.h" |
| 9 #include "net/proxy/proxy_resolver_v8.h" | 14 #include "net/proxy/proxy_resolver_v8.h" |
| 10 #include "net/url_request/url_request_unittest.h" | 15 #include "net/test/test_server.h" |
| 11 #include "testing/gtest/include/gtest/gtest.h" | 16 #include "testing/gtest/include/gtest/gtest.h" |
| 12 | 17 |
| 13 #if defined(OS_WIN) | 18 #if defined(OS_WIN) |
| 14 #include "net/proxy/proxy_resolver_winhttp.h" | 19 #include "net/proxy/proxy_resolver_winhttp.h" |
| 15 #elif defined(OS_MACOSX) | 20 #elif defined(OS_MACOSX) |
| 16 #include "net/proxy/proxy_resolver_mac.h" | 21 #include "net/proxy/proxy_resolver_mac.h" |
| 17 #endif | 22 #endif |
| 18 | 23 |
| 19 // This class holds the URL to use for resolving, and the expected result. | 24 // This class holds the URL to use for resolving, and the expected result. |
| 20 // We track the expected result in order to make sure the performance | 25 // We track the expected result in order to make sure the performance |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 137 } | 142 } |
| 138 | 143 |
| 139 // Print how long the test ran for. | 144 // Print how long the test ran for. |
| 140 timer.Done(); | 145 timer.Done(); |
| 141 } | 146 } |
| 142 | 147 |
| 143 // Lazily startup an HTTP server (to serve the PAC script). | 148 // Lazily startup an HTTP server (to serve the PAC script). |
| 144 void InitHttpServer() { | 149 void InitHttpServer() { |
| 145 DCHECK(!resolver_->expects_pac_bytes()); | 150 DCHECK(!resolver_->expects_pac_bytes()); |
| 146 if (!server_) { | 151 if (!server_) { |
| 147 server_ = HTTPTestServer::CreateServer( | 152 server_ = net::HTTPTestServer::CreateServer( |
| 148 L"net/data/proxy_resolver_perftest"); | 153 L"net/data/proxy_resolver_perftest"); |
| 149 } | 154 } |
| 150 ASSERT_TRUE(server_.get() != NULL); | 155 ASSERT_TRUE(server_.get() != NULL); |
| 151 } | 156 } |
| 152 | 157 |
| 153 // Read the PAC script from disk and initialize the proxy resolver with it. | 158 // Read the PAC script from disk and initialize the proxy resolver with it. |
| 154 void LoadPacScriptIntoResolver(const std::string& script_name) { | 159 void LoadPacScriptIntoResolver(const std::string& script_name) { |
| 155 FilePath path; | 160 FilePath path; |
| 156 PathService::Get(base::DIR_SOURCE_ROOT, &path); | 161 PathService::Get(base::DIR_SOURCE_ROOT, &path); |
| 157 path = path.AppendASCII("net"); | 162 path = path.AppendASCII("net"); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 168 ASSERT_TRUE(ok); | 173 ASSERT_TRUE(ok); |
| 169 | 174 |
| 170 // Load the PAC script into the ProxyResolver. | 175 // Load the PAC script into the ProxyResolver. |
| 171 int rv = resolver_->SetPacScript( | 176 int rv = resolver_->SetPacScript( |
| 172 net::ProxyResolverScriptData::FromUTF8(file_contents), NULL); | 177 net::ProxyResolverScriptData::FromUTF8(file_contents), NULL); |
| 173 EXPECT_EQ(net::OK, rv); | 178 EXPECT_EQ(net::OK, rv); |
| 174 } | 179 } |
| 175 | 180 |
| 176 net::ProxyResolver* resolver_; | 181 net::ProxyResolver* resolver_; |
| 177 std::string resolver_name_; | 182 std::string resolver_name_; |
| 178 scoped_refptr<HTTPTestServer> server_; | 183 scoped_refptr<net::HTTPTestServer> server_; |
| 179 }; | 184 }; |
| 180 | 185 |
| 181 #if defined(OS_WIN) | 186 #if defined(OS_WIN) |
| 182 TEST(ProxyResolverPerfTest, ProxyResolverWinHttp) { | 187 TEST(ProxyResolverPerfTest, ProxyResolverWinHttp) { |
| 183 net::ProxyResolverWinHttp resolver; | 188 net::ProxyResolverWinHttp resolver; |
| 184 PacPerfSuiteRunner runner(&resolver, "ProxyResolverWinHttp"); | 189 PacPerfSuiteRunner runner(&resolver, "ProxyResolverWinHttp"); |
| 185 runner.RunAllTests(); | 190 runner.RunAllTests(); |
| 186 } | 191 } |
| 187 #elif defined(OS_MACOSX) | 192 #elif defined(OS_MACOSX) |
| 188 TEST(ProxyResolverPerfTest, ProxyResolverMac) { | 193 TEST(ProxyResolverPerfTest, ProxyResolverMac) { |
| 189 net::ProxyResolverMac resolver; | 194 net::ProxyResolverMac resolver; |
| 190 PacPerfSuiteRunner runner(&resolver, "ProxyResolverMac"); | 195 PacPerfSuiteRunner runner(&resolver, "ProxyResolverMac"); |
| 191 runner.RunAllTests(); | 196 runner.RunAllTests(); |
| 192 } | 197 } |
| 193 #endif | 198 #endif |
| 194 | 199 |
| 195 TEST(ProxyResolverPerfTest, ProxyResolverV8) { | 200 TEST(ProxyResolverPerfTest, ProxyResolverV8) { |
| 196 net::ProxyResolverJSBindings* js_bindings = | 201 net::ProxyResolverJSBindings* js_bindings = |
| 197 net::ProxyResolverJSBindings::CreateDefault( | 202 net::ProxyResolverJSBindings::CreateDefault( |
| 198 new net::MockHostResolver, NULL); | 203 new net::MockHostResolver, NULL); |
| 199 | 204 |
| 200 net::ProxyResolverV8 resolver(js_bindings); | 205 net::ProxyResolverV8 resolver(js_bindings); |
| 201 PacPerfSuiteRunner runner(&resolver, "ProxyResolverV8"); | 206 PacPerfSuiteRunner runner(&resolver, "ProxyResolverV8"); |
| 202 runner.RunAllTests(); | 207 runner.RunAllTests(); |
| 203 } | 208 } |
| 204 | 209 |
| OLD | NEW |