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

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

Issue 2406703002: tracing: remove sampling state profiler (Closed)
Patch Set: . Created 4 years, 2 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_memory_test_util.h ('k') | base/trace_event/trace_event.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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 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 <stddef.h> 5 #include <stddef.h>
6 6
7 #include "base/json/json_reader.h" 7 #include "base/json/json_reader.h"
8 #include "base/json/json_writer.h" 8 #include "base/json/json_writer.h"
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/trace_event/memory_dump_manager.h" 10 #include "base/trace_event/memory_dump_manager.h"
11 #include "base/trace_event/trace_config.h" 11 #include "base/trace_event/trace_config.h"
12 #include "base/trace_event/trace_config_memory_test_util.h" 12 #include "base/trace_event/trace_config_memory_test_util.h"
13 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
14 14
15 namespace base { 15 namespace base {
16 namespace trace_event { 16 namespace trace_event {
17 17
18 namespace { 18 namespace {
19 19
20 const char kDefaultTraceConfigString[] = 20 const char kDefaultTraceConfigString[] =
21 "{" 21 "{"
22 "\"enable_argument_filter\":false," 22 "\"enable_argument_filter\":false,"
23 "\"enable_sampling\":false,"
24 "\"enable_systrace\":false," 23 "\"enable_systrace\":false,"
25 "\"record_mode\":\"record-until-full\"" 24 "\"record_mode\":\"record-until-full\""
26 "}"; 25 "}";
27 26
28 const char kCustomTraceConfigString[] = 27 const char kCustomTraceConfigString[] =
29 "{" 28 "{"
30 "\"enable_argument_filter\":true," 29 "\"enable_argument_filter\":true,"
31 "\"enable_sampling\":true,"
32 "\"enable_systrace\":true," 30 "\"enable_systrace\":true,"
33 "\"event_filters\":[" 31 "\"event_filters\":["
34 "{" 32 "{"
35 "\"excluded_categories\":[\"unfiltered_cat\"]," 33 "\"excluded_categories\":[\"unfiltered_cat\"],"
36 "\"filter_args\":{\"event_name_whitelist\":[\"a snake\",\"a dog\"]}," 34 "\"filter_args\":{\"event_name_whitelist\":[\"a snake\",\"a dog\"]},"
37 "\"filter_predicate\":\"event_whitelist_predicate\"," 35 "\"filter_predicate\":\"event_whitelist_predicate\","
38 "\"included_categories\":[\"*\"]" 36 "\"included_categories\":[\"*\"]"
39 "}" 37 "}"
40 "]," 38 "],"
41 "\"excluded_categories\":[\"excluded\",\"exc_pattern*\"]," 39 "\"excluded_categories\":[\"excluded\",\"exc_pattern*\"],"
(...skipping 10 matching lines...) Expand all
52 "{\"mode\":\"light\",\"periodic_interval_ms\":50}," 50 "{\"mode\":\"light\",\"periodic_interval_ms\":50},"
53 "{\"mode\":\"detailed\",\"periodic_interval_ms\":1000}" 51 "{\"mode\":\"detailed\",\"periodic_interval_ms\":1000}"
54 "]" 52 "]"
55 "}," 53 "},"
56 "\"record_mode\":\"record-continuously\"," 54 "\"record_mode\":\"record-continuously\","
57 "\"synthetic_delays\":[\"test.Delay1;16\",\"test.Delay2;32\"]" 55 "\"synthetic_delays\":[\"test.Delay1;16\",\"test.Delay2;32\"]"
58 "}"; 56 "}";
59 57
60 void CheckDefaultTraceConfigBehavior(const TraceConfig& tc) { 58 void CheckDefaultTraceConfigBehavior(const TraceConfig& tc) {
61 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode()); 59 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode());
62 EXPECT_FALSE(tc.IsSamplingEnabled());
63 EXPECT_FALSE(tc.IsSystraceEnabled()); 60 EXPECT_FALSE(tc.IsSystraceEnabled());
64 EXPECT_FALSE(tc.IsArgumentFilterEnabled()); 61 EXPECT_FALSE(tc.IsArgumentFilterEnabled());
65 62
66 // Default trace config enables every category filter except the 63 // Default trace config enables every category filter except the
67 // disabled-by-default-* ones. 64 // disabled-by-default-* ones.
68 EXPECT_TRUE(tc.IsCategoryGroupEnabled("Category1")); 65 EXPECT_TRUE(tc.IsCategoryGroupEnabled("Category1"));
69 EXPECT_TRUE(tc.IsCategoryGroupEnabled("not-excluded-category")); 66 EXPECT_TRUE(tc.IsCategoryGroupEnabled("not-excluded-category"));
70 EXPECT_FALSE(tc.IsCategoryGroupEnabled("disabled-by-default-cc")); 67 EXPECT_FALSE(tc.IsCategoryGroupEnabled("disabled-by-default-cc"));
71 68
72 EXPECT_TRUE(tc.IsCategoryGroupEnabled("Category1,not-excluded-category")); 69 EXPECT_TRUE(tc.IsCategoryGroupEnabled("Category1,not-excluded-category"));
73 EXPECT_TRUE(tc.IsCategoryGroupEnabled("Category1,disabled-by-default-cc")); 70 EXPECT_TRUE(tc.IsCategoryGroupEnabled("Category1,disabled-by-default-cc"));
74 EXPECT_FALSE(tc.IsCategoryGroupEnabled( 71 EXPECT_FALSE(tc.IsCategoryGroupEnabled(
75 "disabled-by-default-cc,disabled-by-default-cc2")); 72 "disabled-by-default-cc,disabled-by-default-cc2"));
76 } 73 }
77 74
78 } // namespace 75 } // namespace
79 76
80 TEST(TraceConfigTest, TraceConfigFromValidLegacyFormat) { 77 TEST(TraceConfigTest, TraceConfigFromValidLegacyFormat) {
81 // From trace options strings 78 // From trace options strings
82 TraceConfig config("", "record-until-full"); 79 TraceConfig config("", "record-until-full");
83 EXPECT_EQ(RECORD_UNTIL_FULL, config.GetTraceRecordMode()); 80 EXPECT_EQ(RECORD_UNTIL_FULL, config.GetTraceRecordMode());
84 EXPECT_FALSE(config.IsSamplingEnabled());
85 EXPECT_FALSE(config.IsSystraceEnabled()); 81 EXPECT_FALSE(config.IsSystraceEnabled());
86 EXPECT_FALSE(config.IsArgumentFilterEnabled()); 82 EXPECT_FALSE(config.IsArgumentFilterEnabled());
87 EXPECT_STREQ("record-until-full", config.ToTraceOptionsString().c_str()); 83 EXPECT_STREQ("record-until-full", config.ToTraceOptionsString().c_str());
88 84
89 config = TraceConfig("", "record-continuously"); 85 config = TraceConfig("", "record-continuously");
90 EXPECT_EQ(RECORD_CONTINUOUSLY, config.GetTraceRecordMode()); 86 EXPECT_EQ(RECORD_CONTINUOUSLY, config.GetTraceRecordMode());
91 EXPECT_FALSE(config.IsSamplingEnabled());
92 EXPECT_FALSE(config.IsSystraceEnabled()); 87 EXPECT_FALSE(config.IsSystraceEnabled());
93 EXPECT_FALSE(config.IsArgumentFilterEnabled()); 88 EXPECT_FALSE(config.IsArgumentFilterEnabled());
94 EXPECT_STREQ("record-continuously", config.ToTraceOptionsString().c_str()); 89 EXPECT_STREQ("record-continuously", config.ToTraceOptionsString().c_str());
95 90
96 config = TraceConfig("", "trace-to-console"); 91 config = TraceConfig("", "trace-to-console");
97 EXPECT_EQ(ECHO_TO_CONSOLE, config.GetTraceRecordMode()); 92 EXPECT_EQ(ECHO_TO_CONSOLE, config.GetTraceRecordMode());
98 EXPECT_FALSE(config.IsSamplingEnabled());
99 EXPECT_FALSE(config.IsSystraceEnabled()); 93 EXPECT_FALSE(config.IsSystraceEnabled());
100 EXPECT_FALSE(config.IsArgumentFilterEnabled()); 94 EXPECT_FALSE(config.IsArgumentFilterEnabled());
101 EXPECT_STREQ("trace-to-console", config.ToTraceOptionsString().c_str()); 95 EXPECT_STREQ("trace-to-console", config.ToTraceOptionsString().c_str());
102 96
103 config = TraceConfig("", "record-as-much-as-possible"); 97 config = TraceConfig("", "record-as-much-as-possible");
104 EXPECT_EQ(RECORD_AS_MUCH_AS_POSSIBLE, config.GetTraceRecordMode()); 98 EXPECT_EQ(RECORD_AS_MUCH_AS_POSSIBLE, config.GetTraceRecordMode());
105 EXPECT_FALSE(config.IsSamplingEnabled());
106 EXPECT_FALSE(config.IsSystraceEnabled()); 99 EXPECT_FALSE(config.IsSystraceEnabled());
107 EXPECT_FALSE(config.IsArgumentFilterEnabled()); 100 EXPECT_FALSE(config.IsArgumentFilterEnabled());
108 EXPECT_STREQ("record-as-much-as-possible", 101 EXPECT_STREQ("record-as-much-as-possible",
109 config.ToTraceOptionsString().c_str()); 102 config.ToTraceOptionsString().c_str());
110 103
111 config = TraceConfig("", "record-until-full, enable-sampling");
112 EXPECT_EQ(RECORD_UNTIL_FULL, config.GetTraceRecordMode());
113 EXPECT_TRUE(config.IsSamplingEnabled());
114 EXPECT_FALSE(config.IsSystraceEnabled());
115 EXPECT_FALSE(config.IsArgumentFilterEnabled());
116 EXPECT_STREQ("record-until-full,enable-sampling",
117 config.ToTraceOptionsString().c_str());
118
119 config = TraceConfig("", "enable-systrace, record-continuously"); 104 config = TraceConfig("", "enable-systrace, record-continuously");
120 EXPECT_EQ(RECORD_CONTINUOUSLY, config.GetTraceRecordMode()); 105 EXPECT_EQ(RECORD_CONTINUOUSLY, config.GetTraceRecordMode());
121 EXPECT_FALSE(config.IsSamplingEnabled());
122 EXPECT_TRUE(config.IsSystraceEnabled()); 106 EXPECT_TRUE(config.IsSystraceEnabled());
123 EXPECT_FALSE(config.IsArgumentFilterEnabled()); 107 EXPECT_FALSE(config.IsArgumentFilterEnabled());
124 EXPECT_STREQ("record-continuously,enable-systrace", 108 EXPECT_STREQ("record-continuously,enable-systrace",
125 config.ToTraceOptionsString().c_str()); 109 config.ToTraceOptionsString().c_str());
126 110
127 config = TraceConfig("", "enable-argument-filter,record-as-much-as-possible"); 111 config = TraceConfig("", "enable-argument-filter,record-as-much-as-possible");
128 EXPECT_EQ(RECORD_AS_MUCH_AS_POSSIBLE, config.GetTraceRecordMode()); 112 EXPECT_EQ(RECORD_AS_MUCH_AS_POSSIBLE, config.GetTraceRecordMode());
129 EXPECT_FALSE(config.IsSamplingEnabled());
130 EXPECT_FALSE(config.IsSystraceEnabled()); 113 EXPECT_FALSE(config.IsSystraceEnabled());
131 EXPECT_TRUE(config.IsArgumentFilterEnabled()); 114 EXPECT_TRUE(config.IsArgumentFilterEnabled());
132 EXPECT_STREQ("record-as-much-as-possible,enable-argument-filter", 115 EXPECT_STREQ("record-as-much-as-possible,enable-argument-filter",
133 config.ToTraceOptionsString().c_str()); 116 config.ToTraceOptionsString().c_str());
134 117
135 config = TraceConfig( 118 config = TraceConfig(
136 "", 119 "",
137 "enable-systrace,trace-to-console,enable-sampling,enable-argument-filter"); 120 "enable-systrace,trace-to-console,enable-argument-filter");
138 EXPECT_EQ(ECHO_TO_CONSOLE, config.GetTraceRecordMode()); 121 EXPECT_EQ(ECHO_TO_CONSOLE, config.GetTraceRecordMode());
139 EXPECT_TRUE(config.IsSamplingEnabled());
140 EXPECT_TRUE(config.IsSystraceEnabled()); 122 EXPECT_TRUE(config.IsSystraceEnabled());
141 EXPECT_TRUE(config.IsArgumentFilterEnabled()); 123 EXPECT_TRUE(config.IsArgumentFilterEnabled());
142 EXPECT_STREQ( 124 EXPECT_STREQ(
143 "trace-to-console,enable-sampling,enable-systrace,enable-argument-filter", 125 "trace-to-console,enable-systrace,enable-argument-filter",
144 config.ToTraceOptionsString().c_str()); 126 config.ToTraceOptionsString().c_str());
145 127
146 config = TraceConfig( 128 config = TraceConfig(
147 "", "record-continuously, record-until-full, trace-to-console"); 129 "", "record-continuously, record-until-full, trace-to-console");
148 EXPECT_EQ(ECHO_TO_CONSOLE, config.GetTraceRecordMode()); 130 EXPECT_EQ(ECHO_TO_CONSOLE, config.GetTraceRecordMode());
149 EXPECT_FALSE(config.IsSamplingEnabled());
150 EXPECT_FALSE(config.IsSystraceEnabled()); 131 EXPECT_FALSE(config.IsSystraceEnabled());
151 EXPECT_FALSE(config.IsArgumentFilterEnabled()); 132 EXPECT_FALSE(config.IsArgumentFilterEnabled());
152 EXPECT_STREQ("trace-to-console", config.ToTraceOptionsString().c_str()); 133 EXPECT_STREQ("trace-to-console", config.ToTraceOptionsString().c_str());
153 134
154 // From TraceRecordMode 135 // From TraceRecordMode
155 config = TraceConfig("", RECORD_UNTIL_FULL); 136 config = TraceConfig("", RECORD_UNTIL_FULL);
156 EXPECT_EQ(RECORD_UNTIL_FULL, config.GetTraceRecordMode()); 137 EXPECT_EQ(RECORD_UNTIL_FULL, config.GetTraceRecordMode());
157 EXPECT_FALSE(config.IsSamplingEnabled());
158 EXPECT_FALSE(config.IsSystraceEnabled()); 138 EXPECT_FALSE(config.IsSystraceEnabled());
159 EXPECT_FALSE(config.IsArgumentFilterEnabled()); 139 EXPECT_FALSE(config.IsArgumentFilterEnabled());
160 EXPECT_STREQ("record-until-full", config.ToTraceOptionsString().c_str()); 140 EXPECT_STREQ("record-until-full", config.ToTraceOptionsString().c_str());
161 141
162 config = TraceConfig("", RECORD_CONTINUOUSLY); 142 config = TraceConfig("", RECORD_CONTINUOUSLY);
163 EXPECT_EQ(RECORD_CONTINUOUSLY, config.GetTraceRecordMode()); 143 EXPECT_EQ(RECORD_CONTINUOUSLY, config.GetTraceRecordMode());
164 EXPECT_FALSE(config.IsSamplingEnabled());
165 EXPECT_FALSE(config.IsSystraceEnabled()); 144 EXPECT_FALSE(config.IsSystraceEnabled());
166 EXPECT_FALSE(config.IsArgumentFilterEnabled()); 145 EXPECT_FALSE(config.IsArgumentFilterEnabled());
167 EXPECT_STREQ("record-continuously", config.ToTraceOptionsString().c_str()); 146 EXPECT_STREQ("record-continuously", config.ToTraceOptionsString().c_str());
168 147
169 config = TraceConfig("", ECHO_TO_CONSOLE); 148 config = TraceConfig("", ECHO_TO_CONSOLE);
170 EXPECT_EQ(ECHO_TO_CONSOLE, config.GetTraceRecordMode()); 149 EXPECT_EQ(ECHO_TO_CONSOLE, config.GetTraceRecordMode());
171 EXPECT_FALSE(config.IsSamplingEnabled());
172 EXPECT_FALSE(config.IsSystraceEnabled()); 150 EXPECT_FALSE(config.IsSystraceEnabled());
173 EXPECT_FALSE(config.IsArgumentFilterEnabled()); 151 EXPECT_FALSE(config.IsArgumentFilterEnabled());
174 EXPECT_STREQ("trace-to-console", config.ToTraceOptionsString().c_str()); 152 EXPECT_STREQ("trace-to-console", config.ToTraceOptionsString().c_str());
175 153
176 config = TraceConfig("", RECORD_AS_MUCH_AS_POSSIBLE); 154 config = TraceConfig("", RECORD_AS_MUCH_AS_POSSIBLE);
177 EXPECT_EQ(RECORD_AS_MUCH_AS_POSSIBLE, config.GetTraceRecordMode()); 155 EXPECT_EQ(RECORD_AS_MUCH_AS_POSSIBLE, config.GetTraceRecordMode());
178 EXPECT_FALSE(config.IsSamplingEnabled());
179 EXPECT_FALSE(config.IsSystraceEnabled()); 156 EXPECT_FALSE(config.IsSystraceEnabled());
180 EXPECT_FALSE(config.IsArgumentFilterEnabled()); 157 EXPECT_FALSE(config.IsArgumentFilterEnabled());
181 EXPECT_STREQ("record-as-much-as-possible", 158 EXPECT_STREQ("record-as-much-as-possible",
182 config.ToTraceOptionsString().c_str()); 159 config.ToTraceOptionsString().c_str());
183 160
184 // From category filter strings 161 // From category filter strings
185 config = TraceConfig("included,-excluded,inc_pattern*,-exc_pattern*", ""); 162 config = TraceConfig("included,-excluded,inc_pattern*,-exc_pattern*", "");
186 EXPECT_STREQ("included,inc_pattern*,-excluded,-exc_pattern*", 163 EXPECT_STREQ("included,inc_pattern*,-excluded,-exc_pattern*",
187 config.ToCategoryFilterString().c_str()); 164 config.ToCategoryFilterString().c_str());
188 165
(...skipping 11 matching lines...) Expand all
200 EXPECT_STREQ("included,disabled-by-default-cc", 177 EXPECT_STREQ("included,disabled-by-default-cc",
201 config.ToCategoryFilterString().c_str()); 178 config.ToCategoryFilterString().c_str());
202 179
203 config = TraceConfig("DELAY(test.Delay1;16),included", ""); 180 config = TraceConfig("DELAY(test.Delay1;16),included", "");
204 EXPECT_STREQ("included,DELAY(test.Delay1;16)", 181 EXPECT_STREQ("included,DELAY(test.Delay1;16)",
205 config.ToCategoryFilterString().c_str()); 182 config.ToCategoryFilterString().c_str());
206 183
207 // From both trace options and category filter strings 184 // From both trace options and category filter strings
208 config = TraceConfig("", ""); 185 config = TraceConfig("", "");
209 EXPECT_EQ(RECORD_UNTIL_FULL, config.GetTraceRecordMode()); 186 EXPECT_EQ(RECORD_UNTIL_FULL, config.GetTraceRecordMode());
210 EXPECT_FALSE(config.IsSamplingEnabled());
211 EXPECT_FALSE(config.IsSystraceEnabled()); 187 EXPECT_FALSE(config.IsSystraceEnabled());
212 EXPECT_FALSE(config.IsArgumentFilterEnabled()); 188 EXPECT_FALSE(config.IsArgumentFilterEnabled());
213 EXPECT_STREQ("", config.ToCategoryFilterString().c_str()); 189 EXPECT_STREQ("", config.ToCategoryFilterString().c_str());
214 EXPECT_STREQ("record-until-full", config.ToTraceOptionsString().c_str()); 190 EXPECT_STREQ("record-until-full", config.ToTraceOptionsString().c_str());
215 191
216 config = TraceConfig("included,-excluded,inc_pattern*,-exc_pattern*", 192 config = TraceConfig("included,-excluded,inc_pattern*,-exc_pattern*",
217 "enable-systrace, trace-to-console, enable-sampling"); 193 "enable-systrace, trace-to-console");
218 EXPECT_EQ(ECHO_TO_CONSOLE, config.GetTraceRecordMode()); 194 EXPECT_EQ(ECHO_TO_CONSOLE, config.GetTraceRecordMode());
219 EXPECT_TRUE(config.IsSamplingEnabled());
220 EXPECT_TRUE(config.IsSystraceEnabled()); 195 EXPECT_TRUE(config.IsSystraceEnabled());
221 EXPECT_FALSE(config.IsArgumentFilterEnabled()); 196 EXPECT_FALSE(config.IsArgumentFilterEnabled());
222 EXPECT_STREQ("included,inc_pattern*,-excluded,-exc_pattern*", 197 EXPECT_STREQ("included,inc_pattern*,-excluded,-exc_pattern*",
223 config.ToCategoryFilterString().c_str()); 198 config.ToCategoryFilterString().c_str());
224 EXPECT_STREQ("trace-to-console,enable-sampling,enable-systrace", 199 EXPECT_STREQ("trace-to-console,enable-systrace",
225 config.ToTraceOptionsString().c_str()); 200 config.ToTraceOptionsString().c_str());
226 201
227 // From both trace options and category filter strings with spaces. 202 // From both trace options and category filter strings with spaces.
228 config = TraceConfig(" included , -excluded, inc_pattern*, ,-exc_pattern* ", 203 config = TraceConfig(" included , -excluded, inc_pattern*, ,-exc_pattern* ",
229 "enable-systrace, ,trace-to-console, enable-sampling "); 204 "enable-systrace, ,trace-to-console ");
230 EXPECT_EQ(ECHO_TO_CONSOLE, config.GetTraceRecordMode()); 205 EXPECT_EQ(ECHO_TO_CONSOLE, config.GetTraceRecordMode());
231 EXPECT_TRUE(config.IsSamplingEnabled());
232 EXPECT_TRUE(config.IsSystraceEnabled()); 206 EXPECT_TRUE(config.IsSystraceEnabled());
233 EXPECT_FALSE(config.IsArgumentFilterEnabled()); 207 EXPECT_FALSE(config.IsArgumentFilterEnabled());
234 EXPECT_STREQ("included,inc_pattern*,-excluded,-exc_pattern*", 208 EXPECT_STREQ("included,inc_pattern*,-excluded,-exc_pattern*",
235 config.ToCategoryFilterString().c_str()); 209 config.ToCategoryFilterString().c_str());
236 EXPECT_STREQ("trace-to-console,enable-sampling,enable-systrace", 210 EXPECT_STREQ("trace-to-console,enable-systrace",
237 config.ToTraceOptionsString().c_str()); 211 config.ToTraceOptionsString().c_str());
238 212
239 // From category filter string and TraceRecordMode 213 // From category filter string and TraceRecordMode
240 config = TraceConfig("included,-excluded,inc_pattern*,-exc_pattern*", 214 config = TraceConfig("included,-excluded,inc_pattern*,-exc_pattern*",
241 RECORD_CONTINUOUSLY); 215 RECORD_CONTINUOUSLY);
242 EXPECT_EQ(RECORD_CONTINUOUSLY, config.GetTraceRecordMode()); 216 EXPECT_EQ(RECORD_CONTINUOUSLY, config.GetTraceRecordMode());
243 EXPECT_FALSE(config.IsSystraceEnabled()); 217 EXPECT_FALSE(config.IsSystraceEnabled());
244 EXPECT_FALSE(config.IsSamplingEnabled());
245 EXPECT_FALSE(config.IsArgumentFilterEnabled()); 218 EXPECT_FALSE(config.IsArgumentFilterEnabled());
246 EXPECT_STREQ("included,inc_pattern*,-excluded,-exc_pattern*", 219 EXPECT_STREQ("included,inc_pattern*,-excluded,-exc_pattern*",
247 config.ToCategoryFilterString().c_str()); 220 config.ToCategoryFilterString().c_str());
248 EXPECT_STREQ("record-continuously", config.ToTraceOptionsString().c_str()); 221 EXPECT_STREQ("record-continuously", config.ToTraceOptionsString().c_str());
249 } 222 }
250 223
251 TEST(TraceConfigTest, TraceConfigFromInvalidLegacyStrings) { 224 TEST(TraceConfigTest, TraceConfigFromInvalidLegacyStrings) {
252 TraceConfig config("", "foo-bar-baz"); 225 TraceConfig config("", "foo-bar-baz");
253 EXPECT_EQ(RECORD_UNTIL_FULL, config.GetTraceRecordMode()); 226 EXPECT_EQ(RECORD_UNTIL_FULL, config.GetTraceRecordMode());
254 EXPECT_FALSE(config.IsSamplingEnabled());
255 EXPECT_FALSE(config.IsSystraceEnabled()); 227 EXPECT_FALSE(config.IsSystraceEnabled());
256 EXPECT_FALSE(config.IsArgumentFilterEnabled()); 228 EXPECT_FALSE(config.IsArgumentFilterEnabled());
257 EXPECT_STREQ("", config.ToCategoryFilterString().c_str()); 229 EXPECT_STREQ("", config.ToCategoryFilterString().c_str());
258 EXPECT_STREQ("record-until-full", config.ToTraceOptionsString().c_str()); 230 EXPECT_STREQ("record-until-full", config.ToTraceOptionsString().c_str());
259 231
260 config = TraceConfig("arbitrary-category", "foo-bar-baz, enable-systrace"); 232 config = TraceConfig("arbitrary-category", "foo-bar-baz, enable-systrace");
261 EXPECT_EQ(RECORD_UNTIL_FULL, config.GetTraceRecordMode()); 233 EXPECT_EQ(RECORD_UNTIL_FULL, config.GetTraceRecordMode());
262 EXPECT_FALSE(config.IsSamplingEnabled());
263 EXPECT_TRUE(config.IsSystraceEnabled()); 234 EXPECT_TRUE(config.IsSystraceEnabled());
264 EXPECT_FALSE(config.IsArgumentFilterEnabled()); 235 EXPECT_FALSE(config.IsArgumentFilterEnabled());
265 EXPECT_STREQ("arbitrary-category", config.ToCategoryFilterString().c_str()); 236 EXPECT_STREQ("arbitrary-category", config.ToCategoryFilterString().c_str());
266 EXPECT_STREQ("record-until-full,enable-systrace", 237 EXPECT_STREQ("record-until-full,enable-systrace",
267 config.ToTraceOptionsString().c_str()); 238 config.ToTraceOptionsString().c_str());
268 239
269 const char* const configs[] = { 240 const char* const configs[] = {
270 "", 241 "",
271 "DELAY(", 242 "DELAY(",
272 "DELAY(;", 243 "DELAY(;",
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
349 EXPECT_TRUE(tc.IsCategoryGroupEnabled("bar")); 320 EXPECT_TRUE(tc.IsCategoryGroupEnabled("bar"));
350 EXPECT_FALSE(tc.IsCategoryGroupEnabled("disabled-by-default-bar")); 321 EXPECT_FALSE(tc.IsCategoryGroupEnabled("disabled-by-default-bar"));
351 } 322 }
352 323
353 TEST(TraceConfigTest, TraceConfigFromDict) { 324 TEST(TraceConfigTest, TraceConfigFromDict) {
354 // Passing in empty dictionary will result in default trace config. 325 // Passing in empty dictionary will result in default trace config.
355 DictionaryValue dict; 326 DictionaryValue dict;
356 TraceConfig tc(dict); 327 TraceConfig tc(dict);
357 EXPECT_STREQ(kDefaultTraceConfigString, tc.ToString().c_str()); 328 EXPECT_STREQ(kDefaultTraceConfigString, tc.ToString().c_str());
358 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode()); 329 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode());
359 EXPECT_FALSE(tc.IsSamplingEnabled());
360 EXPECT_FALSE(tc.IsSystraceEnabled()); 330 EXPECT_FALSE(tc.IsSystraceEnabled());
361 EXPECT_FALSE(tc.IsArgumentFilterEnabled()); 331 EXPECT_FALSE(tc.IsArgumentFilterEnabled());
362 EXPECT_STREQ("", tc.ToCategoryFilterString().c_str()); 332 EXPECT_STREQ("", tc.ToCategoryFilterString().c_str());
363 333
364 std::unique_ptr<Value> default_value( 334 std::unique_ptr<Value> default_value(
365 JSONReader::Read(kDefaultTraceConfigString)); 335 JSONReader::Read(kDefaultTraceConfigString));
366 DCHECK(default_value); 336 DCHECK(default_value);
367 const DictionaryValue* default_dict = nullptr; 337 const DictionaryValue* default_dict = nullptr;
368 bool is_dict = default_value->GetAsDictionary(&default_dict); 338 bool is_dict = default_value->GetAsDictionary(&default_dict);
369 DCHECK(is_dict); 339 DCHECK(is_dict);
370 TraceConfig default_tc(*default_dict); 340 TraceConfig default_tc(*default_dict);
371 EXPECT_STREQ(kDefaultTraceConfigString, default_tc.ToString().c_str()); 341 EXPECT_STREQ(kDefaultTraceConfigString, default_tc.ToString().c_str());
372 EXPECT_EQ(RECORD_UNTIL_FULL, default_tc.GetTraceRecordMode()); 342 EXPECT_EQ(RECORD_UNTIL_FULL, default_tc.GetTraceRecordMode());
373 EXPECT_FALSE(default_tc.IsSamplingEnabled());
374 EXPECT_FALSE(default_tc.IsSystraceEnabled()); 343 EXPECT_FALSE(default_tc.IsSystraceEnabled());
375 EXPECT_FALSE(default_tc.IsArgumentFilterEnabled()); 344 EXPECT_FALSE(default_tc.IsArgumentFilterEnabled());
376 EXPECT_STREQ("", default_tc.ToCategoryFilterString().c_str()); 345 EXPECT_STREQ("", default_tc.ToCategoryFilterString().c_str());
377 346
378 std::unique_ptr<Value> custom_value( 347 std::unique_ptr<Value> custom_value(
379 JSONReader::Read(kCustomTraceConfigString)); 348 JSONReader::Read(kCustomTraceConfigString));
380 DCHECK(custom_value); 349 DCHECK(custom_value);
381 const DictionaryValue* custom_dict = nullptr; 350 const DictionaryValue* custom_dict = nullptr;
382 is_dict = custom_value->GetAsDictionary(&custom_dict); 351 is_dict = custom_value->GetAsDictionary(&custom_dict);
383 DCHECK(is_dict); 352 DCHECK(is_dict);
384 TraceConfig custom_tc(*custom_dict); 353 TraceConfig custom_tc(*custom_dict);
385 EXPECT_STREQ(kCustomTraceConfigString, custom_tc.ToString().c_str()); 354 EXPECT_STREQ(kCustomTraceConfigString, custom_tc.ToString().c_str());
386 EXPECT_EQ(RECORD_CONTINUOUSLY, custom_tc.GetTraceRecordMode()); 355 EXPECT_EQ(RECORD_CONTINUOUSLY, custom_tc.GetTraceRecordMode());
387 EXPECT_TRUE(custom_tc.IsSamplingEnabled());
388 EXPECT_TRUE(custom_tc.IsSystraceEnabled()); 356 EXPECT_TRUE(custom_tc.IsSystraceEnabled());
389 EXPECT_TRUE(custom_tc.IsArgumentFilterEnabled()); 357 EXPECT_TRUE(custom_tc.IsArgumentFilterEnabled());
390 EXPECT_STREQ("included,inc_pattern*," 358 EXPECT_STREQ("included,inc_pattern*,"
391 "disabled-by-default-cc,disabled-by-default-memory-infra," 359 "disabled-by-default-cc,disabled-by-default-memory-infra,"
392 "-excluded,-exc_pattern*," 360 "-excluded,-exc_pattern*,"
393 "DELAY(test.Delay1;16),DELAY(test.Delay2;32)", 361 "DELAY(test.Delay1;16),DELAY(test.Delay2;32)",
394 custom_tc.ToCategoryFilterString().c_str()); 362 custom_tc.ToCategoryFilterString().c_str());
395 } 363 }
396 364
397 TEST(TraceConfigTest, TraceConfigFromValidString) { 365 TEST(TraceConfigTest, TraceConfigFromValidString) {
398 // Using some non-empty config string. 366 // Using some non-empty config string.
399 const char config_string[] = 367 const char config_string[] =
400 "{" 368 "{"
401 "\"enable_argument_filter\":true," 369 "\"enable_argument_filter\":true,"
402 "\"enable_sampling\":true,"
403 "\"enable_systrace\":true," 370 "\"enable_systrace\":true,"
404 "\"event_filters\":[" 371 "\"event_filters\":["
405 "{" 372 "{"
406 "\"excluded_categories\":[\"unfiltered_cat\"]," 373 "\"excluded_categories\":[\"unfiltered_cat\"],"
407 "\"filter_args\":{\"event_name_whitelist\":[\"a snake\",\"a dog\"]}," 374 "\"filter_args\":{\"event_name_whitelist\":[\"a snake\",\"a dog\"]},"
408 "\"filter_predicate\":\"event_whitelist_predicate\"," 375 "\"filter_predicate\":\"event_whitelist_predicate\","
409 "\"included_categories\":[\"*\"]" 376 "\"included_categories\":[\"*\"]"
410 "}" 377 "}"
411 "]," 378 "],"
412 "\"excluded_categories\":[\"excluded\",\"exc_pattern*\"]," 379 "\"excluded_categories\":[\"excluded\",\"exc_pattern*\"],"
413 "\"included_categories\":[\"included\"," 380 "\"included_categories\":[\"included\","
414 "\"inc_pattern*\"," 381 "\"inc_pattern*\","
415 "\"disabled-by-default-cc\"]," 382 "\"disabled-by-default-cc\"],"
416 "\"record_mode\":\"record-continuously\"," 383 "\"record_mode\":\"record-continuously\","
417 "\"synthetic_delays\":[\"test.Delay1;16\",\"test.Delay2;32\"]" 384 "\"synthetic_delays\":[\"test.Delay1;16\",\"test.Delay2;32\"]"
418 "}"; 385 "}";
419 TraceConfig tc(config_string); 386 TraceConfig tc(config_string);
420 387
421 EXPECT_STREQ(config_string, tc.ToString().c_str()); 388 EXPECT_STREQ(config_string, tc.ToString().c_str());
422 EXPECT_EQ(RECORD_CONTINUOUSLY, tc.GetTraceRecordMode()); 389 EXPECT_EQ(RECORD_CONTINUOUSLY, tc.GetTraceRecordMode());
423 EXPECT_TRUE(tc.IsSamplingEnabled());
424 EXPECT_TRUE(tc.IsSystraceEnabled()); 390 EXPECT_TRUE(tc.IsSystraceEnabled());
425 EXPECT_TRUE(tc.IsArgumentFilterEnabled()); 391 EXPECT_TRUE(tc.IsArgumentFilterEnabled());
426 EXPECT_STREQ("included,inc_pattern*,disabled-by-default-cc,-excluded," 392 EXPECT_STREQ("included,inc_pattern*,disabled-by-default-cc,-excluded,"
427 "-exc_pattern*,DELAY(test.Delay1;16),DELAY(test.Delay2;32)", 393 "-exc_pattern*,DELAY(test.Delay1;16),DELAY(test.Delay2;32)",
428 tc.ToCategoryFilterString().c_str()); 394 tc.ToCategoryFilterString().c_str());
429 395
430 EXPECT_TRUE(tc.IsCategoryEnabled("included")); 396 EXPECT_TRUE(tc.IsCategoryEnabled("included"));
431 EXPECT_TRUE(tc.IsCategoryEnabled("inc_pattern_category")); 397 EXPECT_TRUE(tc.IsCategoryEnabled("inc_pattern_category"));
432 EXPECT_TRUE(tc.IsCategoryEnabled("disabled-by-default-cc")); 398 EXPECT_TRUE(tc.IsCategoryEnabled("disabled-by-default-cc"));
433 EXPECT_FALSE(tc.IsCategoryEnabled("excluded")); 399 EXPECT_FALSE(tc.IsCategoryEnabled("excluded"));
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
472 EXPECT_TRUE(tc2.IsCategoryEnabled("non-disabled-by-default-pattern")); 438 EXPECT_TRUE(tc2.IsCategoryEnabled("non-disabled-by-default-pattern"));
473 EXPECT_FALSE(tc2.IsCategoryEnabled("disabled-by-default-pattern")); 439 EXPECT_FALSE(tc2.IsCategoryEnabled("disabled-by-default-pattern"));
474 EXPECT_TRUE(tc2.IsCategoryGroupEnabled("non-disabled-by-default-pattern")); 440 EXPECT_TRUE(tc2.IsCategoryGroupEnabled("non-disabled-by-default-pattern"));
475 EXPECT_FALSE(tc2.IsCategoryGroupEnabled("disabled-by-default-pattern")); 441 EXPECT_FALSE(tc2.IsCategoryGroupEnabled("disabled-by-default-pattern"));
476 442
477 // Clear 443 // Clear
478 tc.Clear(); 444 tc.Clear();
479 EXPECT_STREQ(tc.ToString().c_str(), 445 EXPECT_STREQ(tc.ToString().c_str(),
480 "{" 446 "{"
481 "\"enable_argument_filter\":false," 447 "\"enable_argument_filter\":false,"
482 "\"enable_sampling\":false,"
483 "\"enable_systrace\":false," 448 "\"enable_systrace\":false,"
484 "\"record_mode\":\"record-until-full\"" 449 "\"record_mode\":\"record-until-full\""
485 "}"); 450 "}");
486 } 451 }
487 452
488 TEST(TraceConfigTest, TraceConfigFromInvalidString) { 453 TEST(TraceConfigTest, TraceConfigFromInvalidString) {
489 // The config string needs to be a dictionary correctly formatted as a JSON 454 // The config string needs to be a dictionary correctly formatted as a JSON
490 // string. Otherwise, it will fall back to the default initialization. 455 // string. Otherwise, it will fall back to the default initialization.
491 TraceConfig tc(""); 456 TraceConfig tc("");
492 EXPECT_STREQ(kDefaultTraceConfigString, tc.ToString().c_str()); 457 EXPECT_STREQ(kDefaultTraceConfigString, tc.ToString().c_str());
493 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode()); 458 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode());
494 EXPECT_FALSE(tc.IsSamplingEnabled());
495 EXPECT_FALSE(tc.IsSystraceEnabled()); 459 EXPECT_FALSE(tc.IsSystraceEnabled());
496 EXPECT_FALSE(tc.IsArgumentFilterEnabled()); 460 EXPECT_FALSE(tc.IsArgumentFilterEnabled());
497 EXPECT_STREQ("", tc.ToCategoryFilterString().c_str()); 461 EXPECT_STREQ("", tc.ToCategoryFilterString().c_str());
498 CheckDefaultTraceConfigBehavior(tc); 462 CheckDefaultTraceConfigBehavior(tc);
499 463
500 tc = TraceConfig("This is an invalid config string."); 464 tc = TraceConfig("This is an invalid config string.");
501 EXPECT_STREQ(kDefaultTraceConfigString, tc.ToString().c_str()); 465 EXPECT_STREQ(kDefaultTraceConfigString, tc.ToString().c_str());
502 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode()); 466 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode());
503 EXPECT_FALSE(tc.IsSamplingEnabled());
504 EXPECT_FALSE(tc.IsSystraceEnabled()); 467 EXPECT_FALSE(tc.IsSystraceEnabled());
505 EXPECT_FALSE(tc.IsArgumentFilterEnabled()); 468 EXPECT_FALSE(tc.IsArgumentFilterEnabled());
506 EXPECT_STREQ("", tc.ToCategoryFilterString().c_str()); 469 EXPECT_STREQ("", tc.ToCategoryFilterString().c_str());
507 CheckDefaultTraceConfigBehavior(tc); 470 CheckDefaultTraceConfigBehavior(tc);
508 471
509 tc = TraceConfig("[\"This\", \"is\", \"not\", \"a\", \"dictionary\"]"); 472 tc = TraceConfig("[\"This\", \"is\", \"not\", \"a\", \"dictionary\"]");
510 EXPECT_STREQ(kDefaultTraceConfigString, tc.ToString().c_str()); 473 EXPECT_STREQ(kDefaultTraceConfigString, tc.ToString().c_str());
511 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode()); 474 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode());
512 EXPECT_FALSE(tc.IsSamplingEnabled());
513 EXPECT_FALSE(tc.IsSystraceEnabled()); 475 EXPECT_FALSE(tc.IsSystraceEnabled());
514 EXPECT_FALSE(tc.IsArgumentFilterEnabled()); 476 EXPECT_FALSE(tc.IsArgumentFilterEnabled());
515 EXPECT_STREQ("", tc.ToCategoryFilterString().c_str()); 477 EXPECT_STREQ("", tc.ToCategoryFilterString().c_str());
516 CheckDefaultTraceConfigBehavior(tc); 478 CheckDefaultTraceConfigBehavior(tc);
517 479
518 tc = TraceConfig("{\"record_mode\": invalid-value-needs-double-quote}"); 480 tc = TraceConfig("{\"record_mode\": invalid-value-needs-double-quote}");
519 EXPECT_STREQ(kDefaultTraceConfigString, tc.ToString().c_str()); 481 EXPECT_STREQ(kDefaultTraceConfigString, tc.ToString().c_str());
520 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode()); 482 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode());
521 EXPECT_FALSE(tc.IsSamplingEnabled());
522 EXPECT_FALSE(tc.IsSystraceEnabled()); 483 EXPECT_FALSE(tc.IsSystraceEnabled());
523 EXPECT_FALSE(tc.IsArgumentFilterEnabled()); 484 EXPECT_FALSE(tc.IsArgumentFilterEnabled());
524 EXPECT_STREQ("", tc.ToCategoryFilterString().c_str()); 485 EXPECT_STREQ("", tc.ToCategoryFilterString().c_str());
525 CheckDefaultTraceConfigBehavior(tc); 486 CheckDefaultTraceConfigBehavior(tc);
526 487
527 // If the config string a dictionary formatted as a JSON string, it will 488 // If the config string a dictionary formatted as a JSON string, it will
528 // initialize TraceConfig with best effort. 489 // initialize TraceConfig with best effort.
529 tc = TraceConfig("{}"); 490 tc = TraceConfig("{}");
530 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode()); 491 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode());
531 EXPECT_FALSE(tc.IsSamplingEnabled());
532 EXPECT_FALSE(tc.IsSystraceEnabled()); 492 EXPECT_FALSE(tc.IsSystraceEnabled());
533 EXPECT_FALSE(tc.IsArgumentFilterEnabled()); 493 EXPECT_FALSE(tc.IsArgumentFilterEnabled());
534 EXPECT_STREQ("", tc.ToCategoryFilterString().c_str()); 494 EXPECT_STREQ("", tc.ToCategoryFilterString().c_str());
535 CheckDefaultTraceConfigBehavior(tc); 495 CheckDefaultTraceConfigBehavior(tc);
536 496
537 tc = TraceConfig("{\"arbitrary-key\":\"arbitrary-value\"}"); 497 tc = TraceConfig("{\"arbitrary-key\":\"arbitrary-value\"}");
538 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode()); 498 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode());
539 EXPECT_FALSE(tc.IsSamplingEnabled());
540 EXPECT_FALSE(tc.IsSystraceEnabled()); 499 EXPECT_FALSE(tc.IsSystraceEnabled());
541 EXPECT_FALSE(tc.IsArgumentFilterEnabled()); 500 EXPECT_FALSE(tc.IsArgumentFilterEnabled());
542 EXPECT_STREQ("", tc.ToCategoryFilterString().c_str()); 501 EXPECT_STREQ("", tc.ToCategoryFilterString().c_str());
543 CheckDefaultTraceConfigBehavior(tc); 502 CheckDefaultTraceConfigBehavior(tc);
544 503
545 const char invalid_config_string[] = 504 const char invalid_config_string[] =
546 "{" 505 "{"
547 "\"enable_sampling\":\"true\","
548 "\"enable_systrace\":1," 506 "\"enable_systrace\":1,"
549 "\"excluded_categories\":[\"excluded\"]," 507 "\"excluded_categories\":[\"excluded\"],"
550 "\"included_categories\":\"not a list\"," 508 "\"included_categories\":\"not a list\","
551 "\"record_mode\":\"arbitrary-mode\"," 509 "\"record_mode\":\"arbitrary-mode\","
552 "\"synthetic_delays\":[\"test.Delay1;16\"," 510 "\"synthetic_delays\":[\"test.Delay1;16\","
553 "\"invalid-delay\"," 511 "\"invalid-delay\","
554 "\"test.Delay2;32\"]" 512 "\"test.Delay2;32\"]"
555 "}"; 513 "}";
556 tc = TraceConfig(invalid_config_string); 514 tc = TraceConfig(invalid_config_string);
557 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode()); 515 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode());
558 EXPECT_FALSE(tc.IsSamplingEnabled());
559 EXPECT_FALSE(tc.IsSystraceEnabled()); 516 EXPECT_FALSE(tc.IsSystraceEnabled());
560 EXPECT_FALSE(tc.IsArgumentFilterEnabled()); 517 EXPECT_FALSE(tc.IsArgumentFilterEnabled());
561 EXPECT_STREQ("-excluded,DELAY(test.Delay1;16),DELAY(test.Delay2;32)", 518 EXPECT_STREQ("-excluded,DELAY(test.Delay1;16),DELAY(test.Delay2;32)",
562 tc.ToCategoryFilterString().c_str()); 519 tc.ToCategoryFilterString().c_str());
563 520
564 const char invalid_config_string_2[] = 521 const char invalid_config_string_2[] =
565 "{" 522 "{"
566 "\"included_categories\":[\"category\",\"disabled-by-default-pattern\"]," 523 "\"included_categories\":[\"category\",\"disabled-by-default-pattern\"],"
567 "\"excluded_categories\":[\"category\",\"disabled-by-default-pattern\"]" 524 "\"excluded_categories\":[\"category\",\"disabled-by-default-pattern\"]"
568 "}"; 525 "}";
569 tc = TraceConfig(invalid_config_string_2); 526 tc = TraceConfig(invalid_config_string_2);
570 EXPECT_TRUE(tc.IsCategoryEnabled("category")); 527 EXPECT_TRUE(tc.IsCategoryEnabled("category"));
571 EXPECT_TRUE(tc.IsCategoryEnabled("disabled-by-default-pattern")); 528 EXPECT_TRUE(tc.IsCategoryEnabled("disabled-by-default-pattern"));
572 EXPECT_TRUE(tc.IsCategoryGroupEnabled("category")); 529 EXPECT_TRUE(tc.IsCategoryGroupEnabled("category"));
573 EXPECT_TRUE(tc.IsCategoryGroupEnabled("disabled-by-default-pattern")); 530 EXPECT_TRUE(tc.IsCategoryGroupEnabled("disabled-by-default-pattern"));
574 } 531 }
575 532
576 TEST(TraceConfigTest, MergingTraceConfigs) { 533 TEST(TraceConfigTest, MergingTraceConfigs) {
577 // Merge 534 // Merge
578 TraceConfig tc; 535 TraceConfig tc;
579 TraceConfig tc2("included,-excluded,inc_pattern*,-exc_pattern*", ""); 536 TraceConfig tc2("included,-excluded,inc_pattern*,-exc_pattern*", "");
580 tc.Merge(tc2); 537 tc.Merge(tc2);
581 EXPECT_STREQ("{" 538 EXPECT_STREQ("{"
582 "\"enable_argument_filter\":false," 539 "\"enable_argument_filter\":false,"
583 "\"enable_sampling\":false,"
584 "\"enable_systrace\":false," 540 "\"enable_systrace\":false,"
585 "\"excluded_categories\":[\"excluded\",\"exc_pattern*\"]," 541 "\"excluded_categories\":[\"excluded\",\"exc_pattern*\"],"
586 "\"record_mode\":\"record-until-full\"" 542 "\"record_mode\":\"record-until-full\""
587 "}", 543 "}",
588 tc.ToString().c_str()); 544 tc.ToString().c_str());
589 545
590 tc = TraceConfig("DELAY(test.Delay1;16)", ""); 546 tc = TraceConfig("DELAY(test.Delay1;16)", "");
591 tc2 = TraceConfig("DELAY(test.Delay2;32)", ""); 547 tc2 = TraceConfig("DELAY(test.Delay2;32)", "");
592 tc.Merge(tc2); 548 tc.Merge(tc2);
593 EXPECT_EQ(2u, tc.GetSyntheticDelayValues().size()); 549 EXPECT_EQ(2u, tc.GetSyntheticDelayValues().size());
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
640 " bad_category ")); 596 " bad_category "));
641 EXPECT_TRUE(TraceConfig::IsEmptyOrContainsLeadingOrTrailingWhitespace( 597 EXPECT_TRUE(TraceConfig::IsEmptyOrContainsLeadingOrTrailingWhitespace(
642 "")); 598 ""));
643 EXPECT_FALSE(TraceConfig::IsEmptyOrContainsLeadingOrTrailingWhitespace( 599 EXPECT_FALSE(TraceConfig::IsEmptyOrContainsLeadingOrTrailingWhitespace(
644 "good_category")); 600 "good_category"));
645 } 601 }
646 602
647 TEST(TraceConfigTest, SetTraceOptionValues) { 603 TEST(TraceConfigTest, SetTraceOptionValues) {
648 TraceConfig tc; 604 TraceConfig tc;
649 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode()); 605 EXPECT_EQ(RECORD_UNTIL_FULL, tc.GetTraceRecordMode());
650 EXPECT_FALSE(tc.IsSamplingEnabled());
651 EXPECT_FALSE(tc.IsSystraceEnabled()); 606 EXPECT_FALSE(tc.IsSystraceEnabled());
652 607
653 tc.SetTraceRecordMode(RECORD_AS_MUCH_AS_POSSIBLE); 608 tc.SetTraceRecordMode(RECORD_AS_MUCH_AS_POSSIBLE);
654 EXPECT_EQ(RECORD_AS_MUCH_AS_POSSIBLE, tc.GetTraceRecordMode()); 609 EXPECT_EQ(RECORD_AS_MUCH_AS_POSSIBLE, tc.GetTraceRecordMode());
655 610
656 tc.EnableSampling();
657 EXPECT_TRUE(tc.IsSamplingEnabled());
658
659 tc.EnableSystrace(); 611 tc.EnableSystrace();
660 EXPECT_TRUE(tc.IsSystraceEnabled()); 612 EXPECT_TRUE(tc.IsSystraceEnabled());
661 } 613 }
662 614
663 TEST(TraceConfigTest, TraceConfigFromMemoryConfigString) { 615 TEST(TraceConfigTest, TraceConfigFromMemoryConfigString) {
664 std::string tc_str1 = 616 std::string tc_str1 =
665 TraceConfigMemoryTestUtil::GetTraceConfig_PeriodicTriggers(200, 2000); 617 TraceConfigMemoryTestUtil::GetTraceConfig_PeriodicTriggers(200, 2000);
666 TraceConfig tc1(tc_str1); 618 TraceConfig tc1(tc_str1);
667 EXPECT_EQ(tc_str1, tc1.ToString()); 619 EXPECT_EQ(tc_str1, tc1.ToString());
668 EXPECT_TRUE(tc1.IsCategoryGroupEnabled(MemoryDumpManager::kTraceCategory)); 620 EXPECT_TRUE(tc1.IsCategoryGroupEnabled(MemoryDumpManager::kTraceCategory));
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
709 EXPECT_NE(std::string::npos, tc.ToString().find("memory_dump_config")); 661 EXPECT_NE(std::string::npos, tc.ToString().find("memory_dump_config"));
710 EXPECT_EQ(2u, tc.memory_dump_config_.triggers.size()); 662 EXPECT_EQ(2u, tc.memory_dump_config_.triggers.size());
711 EXPECT_EQ(TraceConfig::MemoryDumpConfig::HeapProfiler 663 EXPECT_EQ(TraceConfig::MemoryDumpConfig::HeapProfiler
712 ::kDefaultBreakdownThresholdBytes, 664 ::kDefaultBreakdownThresholdBytes,
713 tc.memory_dump_config_.heap_profiler_options 665 tc.memory_dump_config_.heap_profiler_options
714 .breakdown_threshold_bytes); 666 .breakdown_threshold_bytes);
715 } 667 }
716 668
717 } // namespace trace_event 669 } // namespace trace_event
718 } // namespace base 670 } // namespace base
OLDNEW
« no previous file with comments | « base/trace_event/trace_config_memory_test_util.h ('k') | base/trace_event/trace_event.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698