OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/files/file_util.h" | 5 #include "base/files/file_util.h" |
6 #include "base/memory/ref_counted_memory.h" | 6 #include "base/memory/ref_counted_memory.h" |
7 #include "base/run_loop.h" | 7 #include "base/run_loop.h" |
8 #include "content/public/browser/browser_thread.h" | 8 #include "content/public/browser/browser_thread.h" |
9 #include "content/public/browser/tracing_controller.h" | 9 #include "content/public/browser/tracing_controller.h" |
10 #include "content/public/test/browser_test_utils.h" | 10 #include "content/public/test/browser_test_utils.h" |
11 #include "content/public/test/content_browser_test.h" | 11 #include "content/public/test/content_browser_test.h" |
12 #include "content/public/test/content_browser_test_utils.h" | 12 #include "content/public/test/content_browser_test_utils.h" |
13 #include "content/shell/browser/shell.h" | 13 #include "content/shell/browser/shell.h" |
14 | 14 |
15 using base::trace_event::CategoryFilter; | |
16 using base::trace_event::TraceOptions; | |
17 using base::trace_event::RECORD_CONTINUOUSLY; | 15 using base::trace_event::RECORD_CONTINUOUSLY; |
18 using base::trace_event::RECORD_UNTIL_FULL; | 16 using base::trace_event::RECORD_UNTIL_FULL; |
| 17 using base::trace_event::TraceConfig; |
19 | 18 |
20 namespace content { | 19 namespace content { |
21 | 20 |
22 class TracingControllerTestEndpoint | 21 class TracingControllerTestEndpoint |
23 : public TracingController::TraceDataEndpoint { | 22 : public TracingController::TraceDataEndpoint { |
24 public: | 23 public: |
25 TracingControllerTestEndpoint( | 24 TracingControllerTestEndpoint( |
26 base::Callback<void(base::RefCountedString*)> done_callback) | 25 base::Callback<void(base::RefCountedString*)> done_callback) |
27 : done_callback_(done_callback) {} | 26 : done_callback_(done_callback) {} |
28 | 27 |
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
158 | 157 |
159 TracingController* controller = TracingController::GetInstance(); | 158 TracingController* controller = TracingController::GetInstance(); |
160 | 159 |
161 { | 160 { |
162 base::RunLoop run_loop; | 161 base::RunLoop run_loop; |
163 TracingController::EnableRecordingDoneCallback callback = | 162 TracingController::EnableRecordingDoneCallback callback = |
164 base::Bind(&TracingControllerTest::EnableRecordingDoneCallbackTest, | 163 base::Bind(&TracingControllerTest::EnableRecordingDoneCallbackTest, |
165 base::Unretained(this), | 164 base::Unretained(this), |
166 run_loop.QuitClosure()); | 165 run_loop.QuitClosure()); |
167 bool result = controller->EnableRecording( | 166 bool result = controller->EnableRecording( |
168 CategoryFilter(), TraceOptions(), callback); | 167 TraceConfig(), callback); |
169 ASSERT_TRUE(result); | 168 ASSERT_TRUE(result); |
170 run_loop.Run(); | 169 run_loop.Run(); |
171 EXPECT_EQ(enable_recording_done_callback_count(), 1); | 170 EXPECT_EQ(enable_recording_done_callback_count(), 1); |
172 } | 171 } |
173 | 172 |
174 { | 173 { |
175 base::RunLoop run_loop; | 174 base::RunLoop run_loop; |
176 base::Callback<void(base::RefCountedString*)> callback = base::Bind( | 175 base::Callback<void(base::RefCountedString*)> callback = base::Bind( |
177 &TracingControllerTest::DisableRecordingStringDoneCallbackTest, | 176 &TracingControllerTest::DisableRecordingStringDoneCallbackTest, |
178 base::Unretained(this), | 177 base::Unretained(this), |
179 run_loop.QuitClosure()); | 178 run_loop.QuitClosure()); |
180 bool result = controller->DisableRecording( | 179 bool result = controller->DisableRecording( |
181 TracingController::CreateStringSink(callback)); | 180 TracingController::CreateStringSink(callback)); |
182 ASSERT_TRUE(result); | 181 ASSERT_TRUE(result); |
183 run_loop.Run(); | 182 run_loop.Run(); |
184 EXPECT_EQ(disable_recording_done_callback_count(), 1); | 183 EXPECT_EQ(disable_recording_done_callback_count(), 1); |
185 } | 184 } |
186 } | 185 } |
187 | 186 |
188 void TestEnableAndDisableRecordingCompressed() { | 187 void TestEnableAndDisableRecordingCompressed() { |
189 Navigate(shell()); | 188 Navigate(shell()); |
190 | 189 |
191 TracingController* controller = TracingController::GetInstance(); | 190 TracingController* controller = TracingController::GetInstance(); |
192 | 191 |
193 { | 192 { |
194 base::RunLoop run_loop; | 193 base::RunLoop run_loop; |
195 TracingController::EnableRecordingDoneCallback callback = | 194 TracingController::EnableRecordingDoneCallback callback = |
196 base::Bind(&TracingControllerTest::EnableRecordingDoneCallbackTest, | 195 base::Bind(&TracingControllerTest::EnableRecordingDoneCallbackTest, |
197 base::Unretained(this), run_loop.QuitClosure()); | 196 base::Unretained(this), run_loop.QuitClosure()); |
198 bool result = controller->EnableRecording(CategoryFilter(), | 197 bool result = controller->EnableRecording(TraceConfig(), callback); |
199 TraceOptions(), callback); | |
200 ASSERT_TRUE(result); | 198 ASSERT_TRUE(result); |
201 run_loop.Run(); | 199 run_loop.Run(); |
202 EXPECT_EQ(enable_recording_done_callback_count(), 1); | 200 EXPECT_EQ(enable_recording_done_callback_count(), 1); |
203 } | 201 } |
204 | 202 |
205 { | 203 { |
206 base::RunLoop run_loop; | 204 base::RunLoop run_loop; |
207 base::Callback<void(base::RefCountedString*)> callback = base::Bind( | 205 base::Callback<void(base::RefCountedString*)> callback = base::Bind( |
208 &TracingControllerTest::DisableRecordingStringDoneCallbackTest, | 206 &TracingControllerTest::DisableRecordingStringDoneCallbackTest, |
209 base::Unretained(this), run_loop.QuitClosure()); | 207 base::Unretained(this), run_loop.QuitClosure()); |
(...skipping 10 matching lines...) Expand all Loading... |
220 const base::FilePath& result_file_path) { | 218 const base::FilePath& result_file_path) { |
221 Navigate(shell()); | 219 Navigate(shell()); |
222 | 220 |
223 TracingController* controller = TracingController::GetInstance(); | 221 TracingController* controller = TracingController::GetInstance(); |
224 | 222 |
225 { | 223 { |
226 base::RunLoop run_loop; | 224 base::RunLoop run_loop; |
227 TracingController::EnableRecordingDoneCallback callback = | 225 TracingController::EnableRecordingDoneCallback callback = |
228 base::Bind(&TracingControllerTest::EnableRecordingDoneCallbackTest, | 226 base::Bind(&TracingControllerTest::EnableRecordingDoneCallbackTest, |
229 base::Unretained(this), run_loop.QuitClosure()); | 227 base::Unretained(this), run_loop.QuitClosure()); |
230 bool result = controller->EnableRecording(CategoryFilter(), | 228 bool result = controller->EnableRecording(TraceConfig(), callback); |
231 TraceOptions(), callback); | |
232 ASSERT_TRUE(result); | 229 ASSERT_TRUE(result); |
233 run_loop.Run(); | 230 run_loop.Run(); |
234 EXPECT_EQ(enable_recording_done_callback_count(), 1); | 231 EXPECT_EQ(enable_recording_done_callback_count(), 1); |
235 } | 232 } |
236 | 233 |
237 { | 234 { |
238 base::RunLoop run_loop; | 235 base::RunLoop run_loop; |
239 base::Closure callback = base::Bind( | 236 base::Closure callback = base::Bind( |
240 &TracingControllerTest::DisableRecordingFileDoneCallbackTest, | 237 &TracingControllerTest::DisableRecordingFileDoneCallbackTest, |
241 base::Unretained(this), run_loop.QuitClosure(), result_file_path); | 238 base::Unretained(this), run_loop.QuitClosure(), result_file_path); |
(...skipping 12 matching lines...) Expand all Loading... |
254 Navigate(shell()); | 251 Navigate(shell()); |
255 | 252 |
256 TracingController* controller = TracingController::GetInstance(); | 253 TracingController* controller = TracingController::GetInstance(); |
257 | 254 |
258 { | 255 { |
259 base::RunLoop run_loop; | 256 base::RunLoop run_loop; |
260 TracingController::EnableRecordingDoneCallback callback = | 257 TracingController::EnableRecordingDoneCallback callback = |
261 base::Bind(&TracingControllerTest::EnableRecordingDoneCallbackTest, | 258 base::Bind(&TracingControllerTest::EnableRecordingDoneCallbackTest, |
262 base::Unretained(this), | 259 base::Unretained(this), |
263 run_loop.QuitClosure()); | 260 run_loop.QuitClosure()); |
264 bool result = controller->EnableRecording( | 261 bool result = controller->EnableRecording(TraceConfig(), callback); |
265 CategoryFilter(), TraceOptions(), callback); | |
266 ASSERT_TRUE(result); | 262 ASSERT_TRUE(result); |
267 run_loop.Run(); | 263 run_loop.Run(); |
268 EXPECT_EQ(enable_recording_done_callback_count(), 1); | 264 EXPECT_EQ(enable_recording_done_callback_count(), 1); |
269 } | 265 } |
270 | 266 |
271 { | 267 { |
272 base::RunLoop run_loop; | 268 base::RunLoop run_loop; |
273 base::Closure callback = base::Bind( | 269 base::Closure callback = base::Bind( |
274 &TracingControllerTest::DisableRecordingFileDoneCallbackTest, | 270 &TracingControllerTest::DisableRecordingFileDoneCallbackTest, |
275 base::Unretained(this), | 271 base::Unretained(this), |
276 run_loop.QuitClosure(), | 272 run_loop.QuitClosure(), |
277 result_file_path); | 273 result_file_path); |
278 bool result = controller->DisableRecording( | 274 bool result = controller->DisableRecording( |
279 TracingController::CreateFileSink(result_file_path, callback)); | 275 TracingController::CreateFileSink(result_file_path, callback)); |
280 ASSERT_TRUE(result); | 276 ASSERT_TRUE(result); |
281 run_loop.Run(); | 277 run_loop.Run(); |
282 EXPECT_EQ(disable_recording_done_callback_count(), 1); | 278 EXPECT_EQ(disable_recording_done_callback_count(), 1); |
283 } | 279 } |
284 } | 280 } |
285 | 281 |
286 void TestEnableCaptureAndDisableMonitoring( | 282 void TestEnableCaptureAndDisableMonitoring( |
287 const base::FilePath& result_file_path) { | 283 const base::FilePath& result_file_path) { |
288 Navigate(shell()); | 284 Navigate(shell()); |
289 | 285 |
290 TracingController* controller = TracingController::GetInstance(); | 286 TracingController* controller = TracingController::GetInstance(); |
291 | 287 |
292 { | 288 { |
293 bool is_monitoring; | 289 bool is_monitoring; |
294 CategoryFilter category_filter(""); | 290 TraceConfig trace_config("", ""); |
295 TraceOptions options; | |
296 controller->GetMonitoringStatus( | 291 controller->GetMonitoringStatus( |
297 &is_monitoring, &category_filter, &options); | 292 &is_monitoring, &trace_config); |
298 EXPECT_FALSE(is_monitoring); | 293 EXPECT_FALSE(is_monitoring); |
299 EXPECT_EQ("-*Debug,-*Test", category_filter.ToString()); | 294 EXPECT_EQ("-*Debug,-*Test", trace_config.ToCategoryFilterString()); |
300 EXPECT_FALSE(options.record_mode == RECORD_CONTINUOUSLY); | 295 EXPECT_FALSE(trace_config.GetTraceRecordMode() == RECORD_CONTINUOUSLY); |
301 EXPECT_FALSE(options.enable_sampling); | 296 EXPECT_FALSE(trace_config.IsSamplingEnabled()); |
302 EXPECT_FALSE(options.enable_systrace); | 297 EXPECT_FALSE(trace_config.IsSystraceEnabled()); |
303 } | 298 } |
304 | 299 |
305 { | 300 { |
306 base::RunLoop run_loop; | 301 base::RunLoop run_loop; |
307 TracingController::EnableMonitoringDoneCallback callback = | 302 TracingController::EnableMonitoringDoneCallback callback = |
308 base::Bind(&TracingControllerTest::EnableMonitoringDoneCallbackTest, | 303 base::Bind(&TracingControllerTest::EnableMonitoringDoneCallbackTest, |
309 base::Unretained(this), | 304 base::Unretained(this), |
310 run_loop.QuitClosure()); | 305 run_loop.QuitClosure()); |
311 | 306 |
312 TraceOptions trace_options; | 307 TraceConfig trace_config("*", ""); |
313 trace_options.enable_sampling = true; | 308 trace_config.EnableSampling(); |
314 | 309 bool result = controller->EnableMonitoring(trace_config, callback); |
315 bool result = controller->EnableMonitoring( | |
316 CategoryFilter("*"), | |
317 trace_options, | |
318 callback); | |
319 ASSERT_TRUE(result); | 310 ASSERT_TRUE(result); |
320 run_loop.Run(); | 311 run_loop.Run(); |
321 EXPECT_EQ(enable_monitoring_done_callback_count(), 1); | 312 EXPECT_EQ(enable_monitoring_done_callback_count(), 1); |
322 } | 313 } |
323 | 314 |
324 { | 315 { |
325 bool is_monitoring; | 316 bool is_monitoring; |
326 CategoryFilter category_filter(""); | 317 TraceConfig trace_config("", ""); |
327 TraceOptions options; | 318 controller->GetMonitoringStatus(&is_monitoring, &trace_config); |
328 controller->GetMonitoringStatus( | |
329 &is_monitoring, &category_filter, &options); | |
330 EXPECT_TRUE(is_monitoring); | 319 EXPECT_TRUE(is_monitoring); |
331 EXPECT_EQ("*", category_filter.ToString()); | 320 EXPECT_EQ("*", trace_config.ToCategoryFilterString()); |
332 EXPECT_FALSE(options.record_mode == RECORD_CONTINUOUSLY); | 321 EXPECT_FALSE(trace_config.GetTraceRecordMode() == RECORD_CONTINUOUSLY); |
333 EXPECT_TRUE(options.enable_sampling); | 322 EXPECT_TRUE(trace_config.IsSamplingEnabled()); |
334 EXPECT_FALSE(options.enable_systrace); | 323 EXPECT_FALSE(trace_config.IsSystraceEnabled()); |
335 } | 324 } |
336 | 325 |
337 { | 326 { |
338 base::RunLoop run_loop; | 327 base::RunLoop run_loop; |
339 base::Closure callback = base::Bind( | 328 base::Closure callback = base::Bind( |
340 &TracingControllerTest::CaptureMonitoringSnapshotDoneCallbackTest, | 329 &TracingControllerTest::CaptureMonitoringSnapshotDoneCallbackTest, |
341 base::Unretained(this), | 330 base::Unretained(this), |
342 run_loop.QuitClosure(), | 331 run_loop.QuitClosure(), |
343 result_file_path); | 332 result_file_path); |
344 ASSERT_TRUE(controller->CaptureMonitoringSnapshot( | 333 ASSERT_TRUE(controller->CaptureMonitoringSnapshot( |
345 TracingController::CreateFileSink(result_file_path, callback))); | 334 TracingController::CreateFileSink(result_file_path, callback))); |
346 run_loop.Run(); | 335 run_loop.Run(); |
347 EXPECT_EQ(capture_monitoring_snapshot_done_callback_count(), 1); | 336 EXPECT_EQ(capture_monitoring_snapshot_done_callback_count(), 1); |
348 } | 337 } |
349 | 338 |
350 { | 339 { |
351 base::RunLoop run_loop; | 340 base::RunLoop run_loop; |
352 TracingController::DisableMonitoringDoneCallback callback = | 341 TracingController::DisableMonitoringDoneCallback callback = |
353 base::Bind(&TracingControllerTest::DisableMonitoringDoneCallbackTest, | 342 base::Bind(&TracingControllerTest::DisableMonitoringDoneCallbackTest, |
354 base::Unretained(this), | 343 base::Unretained(this), |
355 run_loop.QuitClosure()); | 344 run_loop.QuitClosure()); |
356 bool result = controller->DisableMonitoring(callback); | 345 bool result = controller->DisableMonitoring(callback); |
357 ASSERT_TRUE(result); | 346 ASSERT_TRUE(result); |
358 run_loop.Run(); | 347 run_loop.Run(); |
359 EXPECT_EQ(disable_monitoring_done_callback_count(), 1); | 348 EXPECT_EQ(disable_monitoring_done_callback_count(), 1); |
360 } | 349 } |
361 | 350 |
362 { | 351 { |
363 bool is_monitoring; | 352 bool is_monitoring; |
364 CategoryFilter category_filter(""); | 353 TraceConfig trace_config("", ""); |
365 TraceOptions options; | 354 controller->GetMonitoringStatus(&is_monitoring, &trace_config); |
366 controller->GetMonitoringStatus(&is_monitoring, | |
367 &category_filter, | |
368 &options); | |
369 EXPECT_FALSE(is_monitoring); | 355 EXPECT_FALSE(is_monitoring); |
370 EXPECT_EQ("", category_filter.ToString()); | 356 EXPECT_EQ("", trace_config.ToCategoryFilterString()); |
371 EXPECT_FALSE(options.record_mode == RECORD_CONTINUOUSLY); | 357 EXPECT_FALSE(trace_config.GetTraceRecordMode() == RECORD_CONTINUOUSLY); |
372 EXPECT_FALSE(options.enable_sampling); | 358 EXPECT_FALSE(trace_config.IsSamplingEnabled()); |
373 EXPECT_FALSE(options.enable_systrace); | 359 EXPECT_FALSE(trace_config.IsSystraceEnabled()); |
374 } | 360 } |
375 } | 361 } |
376 | 362 |
377 private: | 363 private: |
378 int get_categories_done_callback_count_; | 364 int get_categories_done_callback_count_; |
379 int enable_recording_done_callback_count_; | 365 int enable_recording_done_callback_count_; |
380 int disable_recording_done_callback_count_; | 366 int disable_recording_done_callback_count_; |
381 int enable_monitoring_done_callback_count_; | 367 int enable_monitoring_done_callback_count_; |
382 int disable_monitoring_done_callback_count_; | 368 int disable_monitoring_done_callback_count_; |
383 int capture_monitoring_snapshot_done_callback_count_; | 369 int capture_monitoring_snapshot_done_callback_count_; |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
424 TestEnableAndDisableRecordingCompressedFile(file_path); | 410 TestEnableAndDisableRecordingCompressedFile(file_path); |
425 EXPECT_EQ(file_path.value(), last_actual_recording_file_path().value()); | 411 EXPECT_EQ(file_path.value(), last_actual_recording_file_path().value()); |
426 } | 412 } |
427 | 413 |
428 IN_PROC_BROWSER_TEST_F(TracingControllerTest, | 414 IN_PROC_BROWSER_TEST_F(TracingControllerTest, |
429 EnableAndDisableRecordingWithEmptyFileAndNullCallback) { | 415 EnableAndDisableRecordingWithEmptyFileAndNullCallback) { |
430 Navigate(shell()); | 416 Navigate(shell()); |
431 | 417 |
432 TracingController* controller = TracingController::GetInstance(); | 418 TracingController* controller = TracingController::GetInstance(); |
433 EXPECT_TRUE(controller->EnableRecording( | 419 EXPECT_TRUE(controller->EnableRecording( |
434 CategoryFilter(), | 420 TraceConfig(), |
435 TraceOptions(), | |
436 TracingController::EnableRecordingDoneCallback())); | 421 TracingController::EnableRecordingDoneCallback())); |
437 EXPECT_TRUE(controller->DisableRecording(NULL)); | 422 EXPECT_TRUE(controller->DisableRecording(NULL)); |
438 base::RunLoop().RunUntilIdle(); | 423 base::RunLoop().RunUntilIdle(); |
439 } | 424 } |
440 | 425 |
441 IN_PROC_BROWSER_TEST_F(TracingControllerTest, | 426 IN_PROC_BROWSER_TEST_F(TracingControllerTest, |
442 EnableCaptureAndDisableMonitoring) { | 427 EnableCaptureAndDisableMonitoring) { |
443 base::FilePath file_path; | 428 base::FilePath file_path; |
444 base::CreateTemporaryFile(&file_path); | 429 base::CreateTemporaryFile(&file_path); |
445 TestEnableCaptureAndDisableMonitoring(file_path); | 430 TestEnableCaptureAndDisableMonitoring(file_path); |
(...skipping 14 matching lines...) Expand all Loading... |
460 #else | 445 #else |
461 #define MAYBE_EnableCaptureAndDisableMonitoringWithEmptyFileAndNullCallback \ | 446 #define MAYBE_EnableCaptureAndDisableMonitoringWithEmptyFileAndNullCallback \ |
462 EnableCaptureAndDisableMonitoringWithEmptyFileAndNullCallback | 447 EnableCaptureAndDisableMonitoringWithEmptyFileAndNullCallback |
463 #endif | 448 #endif |
464 IN_PROC_BROWSER_TEST_F( | 449 IN_PROC_BROWSER_TEST_F( |
465 TracingControllerTest, | 450 TracingControllerTest, |
466 MAYBE_EnableCaptureAndDisableMonitoringWithEmptyFileAndNullCallback) { | 451 MAYBE_EnableCaptureAndDisableMonitoringWithEmptyFileAndNullCallback) { |
467 Navigate(shell()); | 452 Navigate(shell()); |
468 | 453 |
469 TracingController* controller = TracingController::GetInstance(); | 454 TracingController* controller = TracingController::GetInstance(); |
470 TraceOptions trace_options; | 455 TraceConfig trace_config("*", ""); |
471 trace_options.enable_sampling = true; | 456 trace_config.EnableSampling(); |
472 EXPECT_TRUE(controller->EnableMonitoring( | 457 EXPECT_TRUE(controller->EnableMonitoring( |
473 CategoryFilter("*"), | 458 trace_config, |
474 trace_options, | |
475 TracingController::EnableMonitoringDoneCallback())); | 459 TracingController::EnableMonitoringDoneCallback())); |
476 controller->CaptureMonitoringSnapshot(NULL); | 460 controller->CaptureMonitoringSnapshot(NULL); |
477 base::RunLoop().RunUntilIdle(); | 461 base::RunLoop().RunUntilIdle(); |
478 EXPECT_TRUE(controller->DisableMonitoring( | 462 EXPECT_TRUE(controller->DisableMonitoring( |
479 TracingController::DisableMonitoringDoneCallback())); | 463 TracingController::DisableMonitoringDoneCallback())); |
480 base::RunLoop().RunUntilIdle(); | 464 base::RunLoop().RunUntilIdle(); |
481 } | 465 } |
482 | 466 |
483 } // namespace content | 467 } // namespace content |
OLD | NEW |