OLD | NEW |
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_unittest.h" | 5 #include "base/debug/trace_event_unittest.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/debug/trace_event.h" | 9 #include "base/debug/trace_event.h" |
10 #include "base/json/json_reader.h" | 10 #include "base/json/json_reader.h" |
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
331 TRACE_EVENT_BEGIN2("all", "TRACE_EVENT_BEGIN2 call", | 331 TRACE_EVENT_BEGIN2("all", "TRACE_EVENT_BEGIN2 call", |
332 "name1", "value1", | 332 "name1", "value1", |
333 "name2", "value2"); | 333 "name2", "value2"); |
334 | 334 |
335 TRACE_EVENT_END0("all", "TRACE_EVENT_END0 call"); | 335 TRACE_EVENT_END0("all", "TRACE_EVENT_END0 call"); |
336 TRACE_EVENT_END1("all", "TRACE_EVENT_END1 call", "name1", "value1"); | 336 TRACE_EVENT_END1("all", "TRACE_EVENT_END1 call", "name1", "value1"); |
337 TRACE_EVENT_END2("all", "TRACE_EVENT_END2 call", | 337 TRACE_EVENT_END2("all", "TRACE_EVENT_END2 call", |
338 "name1", "value1", | 338 "name1", "value1", |
339 "name2", "value2"); | 339 "name2", "value2"); |
340 | 340 |
341 TRACE_EVENT_IF_LONGER_THAN0(0, "all", "TRACE_EVENT_IF_LONGER_THAN0 call"); | |
342 TRACE_EVENT_IF_LONGER_THAN1(0, "all", "TRACE_EVENT_IF_LONGER_THAN1 call", | |
343 "name1", "value1"); | |
344 TRACE_EVENT_IF_LONGER_THAN2(0, "all", "TRACE_EVENT_IF_LONGER_THAN2 call", | |
345 "name1", "value1", | |
346 "name2", "value2"); | |
347 | |
348 TRACE_EVENT_ASYNC_BEGIN0("all", "TRACE_EVENT_ASYNC_BEGIN0 call", 5); | 341 TRACE_EVENT_ASYNC_BEGIN0("all", "TRACE_EVENT_ASYNC_BEGIN0 call", 5); |
349 TRACE_EVENT_ASYNC_BEGIN1("all", "TRACE_EVENT_ASYNC_BEGIN1 call", 5, | 342 TRACE_EVENT_ASYNC_BEGIN1("all", "TRACE_EVENT_ASYNC_BEGIN1 call", 5, |
350 "name1", "value1"); | 343 "name1", "value1"); |
351 TRACE_EVENT_ASYNC_BEGIN2("all", "TRACE_EVENT_ASYNC_BEGIN2 call", 5, | 344 TRACE_EVENT_ASYNC_BEGIN2("all", "TRACE_EVENT_ASYNC_BEGIN2 call", 5, |
352 "name1", "value1", | 345 "name1", "value1", |
353 "name2", "value2"); | 346 "name2", "value2"); |
354 | 347 |
355 TRACE_EVENT_ASYNC_STEP0("all", "TRACE_EVENT_ASYNC_STEP0 call", | 348 TRACE_EVENT_ASYNC_STEP0("all", "TRACE_EVENT_ASYNC_STEP0 call", |
356 5, "step1"); | 349 5, "step1"); |
357 TRACE_EVENT_ASYNC_STEP1("all", "TRACE_EVENT_ASYNC_STEP1 call", | 350 TRACE_EVENT_ASYNC_STEP1("all", "TRACE_EVENT_ASYNC_STEP1 call", |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
450 EXPECT_FIND_("TRACE_EVENT_END0 call"); | 443 EXPECT_FIND_("TRACE_EVENT_END0 call"); |
451 EXPECT_FIND_("TRACE_EVENT_END1 call"); | 444 EXPECT_FIND_("TRACE_EVENT_END1 call"); |
452 EXPECT_SUB_FIND_("name1"); | 445 EXPECT_SUB_FIND_("name1"); |
453 EXPECT_SUB_FIND_("value1"); | 446 EXPECT_SUB_FIND_("value1"); |
454 EXPECT_FIND_("TRACE_EVENT_END2 call"); | 447 EXPECT_FIND_("TRACE_EVENT_END2 call"); |
455 EXPECT_SUB_FIND_("name1"); | 448 EXPECT_SUB_FIND_("name1"); |
456 EXPECT_SUB_FIND_("value1"); | 449 EXPECT_SUB_FIND_("value1"); |
457 EXPECT_SUB_FIND_("name2"); | 450 EXPECT_SUB_FIND_("name2"); |
458 EXPECT_SUB_FIND_("value2"); | 451 EXPECT_SUB_FIND_("value2"); |
459 | 452 |
460 EXPECT_FIND_("TRACE_EVENT_IF_LONGER_THAN0 call"); | |
461 EXPECT_FIND_("TRACE_EVENT_IF_LONGER_THAN1 call"); | |
462 EXPECT_SUB_FIND_("name1"); | |
463 EXPECT_SUB_FIND_("value1"); | |
464 EXPECT_FIND_("TRACE_EVENT_IF_LONGER_THAN2 call"); | |
465 EXPECT_SUB_FIND_("name1"); | |
466 EXPECT_SUB_FIND_("value1"); | |
467 EXPECT_SUB_FIND_("name2"); | |
468 EXPECT_SUB_FIND_("value2"); | |
469 | |
470 EXPECT_FIND_("TRACE_EVENT_ASYNC_BEGIN0 call"); | 453 EXPECT_FIND_("TRACE_EVENT_ASYNC_BEGIN0 call"); |
471 EXPECT_SUB_FIND_("id"); | 454 EXPECT_SUB_FIND_("id"); |
472 EXPECT_SUB_FIND_("5"); | 455 EXPECT_SUB_FIND_("5"); |
473 EXPECT_FIND_("TRACE_EVENT_ASYNC_BEGIN1 call"); | 456 EXPECT_FIND_("TRACE_EVENT_ASYNC_BEGIN1 call"); |
474 EXPECT_SUB_FIND_("id"); | 457 EXPECT_SUB_FIND_("id"); |
475 EXPECT_SUB_FIND_("5"); | 458 EXPECT_SUB_FIND_("5"); |
476 EXPECT_SUB_FIND_("name1"); | 459 EXPECT_SUB_FIND_("name1"); |
477 EXPECT_SUB_FIND_("value1"); | 460 EXPECT_SUB_FIND_("value1"); |
478 EXPECT_FIND_("TRACE_EVENT_ASYNC_BEGIN2 call"); | 461 EXPECT_FIND_("TRACE_EVENT_ASYNC_BEGIN2 call"); |
479 EXPECT_SUB_FIND_("id"); | 462 EXPECT_SUB_FIND_("id"); |
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
850 TRACE_EVENT_INSTANT0("inc_wildchar_bla_end", "included"); | 833 TRACE_EVENT_INSTANT0("inc_wildchar_bla_end", "included"); |
851 TRACE_EVENT_INSTANT0("cat1", "included"); | 834 TRACE_EVENT_INSTANT0("cat1", "included"); |
852 TRACE_EVENT_INSTANT0("cat2", "included"); | 835 TRACE_EVENT_INSTANT0("cat2", "included"); |
853 EndTraceAndFlush(); | 836 EndTraceAndFlush(); |
854 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildchar_bla_end")); | 837 EXPECT_TRUE(FindMatchingValue("cat", "inc_wildchar_bla_end")); |
855 EXPECT_TRUE(FindMatchingValue("cat", "cat1")); | 838 EXPECT_TRUE(FindMatchingValue("cat", "cat1")); |
856 EXPECT_TRUE(FindMatchingValue("cat", "cat2")); | 839 EXPECT_TRUE(FindMatchingValue("cat", "cat2")); |
857 EXPECT_FALSE(FindMatchingValue("name", "not_inc")); | 840 EXPECT_FALSE(FindMatchingValue("name", "not_inc")); |
858 } | 841 } |
859 | 842 |
860 // Simple Test for time threshold events. | |
861 TEST_F(TraceEventTestFixture, DataCapturedThreshold) { | |
862 ManualTestSetUp(); | |
863 BeginTrace(); | |
864 | |
865 // Test that events at the same level are properly filtered by threshold. | |
866 { | |
867 TRACE_EVENT_IF_LONGER_THAN0(100, "time", "threshold 100"); | |
868 TRACE_EVENT_IF_LONGER_THAN0(1000, "time", "threshold 1000"); | |
869 TRACE_EVENT_IF_LONGER_THAN0(10000, "time", "threshold 10000"); | |
870 // 100+ seconds to avoid flakiness. | |
871 TRACE_EVENT_IF_LONGER_THAN0(100000000, "time", "threshold long1"); | |
872 TRACE_EVENT_IF_LONGER_THAN0(200000000, "time", "threshold long2"); | |
873 HighResSleepForTraceTest(base::TimeDelta::FromMilliseconds(20)); | |
874 } | |
875 | |
876 // Test that a normal nested event remains after it's parent event is dropped. | |
877 { | |
878 TRACE_EVENT_IF_LONGER_THAN0(1000000, "time", "2threshold10000"); | |
879 { | |
880 TRACE_EVENT0("time", "nonthreshold1"); | |
881 } | |
882 } | |
883 | |
884 // Test that parent thresholded events are dropped while some nested events | |
885 // remain. | |
886 { | |
887 TRACE_EVENT0("time", "nonthreshold3"); | |
888 { | |
889 TRACE_EVENT_IF_LONGER_THAN0(200000000, "time", "3thresholdlong2"); | |
890 { | |
891 TRACE_EVENT_IF_LONGER_THAN0(100000000, "time", "3thresholdlong1"); | |
892 { | |
893 TRACE_EVENT_IF_LONGER_THAN0(10000, "time", "3threshold10000"); | |
894 { | |
895 TRACE_EVENT_IF_LONGER_THAN0(1000, "time", "3threshold1000"); | |
896 { | |
897 TRACE_EVENT_IF_LONGER_THAN0(100, "time", "3threshold100"); | |
898 HighResSleepForTraceTest(base::TimeDelta::FromMilliseconds(20)); | |
899 } | |
900 } | |
901 } | |
902 } | |
903 } | |
904 } | |
905 | |
906 // Test that child thresholded events are dropped while some parent events | |
907 // remain. | |
908 { | |
909 TRACE_EVENT0("time", "nonthreshold4"); | |
910 { | |
911 TRACE_EVENT_IF_LONGER_THAN0(100, "time", "4threshold100"); | |
912 { | |
913 TRACE_EVENT_IF_LONGER_THAN0(1000, "time", "4threshold1000"); | |
914 { | |
915 TRACE_EVENT_IF_LONGER_THAN0(10000, "time", "4threshold10000"); | |
916 { | |
917 TRACE_EVENT_IF_LONGER_THAN0(100000000, "time", | |
918 "4thresholdlong1"); | |
919 { | |
920 TRACE_EVENT_IF_LONGER_THAN0(200000000, "time", | |
921 "4thresholdlong2"); | |
922 HighResSleepForTraceTest(base::TimeDelta::FromMilliseconds(20)); | |
923 } | |
924 } | |
925 } | |
926 } | |
927 } | |
928 } | |
929 | |
930 EndTraceAndFlush(); | |
931 | |
932 #define EXPECT_FIND_BE_(str) \ | |
933 EXPECT_TRUE(FindNamePhase(str, "B")); \ | |
934 EXPECT_TRUE(FindNamePhase(str, "E")) | |
935 #define EXPECT_NOT_FIND_BE_(str) \ | |
936 EXPECT_FALSE(FindNamePhase(str, "B")); \ | |
937 EXPECT_FALSE(FindNamePhase(str, "E")) | |
938 | |
939 EXPECT_FIND_BE_("threshold 100"); | |
940 EXPECT_FIND_BE_("threshold 1000"); | |
941 EXPECT_FIND_BE_("threshold 10000"); | |
942 EXPECT_NOT_FIND_BE_("threshold long1"); | |
943 EXPECT_NOT_FIND_BE_("threshold long2"); | |
944 | |
945 EXPECT_NOT_FIND_BE_("2threshold10000"); | |
946 EXPECT_FIND_BE_("nonthreshold1"); | |
947 | |
948 EXPECT_FIND_BE_("nonthreshold3"); | |
949 EXPECT_FIND_BE_("3threshold100"); | |
950 EXPECT_FIND_BE_("3threshold1000"); | |
951 EXPECT_FIND_BE_("3threshold10000"); | |
952 EXPECT_NOT_FIND_BE_("3thresholdlong1"); | |
953 EXPECT_NOT_FIND_BE_("3thresholdlong2"); | |
954 | |
955 EXPECT_FIND_BE_("nonthreshold4"); | |
956 EXPECT_FIND_BE_("4threshold100"); | |
957 EXPECT_FIND_BE_("4threshold1000"); | |
958 EXPECT_FIND_BE_("4threshold10000"); | |
959 EXPECT_NOT_FIND_BE_("4thresholdlong1"); | |
960 EXPECT_NOT_FIND_BE_("4thresholdlong2"); | |
961 } | |
962 | 843 |
963 // Test EVENT_WATCH_NOTIFICATION | 844 // Test EVENT_WATCH_NOTIFICATION |
964 TEST_F(TraceEventTestFixture, EventWatchNotification) { | 845 TEST_F(TraceEventTestFixture, EventWatchNotification) { |
965 ManualTestSetUp(); | 846 ManualTestSetUp(); |
966 | 847 |
967 // Basic one occurrence. | 848 // Basic one occurrence. |
968 BeginTrace(); | 849 BeginTrace(); |
969 TraceLog::GetInstance()->SetWatchEvent("cat", "event"); | 850 TraceLog::GetInstance()->SetWatchEvent("cat", "event"); |
970 TRACE_EVENT_INSTANT0("cat", "event"); | 851 TRACE_EVENT_INSTANT0("cat", "event"); |
971 EndTraceAndFlush(); | 852 EndTraceAndFlush(); |
(...skipping 479 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1451 Clear(); | 1332 Clear(); |
1452 | 1333 |
1453 trace_buffer_.Start(); | 1334 trace_buffer_.Start(); |
1454 trace_buffer_.AddFragment("bla1,bla2,bla3,bla4"); | 1335 trace_buffer_.AddFragment("bla1,bla2,bla3,bla4"); |
1455 trace_buffer_.Finish(); | 1336 trace_buffer_.Finish(); |
1456 EXPECT_STREQ(json_output_.json_output.c_str(), "[bla1,bla2,bla3,bla4]"); | 1337 EXPECT_STREQ(json_output_.json_output.c_str(), "[bla1,bla2,bla3,bla4]"); |
1457 } | 1338 } |
1458 | 1339 |
1459 } // namespace debug | 1340 } // namespace debug |
1460 } // namespace base | 1341 } // namespace base |
OLD | NEW |