Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(627)

Side by Side Diff: chrome/browser/chrome_browser_main_unittest.cc

Issue 10830318: Use a different algorithm with the low entropy source for field trials. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/chrome_browser_main.cc ('k') | chrome/browser/metrics/metrics_service.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <string> 5 #include <string>
6 #include <vector> 6 #include <vector>
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/memory/scoped_vector.h" 9 #include "base/memory/scoped_vector.h"
10 #include "chrome/browser/chrome_browser_main.h" 10 #include "chrome/browser/chrome_browser_main.h"
(...skipping 15 matching lines...) Expand all
26 protected: 26 protected:
27 TestingPrefService pref_service_; 27 TestingPrefService pref_service_;
28 CommandLine command_line_; 28 CommandLine command_line_;
29 }; 29 };
30 30
31 TEST_F(BrowserMainTest, WarmConnectionFieldTrial_WarmestSocket) { 31 TEST_F(BrowserMainTest, WarmConnectionFieldTrial_WarmestSocket) {
32 command_line_.AppendSwitchASCII(switches::kSocketReusePolicy, "0"); 32 command_line_.AppendSwitchASCII(switches::kSocketReusePolicy, "0");
33 33
34 scoped_ptr<content::MainFunctionParams> params( 34 scoped_ptr<content::MainFunctionParams> params(
35 new content::MainFunctionParams(command_line_)); 35 new content::MainFunctionParams(command_line_));
36 scoped_ptr<content::BrowserMainParts> bw( 36 scoped_ptr<content::BrowserMainParts> browser_main_parts(
37 content::GetContentClient()->browser()->CreateBrowserMainParts(*params)); 37 content::GetContentClient()->browser()->CreateBrowserMainParts(*params));
38 ChromeBrowserMainParts* cbw = static_cast<ChromeBrowserMainParts*>(bw.get()); 38 ChromeBrowserMainParts* chrome_main_parts =
39 EXPECT_TRUE(cbw); 39 static_cast<ChromeBrowserMainParts*>(browser_main_parts.get());
40 if (cbw) { 40 EXPECT_TRUE(chrome_main_parts);
41 cbw->browser_field_trials_.WarmConnectionFieldTrial(); 41 if (chrome_main_parts) {
42 base::FieldTrialList field_trial_list_(NULL);
43 chrome_main_parts->browser_field_trials_.WarmConnectionFieldTrial();
42 EXPECT_EQ(0, net::GetSocketReusePolicy()); 44 EXPECT_EQ(0, net::GetSocketReusePolicy());
43 } 45 }
44 } 46 }
45 47
46 TEST_F(BrowserMainTest, WarmConnectionFieldTrial_Random) { 48 TEST_F(BrowserMainTest, WarmConnectionFieldTrial_Random) {
47 scoped_ptr<content::MainFunctionParams> params( 49 scoped_ptr<content::MainFunctionParams> params(
48 new content::MainFunctionParams(command_line_)); 50 new content::MainFunctionParams(command_line_));
49 scoped_ptr<content::BrowserMainParts> bw( 51 scoped_ptr<content::BrowserMainParts> browser_main_parts(
50 content::GetContentClient()->browser()->CreateBrowserMainParts(*params)); 52 content::GetContentClient()->browser()->CreateBrowserMainParts(*params));
51 ChromeBrowserMainParts* cbw = static_cast<ChromeBrowserMainParts*>(bw.get()); 53 ChromeBrowserMainParts* chrome_main_parts =
52 EXPECT_TRUE(cbw); 54 static_cast<ChromeBrowserMainParts*>(browser_main_parts.get());
53 if (cbw) { 55 EXPECT_TRUE(chrome_main_parts);
56 if (chrome_main_parts) {
54 const int kNumRuns = 1000; 57 const int kNumRuns = 1000;
55 for (int i = 0; i < kNumRuns; i++) { 58 for (int i = 0; i < kNumRuns; i++) {
56 cbw->browser_field_trials_.WarmConnectionFieldTrial(); 59 base::FieldTrialList field_trial_list_(NULL);
60 chrome_main_parts->browser_field_trials_.WarmConnectionFieldTrial();
57 int val = net::GetSocketReusePolicy(); 61 int val = net::GetSocketReusePolicy();
58 EXPECT_LE(val, 2); 62 EXPECT_LE(val, 2);
59 EXPECT_GE(val, 0); 63 EXPECT_GE(val, 0);
60 } 64 }
61 } 65 }
62 } 66 }
67
63 #if GTEST_HAS_DEATH_TEST 68 #if GTEST_HAS_DEATH_TEST
64 TEST_F(BrowserMainTest, WarmConnectionFieldTrial_Invalid) { 69 TEST_F(BrowserMainTest, WarmConnectionFieldTrial_Invalid) {
65 command_line_.AppendSwitchASCII(switches::kSocketReusePolicy, "100"); 70 command_line_.AppendSwitchASCII(switches::kSocketReusePolicy, "100");
66 71
67 scoped_ptr<content::MainFunctionParams> params( 72 scoped_ptr<content::MainFunctionParams> params(
68 new content::MainFunctionParams(command_line_)); 73 new content::MainFunctionParams(command_line_));
69 // This test ends up launching a new process, and that doesn't initialize the 74 // This test ends up launching a new process, and that doesn't initialize the
70 // ContentClient interfaces. 75 // ContentClient interfaces.
71 scoped_ptr<content::BrowserMainParts> bw; 76 scoped_ptr<content::BrowserMainParts> browser_main_parts;
72 if (content::GetContentClient()) { 77 if (content::GetContentClient()) {
73 bw.reset(content::GetContentClient()->browser()->CreateBrowserMainParts( 78 browser_main_parts.reset(content::GetContentClient()->browser()->
74 *params)); 79 CreateBrowserMainParts(*params));
75 } else { 80 } else {
76 chrome::ChromeContentBrowserClient ccbc; 81 chrome::ChromeContentBrowserClient client;
77 bw.reset(ccbc.CreateBrowserMainParts(*params)); 82 browser_main_parts.reset(client.CreateBrowserMainParts(*params));
78 } 83 }
79 ChromeBrowserMainParts* cbw = static_cast<ChromeBrowserMainParts*>(bw.get()); 84 ChromeBrowserMainParts* parts =
80 EXPECT_TRUE(cbw); 85 static_cast<ChromeBrowserMainParts*>(browser_main_parts.get());
81 if (cbw) { 86 EXPECT_TRUE(parts);
87 if (parts) {
82 #if defined(NDEBUG) && defined(DCHECK_ALWAYS_ON) 88 #if defined(NDEBUG) && defined(DCHECK_ALWAYS_ON)
83 EXPECT_DEATH(cbw->browser_field_trials_.WarmConnectionFieldTrial(), 89 EXPECT_DEATH(parts->browser_field_trials_.WarmConnectionFieldTrial(),
84 "Not a valid socket reuse policy group"); 90 "Not a valid socket reuse policy group");
85 #else 91 #else
86 EXPECT_DEBUG_DEATH(cbw->browser_field_trials_.WarmConnectionFieldTrial(), 92 EXPECT_DEBUG_DEATH(parts->browser_field_trials_.WarmConnectionFieldTrial(),
87 "Not a valid socket reuse policy group"); 93 "Not a valid socket reuse policy group");
88 #endif 94 #endif
89 } 95 }
90 } 96 }
91 #endif 97 #endif
OLDNEW
« no previous file with comments | « chrome/browser/chrome_browser_main.cc ('k') | chrome/browser/metrics/metrics_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698