| Index: trace_event/trace_config_unittest.cc
|
| diff --git a/trace_event/trace_config_unittest.cc b/trace_event/trace_config_unittest.cc
|
| index a2a3703ea3aaa05a1f525a5f04d0c0560331498b..7d8881da3e1338c4a9d438df4edc4b4da2df9b23 100644
|
| --- a/trace_event/trace_config_unittest.cc
|
| +++ b/trace_event/trace_config_unittest.cc
|
| @@ -2,6 +2,7 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| +#include "base/trace_event/memory_dump_manager.h"
|
| #include "base/trace_event/trace_config.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| @@ -19,6 +20,44 @@ const char kDefaultTraceConfigString[] =
|
| "\"record_mode\":\"record-until-full\""
|
| "}";
|
|
|
| +const char kMemoryDumpTraceConfigString[] =
|
| + "{"
|
| + "\"enable_argument_filter\":false,"
|
| + "\"enable_sampling\":false,"
|
| + "\"enable_systrace\":false,"
|
| + "\"included_categories\":["
|
| + "\"disabled-by-default-memory-infra\""
|
| + "],"
|
| + "\"memory_dump_config\":{"
|
| + "\"triggers\":["
|
| + "{"
|
| + "\"mode\":\"light\","
|
| + "\"periodic_interval_ms\":200"
|
| + "},"
|
| + "{"
|
| + "\"mode\":\"detailed\","
|
| + "\"periodic_interval_ms\":2000"
|
| + "}"
|
| + "]"
|
| + "},"
|
| + "\"record_mode\":\"record-until-full\""
|
| + "}";
|
| +
|
| +const char kTraceConfigStringWithEmptyTriggers[] =
|
| + "{"
|
| + "\"enable_argument_filter\":false,"
|
| + "\"enable_sampling\":false,"
|
| + "\"enable_systrace\":false,"
|
| + "\"included_categories\":["
|
| + "\"disabled-by-default-memory-infra\""
|
| + "],"
|
| + "\"memory_dump_config\":{"
|
| + "\"triggers\":["
|
| + "]"
|
| + "},"
|
| + "\"record_mode\":\"record-until-full\""
|
| + "}";
|
| +
|
| } // namespace
|
|
|
| TEST(TraceConfigTest, TraceConfigFromValidLegacyFormat) {
|
| @@ -488,5 +527,34 @@ TEST(TraceConfigTest, SetTraceOptionValues) {
|
| EXPECT_TRUE(tc.IsSystraceEnabled());
|
| }
|
|
|
| +TEST(TraceConfigTest, TraceConfigFromMemoryConfigString) {
|
| + TraceConfig tc(kMemoryDumpTraceConfigString);
|
| + EXPECT_STREQ(kMemoryDumpTraceConfigString, tc.ToString().c_str());
|
| + EXPECT_TRUE(tc.IsCategoryGroupEnabled(MemoryDumpManager::kTraceCategory));
|
| + EXPECT_EQ(2u, tc.memory_dump_config_.size());
|
| +
|
| + EXPECT_EQ(200u, tc.memory_dump_config_[0].periodic_interval_ms);
|
| + EXPECT_EQ(MemoryDumpArgs::LevelOfDetail::LOW,
|
| + tc.memory_dump_config_[0].level_of_detail);
|
| +
|
| + EXPECT_EQ(2000u, tc.memory_dump_config_[1].periodic_interval_ms);
|
| + EXPECT_EQ(MemoryDumpArgs::LevelOfDetail::HIGH,
|
| + tc.memory_dump_config_[1].level_of_detail);
|
| +}
|
| +
|
| +TEST(TraceConfigTest, EmptyMemoryDumpConfigTest) {
|
| + // Empty trigger list should also be specified when converting back to string.
|
| + TraceConfig tc(kTraceConfigStringWithEmptyTriggers);
|
| + EXPECT_STREQ(kTraceConfigStringWithEmptyTriggers, tc.ToString().c_str());
|
| + EXPECT_EQ(0u, tc.memory_dump_config_.size());
|
| +}
|
| +
|
| +TEST(TraceConfigTest, LegacyStringToMemoryDumpConfig) {
|
| + TraceConfig tc(MemoryDumpManager::kTraceCategory, "");
|
| + EXPECT_TRUE(tc.IsCategoryGroupEnabled(MemoryDumpManager::kTraceCategory));
|
| + EXPECT_NE(std::string::npos, tc.ToString().find("memory_dump_config"));
|
| + EXPECT_EQ(2u, tc.memory_dump_config_.size());
|
| +}
|
| +
|
| } // namespace trace_event
|
| } // namespace base
|
|
|