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

Side by Side Diff: content/browser/tracing/tracing_controller_browsertest.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
OLDNEW
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
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
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
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
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
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
OLDNEW
« no previous file with comments | « content/browser/tracing/trace_message_filter.cc ('k') | content/browser/tracing/tracing_controller_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698