| 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 |