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