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

Side by Side Diff: base/trace_event/trace_config_unittest.cc

Issue 1165673002: [Startup Tracing] Hook up TraceConfig and remove CategoryFilter & TraceOptions (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years, 6 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
« no previous file with comments | « base/trace_event/trace_config.cc ('k') | base/trace_event/trace_event.gypi » ('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) 2015 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2015 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/trace_event/trace_config.h" 5 #include "base/trace_event/trace_config.h"
6 #include "testing/gtest/include/gtest/gtest.h" 6 #include "testing/gtest/include/gtest/gtest.h"
7 7
8 namespace base { 8 namespace base {
9 namespace trace_event { 9 namespace trace_event {
10 10
11 namespace { 11 namespace {
12 12
13 const char kDefaultTraceConfigString[] = 13 const char kDefaultTraceConfigString[] =
14 "{" 14 "{"
15 "\"enable_argument_filter\":false," 15 "\"enable_argument_filter\":false,"
16 "\"enable_sampling\":false," 16 "\"enable_sampling\":false,"
17 "\"enable_systrace\":false," 17 "\"enable_systrace\":false,"
18 "\"excluded_categories\":[\"*Debug\",\"*Test\"]," 18 "\"excluded_categories\":[\"*Debug\",\"*Test\"],"
19 "\"record_mode\":\"record-until-full\"" 19 "\"record_mode\":\"record-until-full\""
20 "}"; 20 "}";
21 21
22 } // namespace 22 } // namespace
23 23
24 TEST(TraceConfigTest, TraceConfigFromValidLegacyStrings) { 24 TEST(TraceConfigTest, TraceConfigFromValidLegacyFormat) {
25 // From trace options strings 25 // From trace options strings
26 TraceConfig config("", "record-until-full"); 26 TraceConfig config("", "record-until-full");
27 EXPECT_EQ(RECORD_UNTIL_FULL, config.record_mode_); 27 EXPECT_EQ(RECORD_UNTIL_FULL, config.GetTraceRecordMode());
28 EXPECT_FALSE(config.enable_sampling_); 28 EXPECT_FALSE(config.IsSamplingEnabled());
29 EXPECT_FALSE(config.enable_systrace_); 29 EXPECT_FALSE(config.IsSystraceEnabled());
30 EXPECT_FALSE(config.enable_argument_filter_); 30 EXPECT_FALSE(config.IsArgumentFilterEnabled());
31 EXPECT_STREQ("record-until-full", config.ToTraceOptionsString().c_str()); 31 EXPECT_STREQ("record-until-full", config.ToTraceOptionsString().c_str());
32 32
33 config = TraceConfig("", "record-continuously"); 33 config = TraceConfig("", "record-continuously");
34 EXPECT_EQ(RECORD_CONTINUOUSLY, config.record_mode_); 34 EXPECT_EQ(RECORD_CONTINUOUSLY, config.GetTraceRecordMode());
35 EXPECT_FALSE(config.enable_sampling_); 35 EXPECT_FALSE(config.IsSamplingEnabled());
36 EXPECT_FALSE(config.enable_systrace_); 36 EXPECT_FALSE(config.IsSystraceEnabled());
37 EXPECT_FALSE(config.enable_argument_filter_); 37 EXPECT_FALSE(config.IsArgumentFilterEnabled());
38 EXPECT_STREQ("record-continuously", config.ToTraceOptionsString().c_str()); 38 EXPECT_STREQ("record-continuously", config.ToTraceOptionsString().c_str());
39 39
40 config = TraceConfig("", "trace-to-console"); 40 config = TraceConfig("", "trace-to-console");
41 EXPECT_EQ(ECHO_TO_CONSOLE, config.record_mode_); 41 EXPECT_EQ(ECHO_TO_CONSOLE, config.GetTraceRecordMode());
42 EXPECT_FALSE(config.enable_sampling_); 42 EXPECT_FALSE(config.IsSamplingEnabled());
43 EXPECT_FALSE(config.enable_systrace_); 43 EXPECT_FALSE(config.IsSystraceEnabled());
44 EXPECT_FALSE(config.enable_argument_filter_); 44 EXPECT_FALSE(config.IsArgumentFilterEnabled());
45 EXPECT_STREQ("trace-to-console", config.ToTraceOptionsString().c_str()); 45 EXPECT_STREQ("trace-to-console", config.ToTraceOptionsString().c_str());
46 46
47 config = TraceConfig("", "record-as-much-as-possible"); 47 config = TraceConfig("", "record-as-much-as-possible");
48 EXPECT_EQ(RECORD_AS_MUCH_AS_POSSIBLE, config.record_mode_); 48 EXPECT_EQ(RECORD_AS_MUCH_AS_POSSIBLE, config.GetTraceRecordMode());
49 EXPECT_FALSE(config.enable_sampling_); 49 EXPECT_FALSE(config.IsSamplingEnabled());
50 EXPECT_FALSE(config.enable_systrace_); 50 EXPECT_FALSE(config.IsSystraceEnabled());
51 EXPECT_FALSE(config.enable_argument_filter_); 51 EXPECT_FALSE(config.IsArgumentFilterEnabled());
52 EXPECT_STREQ("record-as-much-as-possible", 52 EXPECT_STREQ("record-as-much-as-possible",
53 config.ToTraceOptionsString().c_str()); 53 config.ToTraceOptionsString().c_str());
54 54
55 config = TraceConfig("", "record-until-full, enable-sampling"); 55 config = TraceConfig("", "record-until-full, enable-sampling");
56 EXPECT_EQ(RECORD_UNTIL_FULL, config.record_mode_); 56 EXPECT_EQ(RECORD_UNTIL_FULL, config.GetTraceRecordMode());
57 EXPECT_TRUE(config.enable_sampling_); 57 EXPECT_TRUE(config.IsSamplingEnabled());
58 EXPECT_FALSE(config.enable_systrace_); 58 EXPECT_FALSE(config.IsSystraceEnabled());
59 EXPECT_FALSE(config.enable_argument_filter_); 59 EXPECT_FALSE(config.IsArgumentFilterEnabled());
60 EXPECT_STREQ("record-until-full,enable-sampling", 60 EXPECT_STREQ("record-until-full,enable-sampling",
61 config.ToTraceOptionsString().c_str()); 61 config.ToTraceOptionsString().c_str());
62 62
63 config = TraceConfig("", "enable-systrace, record-continuously"); 63 config = TraceConfig("", "enable-systrace, record-continuously");
64 EXPECT_EQ(RECORD_CONTINUOUSLY, config.record_mode_); 64 EXPECT_EQ(RECORD_CONTINUOUSLY, config.GetTraceRecordMode());
65 EXPECT_FALSE(config.enable_sampling_); 65 EXPECT_FALSE(config.IsSamplingEnabled());
66 EXPECT_TRUE(config.enable_systrace_); 66 EXPECT_TRUE(config.IsSystraceEnabled());
67 EXPECT_FALSE(config.enable_argument_filter_); 67 EXPECT_FALSE(config.IsArgumentFilterEnabled());
68 EXPECT_STREQ("record-continuously,enable-systrace", 68 EXPECT_STREQ("record-continuously,enable-systrace",
69 config.ToTraceOptionsString().c_str()); 69 config.ToTraceOptionsString().c_str());
70 70
71 config = TraceConfig("", "enable-argument-filter,record-as-much-as-possible"); 71 config = TraceConfig("", "enable-argument-filter,record-as-much-as-possible");
72 EXPECT_EQ(RECORD_AS_MUCH_AS_POSSIBLE, config.record_mode_); 72 EXPECT_EQ(RECORD_AS_MUCH_AS_POSSIBLE, config.GetTraceRecordMode());
73 EXPECT_FALSE(config.enable_sampling_); 73 EXPECT_FALSE(config.IsSamplingEnabled());
74 EXPECT_FALSE(config.enable_systrace_); 74 EXPECT_FALSE(config.IsSystraceEnabled());
75 EXPECT_TRUE(config.enable_argument_filter_); 75 EXPECT_TRUE(config.IsArgumentFilterEnabled());
76 EXPECT_STREQ("record-as-much-as-possible,enable-argument-filter", 76 EXPECT_STREQ("record-as-much-as-possible,enable-argument-filter",
77 config.ToTraceOptionsString().c_str()); 77 config.ToTraceOptionsString().c_str());
78 78
79 config = TraceConfig( 79 config = TraceConfig(
80 "", 80 "",
81 "enable-systrace,trace-to-console,enable-sampling,enable-argument-filter"); 81 "enable-systrace,trace-to-console,enable-sampling,enable-argument-filter");
82 EXPECT_EQ(ECHO_TO_CONSOLE, config.record_mode_); 82 EXPECT_EQ(ECHO_TO_CONSOLE, config.GetTraceRecordMode());
83 EXPECT_TRUE(config.enable_sampling_); 83 EXPECT_TRUE(config.IsSamplingEnabled());
84 EXPECT_TRUE(config.enable_systrace_); 84 EXPECT_TRUE(config.IsSystraceEnabled());
85 EXPECT_TRUE(config.enable_argument_filter_); 85 EXPECT_TRUE(config.IsArgumentFilterEnabled());
86 EXPECT_STREQ( 86 EXPECT_STREQ(
87 "trace-to-console,enable-sampling,enable-systrace,enable-argument-filter", 87 "trace-to-console,enable-sampling,enable-systrace,enable-argument-filter",
88 config.ToTraceOptionsString().c_str()); 88 config.ToTraceOptionsString().c_str());
89 89
90 config = TraceConfig( 90 config = TraceConfig(
91 "", "record-continuously, record-until-full, trace-to-console"); 91 "", "record-continuously, record-until-full, trace-to-console");
92 EXPECT_EQ(ECHO_TO_CONSOLE, config.record_mode_); 92 EXPECT_EQ(ECHO_TO_CONSOLE, config.GetTraceRecordMode());
93 EXPECT_FALSE(config.enable_systrace_); 93 EXPECT_FALSE(config.IsSamplingEnabled());
94 EXPECT_FALSE(config.enable_sampling_); 94 EXPECT_FALSE(config.IsSystraceEnabled());
95 EXPECT_FALSE(config.enable_argument_filter_); 95 EXPECT_FALSE(config.IsArgumentFilterEnabled());
96 EXPECT_STREQ("trace-to-console", config.ToTraceOptionsString().c_str()); 96 EXPECT_STREQ("trace-to-console", config.ToTraceOptionsString().c_str());
97 97
98 // From TraceRecordMode
99 config = TraceConfig("", RECORD_UNTIL_FULL);
100 EXPECT_EQ(RECORD_UNTIL_FULL, config.GetTraceRecordMode());
101 EXPECT_FALSE(config.IsSamplingEnabled());
102 EXPECT_FALSE(config.IsSystraceEnabled());
103 EXPECT_FALSE(config.IsArgumentFilterEnabled());
104 EXPECT_STREQ("record-until-full", config.ToTraceOptionsString().c_str());
105
106 config = TraceConfig("", RECORD_CONTINUOUSLY);
107 EXPECT_EQ(RECORD_CONTINUOUSLY, config.GetTraceRecordMode());
108 EXPECT_FALSE(config.IsSamplingEnabled());
109 EXPECT_FALSE(config.IsSystraceEnabled());
110 EXPECT_FALSE(config.IsArgumentFilterEnabled());
111 EXPECT_STREQ("record-continuously", config.ToTraceOptionsString().c_str());
112
113 config = TraceConfig("", ECHO_TO_CONSOLE);
114 EXPECT_EQ(ECHO_TO_CONSOLE, config.GetTraceRecordMode());
115 EXPECT_FALSE(config.IsSamplingEnabled());
116 EXPECT_FALSE(config.IsSystraceEnabled());
117 EXPECT_FALSE(config.IsArgumentFilterEnabled());
118 EXPECT_STREQ("trace-to-console", config.ToTraceOptionsString().c_str());
119
120 config = TraceConfig("", RECORD_AS_MUCH_AS_POSSIBLE);
121 EXPECT_EQ(RECORD_AS_MUCH_AS_POSSIBLE, config.GetTraceRecordMode());
122 EXPECT_FALSE(config.IsSamplingEnabled());
123 EXPECT_FALSE(config.IsSystraceEnabled());
124 EXPECT_FALSE(config.IsArgumentFilterEnabled());
125 EXPECT_STREQ("record-as-much-as-possible",
126 config.ToTraceOptionsString().c_str());
127
98 // From category filter strings 128 // From category filter strings
99 config = TraceConfig("-*Debug,-*Test", ""); 129 config = TraceConfig("-*Debug,-*Test", "");
100 EXPECT_STREQ("-*Debug,-*Test", config.ToCategoryFilterString().c_str()); 130 EXPECT_STREQ("-*Debug,-*Test", config.ToCategoryFilterString().c_str());
101 131
102 config = TraceConfig("included,-excluded,inc_pattern*,-exc_pattern*", ""); 132 config = TraceConfig("included,-excluded,inc_pattern*,-exc_pattern*", "");
103 EXPECT_STREQ("included,inc_pattern*,-excluded,-exc_pattern*", 133 EXPECT_STREQ("included,inc_pattern*,-excluded,-exc_pattern*",
104 config.ToCategoryFilterString().c_str()); 134 config.ToCategoryFilterString().c_str());
105 135
106 config = TraceConfig("only_inc_cat", ""); 136 config = TraceConfig("only_inc_cat", "");
107 EXPECT_STREQ("only_inc_cat", config.ToCategoryFilterString().c_str()); 137 EXPECT_STREQ("only_inc_cat", config.ToCategoryFilterString().c_str());
108 138
109 config = TraceConfig("-only_exc_cat", ""); 139 config = TraceConfig("-only_exc_cat", "");
110 EXPECT_STREQ("-only_exc_cat", config.ToCategoryFilterString().c_str()); 140 EXPECT_STREQ("-only_exc_cat", config.ToCategoryFilterString().c_str());
111 141
112 config = TraceConfig("disabled-by-default-cc,-excluded", ""); 142 config = TraceConfig("disabled-by-default-cc,-excluded", "");
113 EXPECT_STREQ("disabled-by-default-cc,-excluded", 143 EXPECT_STREQ("disabled-by-default-cc,-excluded",
114 config.ToCategoryFilterString().c_str()); 144 config.ToCategoryFilterString().c_str());
115 145
116 config = TraceConfig("disabled-by-default-cc,included", ""); 146 config = TraceConfig("disabled-by-default-cc,included", "");
117 EXPECT_STREQ("included,disabled-by-default-cc", 147 EXPECT_STREQ("included,disabled-by-default-cc",
118 config.ToCategoryFilterString().c_str()); 148 config.ToCategoryFilterString().c_str());
119 149
120 config = TraceConfig("DELAY(test.Delay1;16),included", ""); 150 config = TraceConfig("DELAY(test.Delay1;16),included", "");
121 EXPECT_STREQ("included,DELAY(test.Delay1;16)", 151 EXPECT_STREQ("included,DELAY(test.Delay1;16)",
122 config.ToCategoryFilterString().c_str()); 152 config.ToCategoryFilterString().c_str());
123 153
124 // From both trace options and category filter strings 154 // From both trace options and category filter strings
125 config = TraceConfig("", ""); 155 config = TraceConfig("", "");
126 EXPECT_EQ(RECORD_UNTIL_FULL, config.record_mode_); 156 EXPECT_EQ(RECORD_UNTIL_FULL, config.GetTraceRecordMode());
127 EXPECT_FALSE(config.enable_systrace_); 157 EXPECT_FALSE(config.IsSamplingEnabled());
128 EXPECT_FALSE(config.enable_sampling_); 158 EXPECT_FALSE(config.IsSystraceEnabled());
129 EXPECT_FALSE(config.enable_argument_filter_); 159 EXPECT_FALSE(config.IsArgumentFilterEnabled());
130 EXPECT_STREQ("", config.ToCategoryFilterString().c_str()); 160 EXPECT_STREQ("", config.ToCategoryFilterString().c_str());
131 EXPECT_STREQ("record-until-full", config.ToTraceOptionsString().c_str()); 161 EXPECT_STREQ("record-until-full", config.ToTraceOptionsString().c_str());
132 162
133 config = TraceConfig("included,-excluded,inc_pattern*,-exc_pattern*", 163 config = TraceConfig("included,-excluded,inc_pattern*,-exc_pattern*",
134 "enable-systrace, trace-to-console, enable-sampling"); 164 "enable-systrace, trace-to-console, enable-sampling");
165 EXPECT_EQ(ECHO_TO_CONSOLE, config.GetTraceRecordMode());
166 EXPECT_TRUE(config.IsSamplingEnabled());
167 EXPECT_TRUE(config.IsSystraceEnabled());
168 EXPECT_FALSE(config.IsArgumentFilterEnabled());
135 EXPECT_STREQ("included,inc_pattern*,-excluded,-exc_pattern*", 169 EXPECT_STREQ("included,inc_pattern*,-excluded,-exc_pattern*",
136 config.ToCategoryFilterString().c_str()); 170 config.ToCategoryFilterString().c_str());
137 EXPECT_STREQ("trace-to-console,enable-sampling,enable-systrace", 171 EXPECT_STREQ("trace-to-console,enable-sampling,enable-systrace",
138 config.ToTraceOptionsString().c_str()); 172 config.ToTraceOptionsString().c_str());
139 173
140 // From both trace options and category filter strings with spaces. 174 // From both trace options and category filter strings with spaces.
141 config = TraceConfig(" included , -excluded, inc_pattern*, ,-exc_pattern* ", 175 config = TraceConfig(" included , -excluded, inc_pattern*, ,-exc_pattern* ",
142 "enable-systrace, ,trace-to-console, enable-sampling "); 176 "enable-systrace, ,trace-to-console, enable-sampling ");
177 EXPECT_EQ(ECHO_TO_CONSOLE, config.GetTraceRecordMode());
178 EXPECT_TRUE(config.IsSamplingEnabled());
179 EXPECT_TRUE(config.IsSystraceEnabled());
180 EXPECT_FALSE(config.IsArgumentFilterEnabled());
143 EXPECT_STREQ("included,inc_pattern*,-excluded,-exc_pattern*", 181 EXPECT_STREQ("included,inc_pattern*,-excluded,-exc_pattern*",
144 config.ToCategoryFilterString().c_str()); 182 config.ToCategoryFilterString().c_str());
145 EXPECT_STREQ("trace-to-console,enable-sampling,enable-systrace", 183 EXPECT_STREQ("trace-to-console,enable-sampling,enable-systrace",
146 config.ToTraceOptionsString().c_str()); 184 config.ToTraceOptionsString().c_str());
185
186 // From category filter string and TraceRecordMode
187 config = TraceConfig("included,-excluded,inc_pattern*,-exc_pattern*",
188 RECORD_CONTINUOUSLY);
189 EXPECT_EQ(RECORD_CONTINUOUSLY, config.GetTraceRecordMode());
190 EXPECT_FALSE(config.IsSystraceEnabled());
191 EXPECT_FALSE(config.IsSamplingEnabled());
192 EXPECT_FALSE(config.IsArgumentFilterEnabled());
193 EXPECT_STREQ("included,inc_pattern*,-excluded,-exc_pattern*",
194 config.ToCategoryFilterString().c_str());
195 EXPECT_STREQ("record-continuously", config.ToTraceOptionsString().c_str());
147 } 196 }
148 197
149 TEST(TraceConfigTest, TraceConfigFromInvalidLegacyStrings) { 198 TEST(TraceConfigTest, TraceConfigFromInvalidLegacyStrings) {
150 TraceConfig config("", "foo-bar-baz"); 199 TraceConfig config("", "foo-bar-baz");
151 EXPECT_EQ(RECORD_UNTIL_FULL, config.record_mode_); 200 EXPECT_EQ(RECORD_UNTIL_FULL, config.GetTraceRecordMode());
152 EXPECT_FALSE(config.enable_systrace_); 201 EXPECT_FALSE(config.IsSamplingEnabled());
153 EXPECT_FALSE(config.enable_sampling_); 202 EXPECT_FALSE(config.IsSystraceEnabled());
154 EXPECT_FALSE(config.enable_argument_filter_); 203 EXPECT_FALSE(config.IsArgumentFilterEnabled());
155 EXPECT_STREQ("", config.ToCategoryFilterString().c_str()); 204 EXPECT_STREQ("", config.ToCategoryFilterString().c_str());
156 EXPECT_STREQ("record-until-full", config.ToTraceOptionsString().c_str()); 205 EXPECT_STREQ("record-until-full", config.ToTraceOptionsString().c_str());
157 206
158 config = TraceConfig("arbitrary-category", "foo-bar-baz, enable-systrace"); 207 config = TraceConfig("arbitrary-category", "foo-bar-baz, enable-systrace");
159 EXPECT_EQ(RECORD_UNTIL_FULL, config.record_mode_); 208 EXPECT_EQ(RECORD_UNTIL_FULL, config.GetTraceRecordMode());
160 EXPECT_TRUE(config.enable_systrace_); 209 EXPECT_FALSE(config.IsSamplingEnabled());
161 EXPECT_FALSE(config.enable_sampling_); 210 EXPECT_TRUE(config.IsSystraceEnabled());
162 EXPECT_FALSE(config.enable_argument_filter_); 211 EXPECT_FALSE(config.IsArgumentFilterEnabled());
163 EXPECT_STREQ("arbitrary-category", config.ToCategoryFilterString().c_str()); 212 EXPECT_STREQ("arbitrary-category", config.ToCategoryFilterString().c_str());
164 EXPECT_STREQ("record-until-full,enable-systrace", 213 EXPECT_STREQ("record-until-full,enable-systrace",
165 config.ToTraceOptionsString().c_str()); 214 config.ToTraceOptionsString().c_str());
166 215
167 const char* const configs[] = { 216 const char* const configs[] = {
168 "", 217 "",
169 "DELAY(", 218 "DELAY(",
170 "DELAY(;", 219 "DELAY(;",
171 "DELAY(;)", 220 "DELAY(;)",
172 "DELAY(test.Delay)", 221 "DELAY(test.Delay)",
173 "DELAY(test.Delay;)" 222 "DELAY(test.Delay;)"
174 }; 223 };
175 for (size_t i = 0; i < arraysize(configs); i++) { 224 for (size_t i = 0; i < arraysize(configs); i++) {
176 TraceConfig tc(configs[i], ""); 225 TraceConfig tc(configs[i], "");
177 EXPECT_EQ(0u, tc.GetSyntheticDelayValues().size()); 226 EXPECT_EQ(0u, tc.GetSyntheticDelayValues().size());
178 } 227 }
179 } 228 }
180 229
181 TEST(TraceConfigTest, ConstructDefaultTraceConfig) { 230 TEST(TraceConfigTest, ConstructDefaultTraceConfig) {
182 // Make sure that upon an empty string, we fall back to the default config. 231 // Make sure that upon an empty string, we fall back to the default config.
183 TraceConfig tc; 232 TraceConfig tc;
184 EXPECT_STREQ(kDefaultTraceConfigString, tc.ToString().c_str()); 233 EXPECT_STREQ(kDefaultTraceConfigString, tc.ToString().c_str());
185 EXPECT_TRUE(tc.record_mode_ == RECORD_UNTIL_FULL); 234 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode());
186 EXPECT_FALSE(tc.enable_sampling_); 235 EXPECT_FALSE(tc.IsSamplingEnabled());
187 EXPECT_FALSE(tc.enable_systrace_); 236 EXPECT_FALSE(tc.IsSystraceEnabled());
188 EXPECT_FALSE(tc.enable_argument_filter_); 237 EXPECT_FALSE(tc.IsArgumentFilterEnabled());
189 EXPECT_STREQ("-*Debug,-*Test", tc.ToCategoryFilterString().c_str()); 238 EXPECT_STREQ("-*Debug,-*Test", tc.ToCategoryFilterString().c_str());
190 239
191 EXPECT_FALSE(tc.IsCategoryEnabled("Category1")); 240 EXPECT_FALSE(tc.IsCategoryEnabled("Category1"));
192 EXPECT_FALSE(tc.IsCategoryEnabled("not-excluded-category")); 241 EXPECT_FALSE(tc.IsCategoryEnabled("not-excluded-category"));
193 EXPECT_FALSE(tc.IsCategoryEnabled("CategoryTest")); 242 EXPECT_FALSE(tc.IsCategoryEnabled("CategoryTest"));
194 EXPECT_FALSE(tc.IsCategoryEnabled("CategoryDebug")); 243 EXPECT_FALSE(tc.IsCategoryEnabled("CategoryDebug"));
195 EXPECT_FALSE(tc.IsCategoryEnabled("disabled-by-default-cc")); 244 EXPECT_FALSE(tc.IsCategoryEnabled("disabled-by-default-cc"));
196 245
197 EXPECT_TRUE(tc.IsCategoryGroupEnabled("Category1")); 246 EXPECT_TRUE(tc.IsCategoryGroupEnabled("Category1"));
198 EXPECT_TRUE(tc.IsCategoryGroupEnabled("not-excluded-category")); 247 EXPECT_TRUE(tc.IsCategoryGroupEnabled("not-excluded-category"));
(...skipping 17 matching lines...) Expand all
216 "\"excluded_categories\":[\"excluded\",\"exc_pattern*\"]," 265 "\"excluded_categories\":[\"excluded\",\"exc_pattern*\"],"
217 "\"included_categories\":[\"included\"," 266 "\"included_categories\":[\"included\","
218 "\"inc_pattern*\"," 267 "\"inc_pattern*\","
219 "\"disabled-by-default-cc\"]," 268 "\"disabled-by-default-cc\"],"
220 "\"record_mode\":\"record-continuously\"," 269 "\"record_mode\":\"record-continuously\","
221 "\"synthetic_delays\":[\"test.Delay1;16\",\"test.Delay2;32\"]" 270 "\"synthetic_delays\":[\"test.Delay1;16\",\"test.Delay2;32\"]"
222 "}"; 271 "}";
223 TraceConfig tc(config_string); 272 TraceConfig tc(config_string);
224 273
225 EXPECT_STREQ(config_string, tc.ToString().c_str()); 274 EXPECT_STREQ(config_string, tc.ToString().c_str());
226 EXPECT_TRUE(tc.record_mode_ == RECORD_CONTINUOUSLY); 275 EXPECT_EQ(RECORD_CONTINUOUSLY, tc.GetTraceRecordMode());
227 EXPECT_TRUE(tc.enable_sampling_); 276 EXPECT_TRUE(tc.IsSamplingEnabled());
228 EXPECT_TRUE(tc.enable_systrace_); 277 EXPECT_TRUE(tc.IsSystraceEnabled());
229 EXPECT_TRUE(tc.enable_argument_filter_); 278 EXPECT_TRUE(tc.IsArgumentFilterEnabled());
230 EXPECT_STREQ("included,inc_pattern*,disabled-by-default-cc,-excluded," 279 EXPECT_STREQ("included,inc_pattern*,disabled-by-default-cc,-excluded,"
231 "-exc_pattern*,DELAY(test.Delay1;16),DELAY(test.Delay2;32)", 280 "-exc_pattern*,DELAY(test.Delay1;16),DELAY(test.Delay2;32)",
232 tc.ToCategoryFilterString().c_str()); 281 tc.ToCategoryFilterString().c_str());
233 282
234 EXPECT_TRUE(tc.IsCategoryEnabled("included")); 283 EXPECT_TRUE(tc.IsCategoryEnabled("included"));
235 EXPECT_TRUE(tc.IsCategoryEnabled("inc_pattern_category")); 284 EXPECT_TRUE(tc.IsCategoryEnabled("inc_pattern_category"));
236 EXPECT_TRUE(tc.IsCategoryEnabled("disabled-by-default-cc")); 285 EXPECT_TRUE(tc.IsCategoryEnabled("disabled-by-default-cc"));
237 EXPECT_FALSE(tc.IsCategoryEnabled("excluded")); 286 EXPECT_FALSE(tc.IsCategoryEnabled("excluded"));
238 EXPECT_FALSE(tc.IsCategoryEnabled("exc_pattern_category")); 287 EXPECT_FALSE(tc.IsCategoryEnabled("exc_pattern_category"));
239 EXPECT_FALSE(tc.IsCategoryEnabled("disabled-by-default-others")); 288 EXPECT_FALSE(tc.IsCategoryEnabled("disabled-by-default-others"));
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 "\"enable_systrace\":false," 321 "\"enable_systrace\":false,"
273 "\"record_mode\":\"record-until-full\"" 322 "\"record_mode\":\"record-until-full\""
274 "}"); 323 "}");
275 } 324 }
276 325
277 TEST(TraceConfigTest, TraceConfigFromInvalidString) { 326 TEST(TraceConfigTest, TraceConfigFromInvalidString) {
278 // The config string needs to be a dictionary correctly formatted as a JSON 327 // The config string needs to be a dictionary correctly formatted as a JSON
279 // string. Otherwise, it will fall back to the default initialization. 328 // string. Otherwise, it will fall back to the default initialization.
280 TraceConfig tc(""); 329 TraceConfig tc("");
281 EXPECT_STREQ(kDefaultTraceConfigString, tc.ToString().c_str()); 330 EXPECT_STREQ(kDefaultTraceConfigString, tc.ToString().c_str());
282 EXPECT_TRUE(tc.record_mode_ == RECORD_UNTIL_FULL); 331 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode());
283 EXPECT_FALSE(tc.enable_sampling_); 332 EXPECT_FALSE(tc.IsSamplingEnabled());
284 EXPECT_FALSE(tc.enable_systrace_); 333 EXPECT_FALSE(tc.IsSystraceEnabled());
285 EXPECT_FALSE(tc.enable_argument_filter_); 334 EXPECT_FALSE(tc.IsArgumentFilterEnabled());
286 EXPECT_STREQ("-*Debug,-*Test", tc.ToCategoryFilterString().c_str()); 335 EXPECT_STREQ("-*Debug,-*Test", tc.ToCategoryFilterString().c_str());
287 336
288 tc = TraceConfig("This is an invalid config string."); 337 tc = TraceConfig("This is an invalid config string.");
289 EXPECT_STREQ(kDefaultTraceConfigString, tc.ToString().c_str()); 338 EXPECT_STREQ(kDefaultTraceConfigString, tc.ToString().c_str());
290 EXPECT_TRUE(tc.record_mode_ == RECORD_UNTIL_FULL); 339 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode());
291 EXPECT_FALSE(tc.enable_sampling_); 340 EXPECT_FALSE(tc.IsSamplingEnabled());
292 EXPECT_FALSE(tc.enable_systrace_); 341 EXPECT_FALSE(tc.IsSystraceEnabled());
293 EXPECT_FALSE(tc.enable_argument_filter_); 342 EXPECT_FALSE(tc.IsArgumentFilterEnabled());
294 EXPECT_STREQ("-*Debug,-*Test", tc.ToCategoryFilterString().c_str()); 343 EXPECT_STREQ("-*Debug,-*Test", tc.ToCategoryFilterString().c_str());
295 344
296 tc = TraceConfig("[\"This\", \"is\", \"not\", \"a\", \"dictionary\"]"); 345 tc = TraceConfig("[\"This\", \"is\", \"not\", \"a\", \"dictionary\"]");
297 EXPECT_STREQ(kDefaultTraceConfigString, tc.ToString().c_str()); 346 EXPECT_STREQ(kDefaultTraceConfigString, tc.ToString().c_str());
298 EXPECT_TRUE(tc.record_mode_ == RECORD_UNTIL_FULL); 347 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode());
299 EXPECT_FALSE(tc.enable_sampling_); 348 EXPECT_FALSE(tc.IsSamplingEnabled());
300 EXPECT_FALSE(tc.enable_systrace_); 349 EXPECT_FALSE(tc.IsSystraceEnabled());
301 EXPECT_FALSE(tc.enable_argument_filter_); 350 EXPECT_FALSE(tc.IsArgumentFilterEnabled());
302 EXPECT_STREQ("-*Debug,-*Test", tc.ToCategoryFilterString().c_str()); 351 EXPECT_STREQ("-*Debug,-*Test", tc.ToCategoryFilterString().c_str());
303 352
304 tc = TraceConfig("{\"record_mode\": invalid-value-needs-double-quote}"); 353 tc = TraceConfig("{\"record_mode\": invalid-value-needs-double-quote}");
305 EXPECT_STREQ(kDefaultTraceConfigString, tc.ToString().c_str()); 354 EXPECT_STREQ(kDefaultTraceConfigString, tc.ToString().c_str());
306 EXPECT_TRUE(tc.record_mode_ == RECORD_UNTIL_FULL); 355 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode());
307 EXPECT_FALSE(tc.enable_sampling_); 356 EXPECT_FALSE(tc.IsSamplingEnabled());
308 EXPECT_FALSE(tc.enable_systrace_); 357 EXPECT_FALSE(tc.IsSystraceEnabled());
309 EXPECT_FALSE(tc.enable_argument_filter_); 358 EXPECT_FALSE(tc.IsArgumentFilterEnabled());
310 EXPECT_STREQ("-*Debug,-*Test", tc.ToCategoryFilterString().c_str()); 359 EXPECT_STREQ("-*Debug,-*Test", tc.ToCategoryFilterString().c_str());
311 360
312 // If the config string a dictionary formatted as a JSON string, it will 361 // If the config string a dictionary formatted as a JSON string, it will
313 // initialize TraceConfig with best effort. 362 // initialize TraceConfig with best effort.
314 tc = TraceConfig("{}"); 363 tc = TraceConfig("{}");
315 EXPECT_TRUE(tc.record_mode_ == RECORD_UNTIL_FULL); 364 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode());
316 EXPECT_FALSE(tc.enable_sampling_); 365 EXPECT_FALSE(tc.IsSamplingEnabled());
317 EXPECT_FALSE(tc.enable_systrace_); 366 EXPECT_FALSE(tc.IsSystraceEnabled());
318 EXPECT_FALSE(tc.enable_argument_filter_); 367 EXPECT_FALSE(tc.IsArgumentFilterEnabled());
319 EXPECT_STREQ("", tc.ToCategoryFilterString().c_str()); 368 EXPECT_STREQ("", tc.ToCategoryFilterString().c_str());
320 369
321 tc = TraceConfig("{\"arbitrary-key\":\"arbitrary-value\"}"); 370 tc = TraceConfig("{\"arbitrary-key\":\"arbitrary-value\"}");
322 EXPECT_TRUE(tc.record_mode_ == RECORD_UNTIL_FULL); 371 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode());
323 EXPECT_FALSE(tc.enable_sampling_); 372 EXPECT_FALSE(tc.IsSamplingEnabled());
324 EXPECT_FALSE(tc.enable_systrace_); 373 EXPECT_FALSE(tc.IsSystraceEnabled());
325 EXPECT_FALSE(tc.enable_argument_filter_); 374 EXPECT_FALSE(tc.IsArgumentFilterEnabled());
326 EXPECT_STREQ("", tc.ToCategoryFilterString().c_str()); 375 EXPECT_STREQ("", tc.ToCategoryFilterString().c_str());
327 376
328 const char invalid_config_string[] = 377 const char invalid_config_string[] =
329 "{" 378 "{"
330 "\"enable_sampling\":\"true\"," 379 "\"enable_sampling\":\"true\","
331 "\"enable_systrace\":1," 380 "\"enable_systrace\":1,"
332 "\"excluded_categories\":[\"excluded\"]," 381 "\"excluded_categories\":[\"excluded\"],"
333 "\"included_categories\":\"not a list\"," 382 "\"included_categories\":\"not a list\","
334 "\"record_mode\":\"arbitrary-mode\"," 383 "\"record_mode\":\"arbitrary-mode\","
335 "\"synthetic_delays\":[\"test.Delay1;16\"," 384 "\"synthetic_delays\":[\"test.Delay1;16\","
336 "\"invalid-delay\"," 385 "\"invalid-delay\","
337 "\"test.Delay2;32\"]" 386 "\"test.Delay2;32\"]"
338 "}"; 387 "}";
339 tc = TraceConfig(invalid_config_string); 388 tc = TraceConfig(invalid_config_string);
340 EXPECT_TRUE(tc.record_mode_ == RECORD_UNTIL_FULL); 389 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode());
341 EXPECT_FALSE(tc.enable_sampling_); 390 EXPECT_FALSE(tc.IsSamplingEnabled());
342 EXPECT_FALSE(tc.enable_systrace_); 391 EXPECT_FALSE(tc.IsSystraceEnabled());
343 EXPECT_FALSE(tc.enable_argument_filter_); 392 EXPECT_FALSE(tc.IsArgumentFilterEnabled());
344 EXPECT_STREQ("-excluded,DELAY(test.Delay1;16),DELAY(test.Delay2;32)", 393 EXPECT_STREQ("-excluded,DELAY(test.Delay1;16),DELAY(test.Delay2;32)",
345 tc.ToCategoryFilterString().c_str()); 394 tc.ToCategoryFilterString().c_str());
346 395
347 const char invalid_config_string_2[] = 396 const char invalid_config_string_2[] =
348 "{" 397 "{"
349 "\"included_categories\":[\"category\",\"disabled-by-default-pattern\"]," 398 "\"included_categories\":[\"category\",\"disabled-by-default-pattern\"],"
350 "\"excluded_categories\":[\"category\",\"disabled-by-default-pattern\"]" 399 "\"excluded_categories\":[\"category\",\"disabled-by-default-pattern\"]"
351 "}"; 400 "}";
352 tc = TraceConfig(invalid_config_string_2); 401 tc = TraceConfig(invalid_config_string_2);
353 EXPECT_TRUE(tc.IsCategoryEnabled("category")); 402 EXPECT_TRUE(tc.IsCategoryEnabled("category"));
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
416 EXPECT_TRUE(TraceConfig::IsEmptyOrContainsLeadingOrTrailingWhitespace( 465 EXPECT_TRUE(TraceConfig::IsEmptyOrContainsLeadingOrTrailingWhitespace(
417 "bad_category ")); 466 "bad_category "));
418 EXPECT_TRUE(TraceConfig::IsEmptyOrContainsLeadingOrTrailingWhitespace( 467 EXPECT_TRUE(TraceConfig::IsEmptyOrContainsLeadingOrTrailingWhitespace(
419 " bad_category ")); 468 " bad_category "));
420 EXPECT_TRUE(TraceConfig::IsEmptyOrContainsLeadingOrTrailingWhitespace( 469 EXPECT_TRUE(TraceConfig::IsEmptyOrContainsLeadingOrTrailingWhitespace(
421 "")); 470 ""));
422 EXPECT_FALSE(TraceConfig::IsEmptyOrContainsLeadingOrTrailingWhitespace( 471 EXPECT_FALSE(TraceConfig::IsEmptyOrContainsLeadingOrTrailingWhitespace(
423 "good_category")); 472 "good_category"));
424 } 473 }
425 474
475 TEST(TraceConfigTest, SetTraceOptionValues) {
476 TraceConfig tc;
477 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode());
478 EXPECT_FALSE(tc.IsSamplingEnabled());
479 EXPECT_FALSE(tc.IsSystraceEnabled());
480
481 tc.SetTraceRecordMode(RECORD_AS_MUCH_AS_POSSIBLE);
482 EXPECT_EQ(RECORD_AS_MUCH_AS_POSSIBLE, tc.GetTraceRecordMode());
483
484 tc.EnableSampling();
485 EXPECT_TRUE(tc.IsSamplingEnabled());
486
487 tc.EnableSystrace();
488 EXPECT_TRUE(tc.IsSystraceEnabled());
489 }
490
426 } // namespace trace_event 491 } // namespace trace_event
427 } // namespace base 492 } // namespace base
OLDNEW
« no previous file with comments | « base/trace_event/trace_config.cc ('k') | base/trace_event/trace_event.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698