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

Side by Side Diff: base/debug/trace_event_unittest.cc

Issue 9522010: Add ASYNC_STEP support to trace_event and change START to ASYNC_BEGIN. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/debug/trace_event.h" 5 #include "base/debug/trace_event.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/json/json_reader.h" 9 #include "base/json/json_reader.h"
10 #include "base/json/json_writer.h" 10 #include "base/json/json_writer.h"
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 "name1", "value1", 316 "name1", "value1",
317 "name2", "value2"); 317 "name2", "value2");
318 318
319 TRACE_EVENT_IF_LONGER_THAN0(0, "all", "TRACE_EVENT_IF_LONGER_THAN0 call"); 319 TRACE_EVENT_IF_LONGER_THAN0(0, "all", "TRACE_EVENT_IF_LONGER_THAN0 call");
320 TRACE_EVENT_IF_LONGER_THAN1(0, "all", "TRACE_EVENT_IF_LONGER_THAN1 call", 320 TRACE_EVENT_IF_LONGER_THAN1(0, "all", "TRACE_EVENT_IF_LONGER_THAN1 call",
321 "name1", "value1"); 321 "name1", "value1");
322 TRACE_EVENT_IF_LONGER_THAN2(0, "all", "TRACE_EVENT_IF_LONGER_THAN2 call", 322 TRACE_EVENT_IF_LONGER_THAN2(0, "all", "TRACE_EVENT_IF_LONGER_THAN2 call",
323 "name1", "value1", 323 "name1", "value1",
324 "name2", "value2"); 324 "name2", "value2");
325 325
326 TRACE_EVENT_START0("all", "TRACE_EVENT_START0 call", 5); 326 TRACE_EVENT_ASYNC_BEGIN0("all", "TRACE_EVENT_ASYNC_BEGIN0 call", 5);
327 TRACE_EVENT_START1("all", "TRACE_EVENT_START1 call", 5, 327 TRACE_EVENT_ASYNC_BEGIN1("all", "TRACE_EVENT_ASYNC_BEGIN1 call", 5,
nduca 2012/02/28 23:55:26 tests for the step?
jbates 2012/02/29 00:34:19 Done.
328 "name1", "value1"); 328 "name1", "value1");
329 TRACE_EVENT_START2("all", "TRACE_EVENT_START2 call", 5, 329 TRACE_EVENT_ASYNC_BEGIN2("all", "TRACE_EVENT_ASYNC_BEGIN2 call", 5,
330 "name1", "value1", 330 "name1", "value1",
331 "name2", "value2"); 331 "name2", "value2");
332 332
333 TRACE_EVENT_FINISH0("all", "TRACE_EVENT_FINISH0 call", 5); 333 TRACE_EVENT_ASYNC_END0("all", "TRACE_EVENT_ASYNC_END0 call", 5);
334 TRACE_EVENT_FINISH1("all", "TRACE_EVENT_FINISH1 call", 5, 334 TRACE_EVENT_ASYNC_END1("all", "TRACE_EVENT_ASYNC_END1 call", 5,
335 "name1", "value1"); 335 "name1", "value1");
336 TRACE_EVENT_FINISH2("all", "TRACE_EVENT_FINISH2 call", 5, 336 TRACE_EVENT_ASYNC_END2("all", "TRACE_EVENT_ASYNC_END2 call", 5,
337 "name1", "value1", 337 "name1", "value1",
338 "name2", "value2"); 338 "name2", "value2");
339 339
340 TRACE_EVENT_BEGIN_ETW("TRACE_EVENT_BEGIN_ETW0 call", 5, NULL); 340 TRACE_EVENT_BEGIN_ETW("TRACE_EVENT_BEGIN_ETW0 call", 5, NULL);
341 TRACE_EVENT_BEGIN_ETW("TRACE_EVENT_BEGIN_ETW1 call", 5, "value"); 341 TRACE_EVENT_BEGIN_ETW("TRACE_EVENT_BEGIN_ETW1 call", 5, "value");
342 TRACE_EVENT_END_ETW("TRACE_EVENT_END_ETW0 call", 5, NULL); 342 TRACE_EVENT_END_ETW("TRACE_EVENT_END_ETW0 call", 5, NULL);
343 TRACE_EVENT_END_ETW("TRACE_EVENT_END_ETW1 call", 5, "value"); 343 TRACE_EVENT_END_ETW("TRACE_EVENT_END_ETW1 call", 5, "value");
344 TRACE_EVENT_INSTANT_ETW("TRACE_EVENT_INSTANT_ETW0 call", 5, NULL); 344 TRACE_EVENT_INSTANT_ETW("TRACE_EVENT_INSTANT_ETW0 call", 5, NULL);
345 TRACE_EVENT_INSTANT_ETW("TRACE_EVENT_INSTANT_ETW1 call", 5, "value"); 345 TRACE_EVENT_INSTANT_ETW("TRACE_EVENT_INSTANT_ETW1 call", 5, "value");
346 346
347 TRACE_COUNTER1("all", "TRACE_COUNTER1 call", 31415); 347 TRACE_COUNTER1("all", "TRACE_COUNTER1 call", 31415);
348 TRACE_COUNTER2("all", "TRACE_COUNTER2 call", 348 TRACE_COUNTER2("all", "TRACE_COUNTER2 call",
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
433 EXPECT_FIND_("TRACE_EVENT_IF_LONGER_THAN0 call"); 433 EXPECT_FIND_("TRACE_EVENT_IF_LONGER_THAN0 call");
434 EXPECT_FIND_("TRACE_EVENT_IF_LONGER_THAN1 call"); 434 EXPECT_FIND_("TRACE_EVENT_IF_LONGER_THAN1 call");
435 EXPECT_SUB_FIND_("name1"); 435 EXPECT_SUB_FIND_("name1");
436 EXPECT_SUB_FIND_("value1"); 436 EXPECT_SUB_FIND_("value1");
437 EXPECT_FIND_("TRACE_EVENT_IF_LONGER_THAN2 call"); 437 EXPECT_FIND_("TRACE_EVENT_IF_LONGER_THAN2 call");
438 EXPECT_SUB_FIND_("name1"); 438 EXPECT_SUB_FIND_("name1");
439 EXPECT_SUB_FIND_("value1"); 439 EXPECT_SUB_FIND_("value1");
440 EXPECT_SUB_FIND_("name2"); 440 EXPECT_SUB_FIND_("name2");
441 EXPECT_SUB_FIND_("value2"); 441 EXPECT_SUB_FIND_("value2");
442 442
443 EXPECT_FIND_("TRACE_EVENT_START0 call"); 443 EXPECT_FIND_("TRACE_EVENT_ASYNC_BEGIN0 call");
444 EXPECT_SUB_FIND_("id"); 444 EXPECT_SUB_FIND_("id");
445 EXPECT_SUB_FIND_("5"); 445 EXPECT_SUB_FIND_("5");
446 EXPECT_FIND_("TRACE_EVENT_START1 call"); 446 EXPECT_FIND_("TRACE_EVENT_ASYNC_BEGIN1 call");
447 EXPECT_SUB_FIND_("id"); 447 EXPECT_SUB_FIND_("id");
448 EXPECT_SUB_FIND_("5"); 448 EXPECT_SUB_FIND_("5");
449 EXPECT_SUB_FIND_("name1"); 449 EXPECT_SUB_FIND_("name1");
450 EXPECT_SUB_FIND_("value1"); 450 EXPECT_SUB_FIND_("value1");
451 EXPECT_FIND_("TRACE_EVENT_START2 call"); 451 EXPECT_FIND_("TRACE_EVENT_ASYNC_BEGIN2 call");
452 EXPECT_SUB_FIND_("id"); 452 EXPECT_SUB_FIND_("id");
453 EXPECT_SUB_FIND_("5"); 453 EXPECT_SUB_FIND_("5");
454 EXPECT_SUB_FIND_("name1"); 454 EXPECT_SUB_FIND_("name1");
455 EXPECT_SUB_FIND_("value1"); 455 EXPECT_SUB_FIND_("value1");
456 EXPECT_SUB_FIND_("name2"); 456 EXPECT_SUB_FIND_("name2");
457 EXPECT_SUB_FIND_("value2"); 457 EXPECT_SUB_FIND_("value2");
458 458
459 EXPECT_FIND_("TRACE_EVENT_FINISH0 call"); 459 EXPECT_FIND_("TRACE_EVENT_ASYNC_END0 call");
460 EXPECT_SUB_FIND_("id"); 460 EXPECT_SUB_FIND_("id");
461 EXPECT_SUB_FIND_("5"); 461 EXPECT_SUB_FIND_("5");
462 EXPECT_FIND_("TRACE_EVENT_FINISH1 call"); 462 EXPECT_FIND_("TRACE_EVENT_ASYNC_END1 call");
463 EXPECT_SUB_FIND_("id"); 463 EXPECT_SUB_FIND_("id");
464 EXPECT_SUB_FIND_("5"); 464 EXPECT_SUB_FIND_("5");
465 EXPECT_SUB_FIND_("name1"); 465 EXPECT_SUB_FIND_("name1");
466 EXPECT_SUB_FIND_("value1"); 466 EXPECT_SUB_FIND_("value1");
467 EXPECT_FIND_("TRACE_EVENT_FINISH2 call"); 467 EXPECT_FIND_("TRACE_EVENT_ASYNC_END2 call");
468 EXPECT_SUB_FIND_("id"); 468 EXPECT_SUB_FIND_("id");
469 EXPECT_SUB_FIND_("5"); 469 EXPECT_SUB_FIND_("5");
470 EXPECT_SUB_FIND_("name1"); 470 EXPECT_SUB_FIND_("name1");
471 EXPECT_SUB_FIND_("value1"); 471 EXPECT_SUB_FIND_("value1");
472 EXPECT_SUB_FIND_("name2"); 472 EXPECT_SUB_FIND_("name2");
473 EXPECT_SUB_FIND_("value2"); 473 EXPECT_SUB_FIND_("value2");
474 474
475 EXPECT_FIND_("TRACE_EVENT_BEGIN_ETW0 call"); 475 EXPECT_FIND_("TRACE_EVENT_BEGIN_ETW0 call");
476 EXPECT_SUB_FIND_("id"); 476 EXPECT_SUB_FIND_("id");
477 EXPECT_SUB_FIND_("5"); 477 EXPECT_SUB_FIND_("5");
(...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after
916 EXPECT_NOT_FIND_BE_("4thresholdlong1"); 916 EXPECT_NOT_FIND_BE_("4thresholdlong1");
917 EXPECT_NOT_FIND_BE_("4thresholdlong2"); 917 EXPECT_NOT_FIND_BE_("4thresholdlong2");
918 } 918 }
919 919
920 // Test Start/Finish events 920 // Test Start/Finish events
921 TEST_F(TraceEventTestFixture, StartFinishEvents) { 921 TEST_F(TraceEventTestFixture, StartFinishEvents) {
922 ManualTestSetUp(); 922 ManualTestSetUp();
923 TraceLog::GetInstance()->SetEnabled(true); 923 TraceLog::GetInstance()->SetEnabled(true);
924 924
925 unsigned long long id = 0xfeedbeeffeedbeefull; 925 unsigned long long id = 0xfeedbeeffeedbeefull;
926 TRACE_EVENT_START0( "cat", "name1", id); 926 TRACE_EVENT_ASYNC_BEGIN0( "cat", "name1", id);
927 TRACE_EVENT_FINISH0("cat", "name1", id); 927 TRACE_EVENT_ASYNC_END0("cat", "name1", id);
928 TRACE_EVENT_BEGIN0( "cat", "name2"); 928 TRACE_EVENT_BEGIN0( "cat", "name2");
929 TRACE_EVENT_START0( "cat", "name3", 0); 929 TRACE_EVENT_ASYNC_BEGIN0( "cat", "name3", 0);
930 930
931 TraceLog::GetInstance()->SetEnabled(false); 931 TraceLog::GetInstance()->SetEnabled(false);
932 932
933 EXPECT_TRUE(FindNamePhase("name1", "S")); 933 EXPECT_TRUE(FindNamePhase("name1", "S"));
934 EXPECT_TRUE(FindNamePhase("name1", "F")); 934 EXPECT_TRUE(FindNamePhase("name1", "F"));
935 935
936 std::string id_str; 936 std::string id_str;
937 StringAppendF(&id_str, "%llx", id); 937 StringAppendF(&id_str, "%llx", id);
938 938
939 EXPECT_TRUE(FindNamePhaseKeyValue("name1", "S", "id", id_str.c_str())); 939 EXPECT_TRUE(FindNamePhaseKeyValue("name1", "S", "id", id_str.c_str()));
940 EXPECT_TRUE(FindNamePhaseKeyValue("name1", "F", "id", id_str.c_str())); 940 EXPECT_TRUE(FindNamePhaseKeyValue("name1", "F", "id", id_str.c_str()));
941 EXPECT_TRUE(FindNamePhaseKeyValue("name3", "S", "id", "0")); 941 EXPECT_TRUE(FindNamePhaseKeyValue("name3", "S", "id", "0"));
942 942
943 // BEGIN events should not have id 943 // BEGIN events should not have id
944 EXPECT_FALSE(FindNamePhaseKeyValue("name2", "B", "id", "0")); 944 EXPECT_FALSE(FindNamePhaseKeyValue("name2", "B", "id", "0"));
945 } 945 }
946 946
947 // Test Start/Finish events 947 // Test Start/Finish events
948 TEST_F(TraceEventTestFixture, StartFinishPointerMangling) { 948 TEST_F(TraceEventTestFixture, StartFinishPointerMangling) {
949 ManualTestSetUp(); 949 ManualTestSetUp();
950 950
951 void* ptr = this; 951 void* ptr = this;
952 952
953 TraceLog::GetInstance()->SetProcessID(100); 953 TraceLog::GetInstance()->SetProcessID(100);
954 TraceLog::GetInstance()->SetEnabled(true); 954 TraceLog::GetInstance()->SetEnabled(true);
955 TRACE_EVENT_START0( "cat", "name1", ptr); 955 TRACE_EVENT_ASYNC_BEGIN0( "cat", "name1", ptr);
956 TRACE_EVENT_START0( "cat", "name2", ptr); 956 TRACE_EVENT_ASYNC_BEGIN0( "cat", "name2", ptr);
957 TraceLog::GetInstance()->SetEnabled(false); 957 TraceLog::GetInstance()->SetEnabled(false);
958 958
959 TraceLog::GetInstance()->SetProcessID(200); 959 TraceLog::GetInstance()->SetProcessID(200);
960 TraceLog::GetInstance()->SetEnabled(true); 960 TraceLog::GetInstance()->SetEnabled(true);
961 TRACE_EVENT_FINISH0( "cat", "name1", ptr); 961 TRACE_EVENT_ASYNC_END0( "cat", "name1", ptr);
962 TraceLog::GetInstance()->SetEnabled(false); 962 TraceLog::GetInstance()->SetEnabled(false);
963 963
964 DictionaryValue* start = FindNamePhase("name1", "S"); 964 DictionaryValue* start = FindNamePhase("name1", "S");
965 DictionaryValue* start2 = FindNamePhase("name2", "S"); 965 DictionaryValue* start2 = FindNamePhase("name2", "S");
966 DictionaryValue* finish = FindNamePhase("name1", "F"); 966 DictionaryValue* finish = FindNamePhase("name1", "F");
967 EXPECT_TRUE(start); 967 EXPECT_TRUE(start);
968 EXPECT_TRUE(start2); 968 EXPECT_TRUE(start2);
969 EXPECT_TRUE(finish); 969 EXPECT_TRUE(finish);
970 970
971 Value* value = NULL; 971 Value* value = NULL;
(...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after
1346 Clear(); 1346 Clear();
1347 1347
1348 trace_buffer_.Start(); 1348 trace_buffer_.Start();
1349 trace_buffer_.AddFragment("bla1,bla2,bla3,bla4"); 1349 trace_buffer_.AddFragment("bla1,bla2,bla3,bla4");
1350 trace_buffer_.Finish(); 1350 trace_buffer_.Finish();
1351 EXPECT_STREQ(json_output_.json_output.c_str(), "[bla1,bla2,bla3,bla4]"); 1351 EXPECT_STREQ(json_output_.json_output.c_str(), "[bla1,bla2,bla3,bla4]");
1352 } 1352 }
1353 1353
1354 } // namespace debug 1354 } // namespace debug
1355 } // namespace base 1355 } // namespace base
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698