OLD | NEW |
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 "base/json/json_reader.h" | 5 #include "base/json/json_reader.h" |
6 #include "base/json/json_writer.h" | 6 #include "base/json/json_writer.h" |
7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
8 #include "base/values.h" | 8 #include "base/values.h" |
9 #include "content/public/browser/background_tracing_preemptive_config.h" | 9 #include "content/public/browser/background_tracing_preemptive_config.h" |
10 #include "content/public/browser/background_tracing_reactive_config.h" | 10 #include "content/public/browser/background_tracing_reactive_config.h" |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
106 // Invalid tracing rule type | 106 // Invalid tracing rule type |
107 EXPECT_FALSE(ReadFromJSONString( | 107 EXPECT_FALSE(ReadFromJSONString( |
108 "{\"mode\":\"reactive\"," | 108 "{\"mode\":\"reactive\"," |
109 "\"configs\": [{\"rule\": []}]}")); | 109 "\"configs\": [{\"rule\": []}]}")); |
110 EXPECT_FALSE(ReadFromJSONString( | 110 EXPECT_FALSE(ReadFromJSONString( |
111 "{\"mode\":\"reactive\"," | 111 "{\"mode\":\"reactive\"," |
112 "\"configs\": [{\"rule\": \"\"}]}")); | 112 "\"configs\": [{\"rule\": \"\"}]}")); |
113 EXPECT_FALSE(ReadFromJSONString( | 113 EXPECT_FALSE(ReadFromJSONString( |
114 "{\"mode\":\"reactive\"," | 114 "{\"mode\":\"reactive\"," |
115 "\"configs\": [{\"rule\": " | 115 "\"configs\": [{\"rule\": " |
116 "\"trace_on_trigger_until_10s_or_trigger_or_full\"}]}")); | 116 "\"trace_for_10s_or_trigger_or_full\"}]}")); |
117 | 117 |
118 EXPECT_FALSE(ReadFromJSONString( | 118 EXPECT_FALSE(ReadFromJSONString( |
119 "{\"mode\":\"reactive\"," | 119 "{\"mode\":\"reactive\"," |
120 "\"configs\": [{\"rule\": " | 120 "\"configs\": [{\"rule\": " |
121 "\"trace_on_trigger_until_10s_or_trigger_or_full\", \"category\": " | 121 "\"trace_for_10s_or_trigger_or_full\", \"category\": " |
122 "[]}]}")); | 122 "[]}]}")); |
123 EXPECT_FALSE(ReadFromJSONString( | 123 EXPECT_FALSE(ReadFromJSONString( |
124 "{\"mode\":\"reactive\"," | 124 "{\"mode\":\"reactive\"," |
125 "\"configs\": [{\"rule\": " | 125 "\"configs\": [{\"rule\": " |
126 "\"trace_on_trigger_until_10s_or_trigger_or_full\", \"category\": " | 126 "\"trace_for_10s_or_trigger_or_full\", \"category\": " |
127 "\"\"}]}")); | 127 "\"\"}]}")); |
128 EXPECT_FALSE(ReadFromJSONString( | 128 EXPECT_FALSE(ReadFromJSONString( |
129 "{\"mode\":\"reactive\"," | 129 "{\"mode\":\"reactive\"," |
130 "\"configs\": [{\"rule\": " | 130 "\"configs\": [{\"rule\": " |
131 "\"trace_on_trigger_until_10s_or_trigger_or_full\", \"category\": " | 131 "\"trace_for_10s_or_trigger_or_full\", \"category\": " |
132 "\"benchmark\"}]}")); | 132 "\"benchmark\"}]}")); |
133 | 133 |
134 EXPECT_FALSE(ReadFromJSONString( | 134 EXPECT_FALSE(ReadFromJSONString( |
135 "{\"mode\":\"reactive\"," | 135 "{\"mode\":\"reactive\"," |
136 "\"configs\": [{\"rule\": " | 136 "\"configs\": [{\"rule\": " |
137 "\"trace_on_trigger_until_10s_or_trigger_or_full\", \"category\": " | 137 "\"trace_for_10s_or_trigger_or_full\", \"category\": " |
138 "\"benchmark\", \"trigger_name\": []}]}")); | 138 "\"benchmark\", \"trigger_name\": []}]}")); |
139 EXPECT_FALSE(ReadFromJSONString( | 139 EXPECT_FALSE(ReadFromJSONString( |
140 "{\"mode\":\"reactive\"," | 140 "{\"mode\":\"reactive\"," |
141 "\"configs\": [{\"rule\": " | 141 "\"configs\": [{\"rule\": " |
142 "\"trace_on_trigger_until_10s_or_trigger_or_full\", \"category\": " | 142 "\"trace_for_10s_or_trigger_or_full\", \"category\": " |
143 "\"benchmark\", \"trigger_name\": 0}]}")); | 143 "\"benchmark\", \"trigger_name\": 0}]}")); |
144 } | 144 } |
145 | 145 |
146 TEST_F(BackgroundTracingConfigTest, PreemptiveConfigFromValidString) { | 146 TEST_F(BackgroundTracingConfigTest, PreemptiveConfigFromValidString) { |
147 scoped_ptr<BackgroundTracingPreemptiveConfig> config; | 147 scoped_ptr<BackgroundTracingPreemptiveConfig> config; |
148 | 148 |
149 config = ReadPreemptiveFromJSONString( | 149 config = ReadPreemptiveFromJSONString( |
150 "{\"mode\":\"PREEMPTIVE_TRACING_MODE\", \"category\": " | 150 "{\"mode\":\"PREEMPTIVE_TRACING_MODE\", \"category\": " |
151 "\"BENCHMARK\",\"configs\": []}"); | 151 "\"BENCHMARK\",\"configs\": []}"); |
152 EXPECT_TRUE(config); | 152 EXPECT_TRUE(config); |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
199 scoped_ptr<BackgroundTracingReactiveConfig> config; | 199 scoped_ptr<BackgroundTracingReactiveConfig> config; |
200 | 200 |
201 config = ReadReactiveFromJSONString( | 201 config = ReadReactiveFromJSONString( |
202 "{\"mode\":\"REACTIVE_TRACING_MODE\", \"configs\": []}"); | 202 "{\"mode\":\"REACTIVE_TRACING_MODE\", \"configs\": []}"); |
203 EXPECT_TRUE(config); | 203 EXPECT_TRUE(config); |
204 EXPECT_EQ(config->mode, BackgroundTracingConfig::REACTIVE_TRACING_MODE); | 204 EXPECT_EQ(config->mode, BackgroundTracingConfig::REACTIVE_TRACING_MODE); |
205 EXPECT_EQ(config->configs.size(), 0u); | 205 EXPECT_EQ(config->configs.size(), 0u); |
206 | 206 |
207 config = ReadReactiveFromJSONString( | 207 config = ReadReactiveFromJSONString( |
208 "{\"mode\":\"REACTIVE_TRACING_MODE\",\"configs\": [{\"rule\": " | 208 "{\"mode\":\"REACTIVE_TRACING_MODE\",\"configs\": [{\"rule\": " |
209 "\"TRACE_ON_MANUAL_TRIGGER_UNTIL_10S_OR_NEXT_TRIGGER_OR_FULL\", " | 209 "\"TRACE_FOR_10S_OR_TRIGGER_OR_FULL\", " |
210 "\"category\": \"BENCHMARK\", \"trigger_name\": \"foo\"}]}"); | 210 "\"category\": \"BENCHMARK\", \"trigger_name\": \"foo\"}]}"); |
211 EXPECT_TRUE(config); | 211 EXPECT_TRUE(config); |
212 EXPECT_EQ(config->mode, BackgroundTracingConfig::REACTIVE_TRACING_MODE); | 212 EXPECT_EQ(config->mode, BackgroundTracingConfig::REACTIVE_TRACING_MODE); |
213 EXPECT_EQ(config->configs.size(), 1u); | 213 EXPECT_EQ(config->configs.size(), 1u); |
214 EXPECT_EQ(config->configs[0].type, | 214 EXPECT_EQ(config->configs[0].type, |
215 BackgroundTracingReactiveConfig:: | 215 BackgroundTracingReactiveConfig::TRACE_FOR_10S_OR_TRIGGER_OR_FULL); |
216 TRACE_ON_MANUAL_TRIGGER_UNTIL_10S_OR_NEXT_TRIGGER_OR_FULL); | |
217 EXPECT_EQ(config->configs[0].trigger_name, "foo"); | 216 EXPECT_EQ(config->configs[0].trigger_name, "foo"); |
218 EXPECT_EQ(config->configs[0].category_preset, | 217 EXPECT_EQ(config->configs[0].category_preset, |
219 BackgroundTracingConfig::BENCHMARK); | 218 BackgroundTracingConfig::BENCHMARK); |
220 | 219 |
221 config = ReadReactiveFromJSONString( | 220 config = ReadReactiveFromJSONString( |
222 "{\"mode\":\"REACTIVE_TRACING_MODE\",\"configs\": [{\"rule\": " | 221 "{\"mode\":\"REACTIVE_TRACING_MODE\",\"configs\": [{\"rule\": " |
223 "\"TRACE_ON_MANUAL_TRIGGER_UNTIL_10S_OR_NEXT_TRIGGER_OR_FULL\", " | 222 "\"TRACE_FOR_10S_OR_TRIGGER_OR_FULL\", " |
224 "\"category\": \"BENCHMARK_DEEP\", \"trigger_name\": \"foo\"}]}"); | 223 "\"category\": \"BENCHMARK_DEEP\", \"trigger_name\": \"foo\"}]}"); |
225 EXPECT_TRUE(config); | 224 EXPECT_TRUE(config); |
226 EXPECT_EQ(config->mode, BackgroundTracingConfig::REACTIVE_TRACING_MODE); | 225 EXPECT_EQ(config->mode, BackgroundTracingConfig::REACTIVE_TRACING_MODE); |
227 EXPECT_EQ(config->configs.size(), 1u); | 226 EXPECT_EQ(config->configs.size(), 1u); |
228 EXPECT_EQ(config->configs[0].type, | 227 EXPECT_EQ(config->configs[0].type, |
229 BackgroundTracingReactiveConfig:: | 228 BackgroundTracingReactiveConfig::TRACE_FOR_10S_OR_TRIGGER_OR_FULL); |
230 TRACE_ON_MANUAL_TRIGGER_UNTIL_10S_OR_NEXT_TRIGGER_OR_FULL); | |
231 EXPECT_EQ(config->configs[0].trigger_name, "foo"); | 229 EXPECT_EQ(config->configs[0].trigger_name, "foo"); |
232 EXPECT_EQ(config->configs[0].category_preset, | 230 EXPECT_EQ(config->configs[0].category_preset, |
233 BackgroundTracingConfig::BENCHMARK_DEEP); | 231 BackgroundTracingConfig::BENCHMARK_DEEP); |
234 | 232 |
235 config = ReadReactiveFromJSONString( | 233 config = ReadReactiveFromJSONString( |
236 "{\"mode\":\"REACTIVE_TRACING_MODE\",\"configs\": [{\"rule\": " | 234 "{\"mode\":\"REACTIVE_TRACING_MODE\",\"configs\": [{\"rule\": " |
237 "\"TRACE_ON_MANUAL_TRIGGER_UNTIL_10S_OR_NEXT_TRIGGER_OR_FULL\", " | 235 "\"TRACE_FOR_10S_OR_TRIGGER_OR_FULL\", " |
238 "\"category\": \"BENCHMARK_DEEP\", \"trigger_name\": " | 236 "\"category\": \"BENCHMARK_DEEP\", \"trigger_name\": " |
239 "\"foo1\"},{\"rule\": " | 237 "\"foo1\"},{\"rule\": " |
240 "\"TRACE_ON_MANUAL_TRIGGER_UNTIL_10S_OR_NEXT_TRIGGER_OR_FULL\", " | 238 "\"TRACE_FOR_10S_OR_TRIGGER_OR_FULL\", " |
241 "\"category\": \"BENCHMARK_DEEP\", \"trigger_name\": \"foo2\"}]}"); | 239 "\"category\": \"BENCHMARK_DEEP\", \"trigger_name\": \"foo2\"}]}"); |
242 EXPECT_TRUE(config); | 240 EXPECT_TRUE(config); |
243 EXPECT_EQ(config->mode, BackgroundTracingConfig::REACTIVE_TRACING_MODE); | 241 EXPECT_EQ(config->mode, BackgroundTracingConfig::REACTIVE_TRACING_MODE); |
244 EXPECT_EQ(config->configs.size(), 2u); | 242 EXPECT_EQ(config->configs.size(), 2u); |
245 EXPECT_EQ(config->configs[0].type, | 243 EXPECT_EQ(config->configs[0].type, |
246 BackgroundTracingReactiveConfig:: | 244 BackgroundTracingReactiveConfig::TRACE_FOR_10S_OR_TRIGGER_OR_FULL); |
247 TRACE_ON_MANUAL_TRIGGER_UNTIL_10S_OR_NEXT_TRIGGER_OR_FULL); | |
248 EXPECT_EQ(config->configs[0].trigger_name, "foo1"); | 245 EXPECT_EQ(config->configs[0].trigger_name, "foo1"); |
249 EXPECT_EQ(config->configs[0].category_preset, | 246 EXPECT_EQ(config->configs[0].category_preset, |
250 BackgroundTracingConfig::BENCHMARK_DEEP); | 247 BackgroundTracingConfig::BENCHMARK_DEEP); |
251 EXPECT_EQ(config->configs[1].type, | 248 EXPECT_EQ(config->configs[1].type, |
252 BackgroundTracingReactiveConfig:: | 249 BackgroundTracingReactiveConfig::TRACE_FOR_10S_OR_TRIGGER_OR_FULL); |
253 TRACE_ON_MANUAL_TRIGGER_UNTIL_10S_OR_NEXT_TRIGGER_OR_FULL); | |
254 EXPECT_EQ(config->configs[1].trigger_name, "foo2"); | 250 EXPECT_EQ(config->configs[1].trigger_name, "foo2"); |
255 EXPECT_EQ(config->configs[1].category_preset, | 251 EXPECT_EQ(config->configs[1].category_preset, |
256 BackgroundTracingConfig::BENCHMARK_DEEP); | 252 BackgroundTracingConfig::BENCHMARK_DEEP); |
257 } | 253 } |
258 | 254 |
259 TEST_F(BackgroundTracingConfigTest, ValidPreemptiveConfigToString) { | 255 TEST_F(BackgroundTracingConfigTest, ValidPreemptiveConfigToString) { |
260 scoped_ptr<BackgroundTracingPreemptiveConfig> config( | 256 scoped_ptr<BackgroundTracingPreemptiveConfig> config( |
261 new BackgroundTracingPreemptiveConfig()); | 257 new BackgroundTracingPreemptiveConfig()); |
262 | 258 |
263 // Default values | 259 // Default values |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
340 | 336 |
341 // Default values | 337 // Default values |
342 EXPECT_EQ(ConfigToString(config.get()), | 338 EXPECT_EQ(ConfigToString(config.get()), |
343 "{\"configs\":[],\"mode\":\"REACTIVE_TRACING_MODE\"}"); | 339 "{\"configs\":[],\"mode\":\"REACTIVE_TRACING_MODE\"}"); |
344 | 340 |
345 { | 341 { |
346 config.reset(new BackgroundTracingReactiveConfig()); | 342 config.reset(new BackgroundTracingReactiveConfig()); |
347 | 343 |
348 BackgroundTracingReactiveConfig::TracingRule rule; | 344 BackgroundTracingReactiveConfig::TracingRule rule; |
349 rule.type = BackgroundTracingReactiveConfig:: | 345 rule.type = BackgroundTracingReactiveConfig:: |
350 TRACE_ON_MANUAL_TRIGGER_UNTIL_10S_OR_NEXT_TRIGGER_OR_FULL; | 346 TRACE_FOR_10S_OR_TRIGGER_OR_FULL; |
351 rule.trigger_name = "foo"; | 347 rule.trigger_name = "foo"; |
352 rule.category_preset = BackgroundTracingConfig::BENCHMARK_DEEP; | 348 rule.category_preset = BackgroundTracingConfig::BENCHMARK_DEEP; |
353 config->configs.push_back(rule); | 349 config->configs.push_back(rule); |
354 EXPECT_EQ(ConfigToString(config.get()), | 350 EXPECT_EQ(ConfigToString(config.get()), |
355 "{\"configs\":[{\"category\":\"BENCHMARK_DEEP\",\"rule\":\"TRACE_" | 351 "{\"configs\":[{\"category\":\"BENCHMARK_DEEP\",\"rule\":\"TRACE_" |
356 "ON_MANUAL_TRIGGER_UNTIL_10S_OR_NEXT_TRIGGER_OR_FULL\",\"trigger_" | 352 "FOR_10S_OR_TRIGGER_OR_FULL\",\"trigger_name\":\"foo\"}],\"mode\"" |
357 "name\":\"foo\"}],\"mode\":\"REACTIVE_TRACING_MODE\"}"); | 353 ":\"REACTIVE_TRACING_MODE\"}"); |
358 } | 354 } |
359 | 355 |
360 { | 356 { |
361 config.reset(new BackgroundTracingReactiveConfig()); | 357 config.reset(new BackgroundTracingReactiveConfig()); |
362 | 358 |
363 BackgroundTracingReactiveConfig::TracingRule rule; | 359 BackgroundTracingReactiveConfig::TracingRule rule; |
364 rule.type = BackgroundTracingReactiveConfig:: | 360 rule.type = BackgroundTracingReactiveConfig:: |
365 TRACE_ON_MANUAL_TRIGGER_UNTIL_10S_OR_NEXT_TRIGGER_OR_FULL; | 361 TRACE_FOR_10S_OR_TRIGGER_OR_FULL; |
366 rule.trigger_name = "foo1"; | 362 rule.trigger_name = "foo1"; |
367 rule.category_preset = BackgroundTracingConfig::BENCHMARK_DEEP; | 363 rule.category_preset = BackgroundTracingConfig::BENCHMARK_DEEP; |
368 config->configs.push_back(rule); | 364 config->configs.push_back(rule); |
369 rule.trigger_name = "foo2"; | 365 rule.trigger_name = "foo2"; |
370 config->configs.push_back(rule); | 366 config->configs.push_back(rule); |
371 EXPECT_EQ(ConfigToString(config.get()), | 367 EXPECT_EQ(ConfigToString(config.get()), |
372 "{\"configs\":[{\"category\":\"BENCHMARK_DEEP\",\"rule\":\"TRACE_" | 368 "{\"configs\":[{\"category\":\"BENCHMARK_DEEP\",\"rule\":\"TRACE_" |
373 "ON_MANUAL_TRIGGER_UNTIL_10S_OR_NEXT_TRIGGER_OR_FULL\",\"trigger_" | 369 "FOR_10S_OR_TRIGGER_OR_FULL\",\"trigger_name\":\"foo1\"},{" |
374 "name\":\"foo1\"},{\"category\":\"BENCHMARK_DEEP\",\"rule\":" | 370 "\"category\":\"BENCHMARK_DEEP\",\"rule\":\"TRACE_FOR_10S_OR_" |
375 "\"TRACE_ON_MANUAL_TRIGGER_UNTIL_10S_OR_NEXT_TRIGGER_OR_FULL\"," | 371 "TRIGGER_OR_FULL\",\"trigger_name\":\"foo2\"}],\"mode\":" |
376 "\"trigger_name\":\"foo2\"}],\"mode\":\"REACTIVE_TRACING_" | 372 "\"REACTIVE_TRACING_MODE\"}"); |
377 "MODE\"}"); | |
378 } | 373 } |
379 } | 374 } |
380 | 375 |
381 } // namspace content | 376 } // namspace content |
OLD | NEW |