OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 <stddef.h> | 5 #include <stddef.h> |
6 | 6 |
7 #include "base/json/json_reader.h" | 7 #include "base/json/json_reader.h" |
8 #include "base/macros.h" | 8 #include "base/macros.h" |
9 #include "base/trace_event/memory_dump_manager.h" | 9 #include "base/trace_event/memory_dump_manager.h" |
10 #include "base/trace_event/trace_config.h" | 10 #include "base/trace_event/trace_config.h" |
(...skipping 18 matching lines...) Expand all Loading... |
29 "{" | 29 "{" |
30 "\"enable_argument_filter\":true," | 30 "\"enable_argument_filter\":true," |
31 "\"enable_sampling\":true," | 31 "\"enable_sampling\":true," |
32 "\"enable_systrace\":true," | 32 "\"enable_systrace\":true," |
33 "\"excluded_categories\":[\"excluded\",\"exc_pattern*\"]," | 33 "\"excluded_categories\":[\"excluded\",\"exc_pattern*\"]," |
34 "\"included_categories\":[\"included\"," | 34 "\"included_categories\":[\"included\"," |
35 "\"inc_pattern*\"," | 35 "\"inc_pattern*\"," |
36 "\"disabled-by-default-cc\"," | 36 "\"disabled-by-default-cc\"," |
37 "\"disabled-by-default-memory-infra\"]," | 37 "\"disabled-by-default-memory-infra\"]," |
38 "\"memory_dump_config\":{" | 38 "\"memory_dump_config\":{" |
| 39 "\"heap_profiler_options\":{" |
| 40 "\"breakdown_threshold_bytes\":10240" |
| 41 "}," |
39 "\"triggers\":[" | 42 "\"triggers\":[" |
40 "{\"mode\":\"light\",\"periodic_interval_ms\":50}," | 43 "{\"mode\":\"light\",\"periodic_interval_ms\":50}," |
41 "{\"mode\":\"detailed\",\"periodic_interval_ms\":1000}" | 44 "{\"mode\":\"detailed\",\"periodic_interval_ms\":1000}" |
42 "]" | 45 "]" |
43 "}," | 46 "}," |
44 "\"record_mode\":\"record-continuously\"," | 47 "\"record_mode\":\"record-continuously\"," |
45 "\"synthetic_delays\":[\"test.Delay1;16\",\"test.Delay2;32\"]" | 48 "\"synthetic_delays\":[\"test.Delay1;16\",\"test.Delay2;32\"]" |
46 "}"; | 49 "}"; |
47 | 50 |
48 } // namespace | 51 } // namespace |
(...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
563 tc.EnableSystrace(); | 566 tc.EnableSystrace(); |
564 EXPECT_TRUE(tc.IsSystraceEnabled()); | 567 EXPECT_TRUE(tc.IsSystraceEnabled()); |
565 } | 568 } |
566 | 569 |
567 TEST(TraceConfigTest, TraceConfigFromMemoryConfigString) { | 570 TEST(TraceConfigTest, TraceConfigFromMemoryConfigString) { |
568 std::string tc_str = | 571 std::string tc_str = |
569 TraceConfigMemoryTestUtil::GetTraceConfig_PeriodicTriggers(200, 2000); | 572 TraceConfigMemoryTestUtil::GetTraceConfig_PeriodicTriggers(200, 2000); |
570 TraceConfig tc(tc_str); | 573 TraceConfig tc(tc_str); |
571 EXPECT_EQ(tc_str, tc.ToString()); | 574 EXPECT_EQ(tc_str, tc.ToString()); |
572 EXPECT_TRUE(tc.IsCategoryGroupEnabled(MemoryDumpManager::kTraceCategory)); | 575 EXPECT_TRUE(tc.IsCategoryGroupEnabled(MemoryDumpManager::kTraceCategory)); |
573 EXPECT_EQ(2u, tc.memory_dump_config_.size()); | 576 ASSERT_EQ(2u, tc.memory_dump_config_.triggers.size()); |
574 | 577 |
575 EXPECT_EQ(200u, tc.memory_dump_config_[0].periodic_interval_ms); | 578 EXPECT_EQ(200u, tc.memory_dump_config_.triggers[0].periodic_interval_ms); |
576 EXPECT_EQ(MemoryDumpLevelOfDetail::LIGHT, | 579 EXPECT_EQ(MemoryDumpLevelOfDetail::LIGHT, |
577 tc.memory_dump_config_[0].level_of_detail); | 580 tc.memory_dump_config_.triggers[0].level_of_detail); |
578 | 581 |
579 EXPECT_EQ(2000u, tc.memory_dump_config_[1].periodic_interval_ms); | 582 EXPECT_EQ(2000u, tc.memory_dump_config_.triggers[1].periodic_interval_ms); |
580 EXPECT_EQ(MemoryDumpLevelOfDetail::DETAILED, | 583 EXPECT_EQ(MemoryDumpLevelOfDetail::DETAILED, |
581 tc.memory_dump_config_[1].level_of_detail); | 584 tc.memory_dump_config_.triggers[1].level_of_detail); |
| 585 EXPECT_EQ(2048u, tc.memory_dump_config_.heap_profiler_options. |
| 586 breakdown_threshold_bytes); |
582 } | 587 } |
583 | 588 |
584 TEST(TraceConfigTest, EmptyMemoryDumpConfigTest) { | 589 TEST(TraceConfigTest, EmptyMemoryDumpConfigTest) { |
585 // Empty trigger list should also be specified when converting back to string. | 590 // Empty trigger list should also be specified when converting back to string. |
586 TraceConfig tc(TraceConfigMemoryTestUtil::GetTraceConfig_EmptyTriggers()); | 591 TraceConfig tc(TraceConfigMemoryTestUtil::GetTraceConfig_EmptyTriggers()); |
587 EXPECT_EQ(TraceConfigMemoryTestUtil::GetTraceConfig_EmptyTriggers(), | 592 EXPECT_EQ(TraceConfigMemoryTestUtil::GetTraceConfig_EmptyTriggers(), |
588 tc.ToString()); | 593 tc.ToString()); |
589 EXPECT_EQ(0u, tc.memory_dump_config_.size()); | 594 EXPECT_EQ(0u, tc.memory_dump_config_.triggers.size()); |
| 595 EXPECT_EQ(TraceConfig::MemoryDumpConfig::HeapProfiler |
| 596 ::kDefaultBreakdownThresholdBytes, |
| 597 tc.memory_dump_config_.heap_profiler_options |
| 598 .breakdown_threshold_bytes); |
590 } | 599 } |
591 | 600 |
592 TEST(TraceConfigTest, LegacyStringToMemoryDumpConfig) { | 601 TEST(TraceConfigTest, LegacyStringToMemoryDumpConfig) { |
593 TraceConfig tc(MemoryDumpManager::kTraceCategory, ""); | 602 TraceConfig tc(MemoryDumpManager::kTraceCategory, ""); |
594 EXPECT_TRUE(tc.IsCategoryGroupEnabled(MemoryDumpManager::kTraceCategory)); | 603 EXPECT_TRUE(tc.IsCategoryGroupEnabled(MemoryDumpManager::kTraceCategory)); |
595 EXPECT_NE(std::string::npos, tc.ToString().find("memory_dump_config")); | 604 EXPECT_NE(std::string::npos, tc.ToString().find("memory_dump_config")); |
596 EXPECT_EQ(2u, tc.memory_dump_config_.size()); | 605 EXPECT_EQ(2u, tc.memory_dump_config_.triggers.size()); |
| 606 EXPECT_EQ(TraceConfig::MemoryDumpConfig::HeapProfiler |
| 607 ::kDefaultBreakdownThresholdBytes, |
| 608 tc.memory_dump_config_.heap_profiler_options |
| 609 .breakdown_threshold_bytes); |
597 } | 610 } |
598 | 611 |
599 } // namespace trace_event | 612 } // namespace trace_event |
600 } // namespace base | 613 } // namespace base |
OLD | NEW |