Chromium Code Reviews| Index: base/trace_event/trace_config_unittest.cc |
| diff --git a/base/trace_event/trace_config_unittest.cc b/base/trace_event/trace_config_unittest.cc |
| index a17337619b2fe4039cf08d5e8feb2e1c8503093f..bee0b98a508d27b800c4813975f07cb34376982d 100644 |
| --- a/base/trace_event/trace_config_unittest.cc |
| +++ b/base/trace_event/trace_config_unittest.cc |
| @@ -5,6 +5,7 @@ |
| #include <stddef.h> |
| #include "base/json/json_reader.h" |
| +#include "base/json/json_writer.h" |
| #include "base/macros.h" |
| #include "base/trace_event/memory_dump_manager.h" |
| #include "base/trace_event/trace_config.h" |
| @@ -26,27 +27,35 @@ const char kDefaultTraceConfigString[] = |
| "}"; |
| const char kCustomTraceConfigString[] = |
| - "{" |
| + "{" |
| "\"enable_argument_filter\":true," |
| "\"enable_sampling\":true," |
| "\"enable_systrace\":true," |
| + "\"event_filters\":[" |
| + "{" |
| + "\"excluded_categories\":[\"unfiltered_cat\"]," |
| + "\"filter_args\":{\"event_name_whitelist\":[\"a snake\",\"a dog\"]}," |
| + "\"filter_predicate\":\"event_whitelist_predicate\"," |
| + "\"included_categories\":[\"*\"]" |
| + "}" |
| + "]," |
| "\"excluded_categories\":[\"excluded\",\"exc_pattern*\"]," |
| "\"included_categories\":[\"included\"," |
| - "\"inc_pattern*\"," |
| - "\"disabled-by-default-cc\"," |
| - "\"disabled-by-default-memory-infra\"]," |
| + "\"inc_pattern*\"," |
| + "\"disabled-by-default-cc\"," |
| + "\"disabled-by-default-memory-infra\"]," |
| "\"memory_dump_config\":{" |
| - "\"heap_profiler_options\":{" |
| - "\"breakdown_threshold_bytes\":10240" |
| - "}," |
| - "\"triggers\":[" |
| - "{\"mode\":\"light\",\"periodic_interval_ms\":50}," |
| - "{\"mode\":\"detailed\",\"periodic_interval_ms\":1000}" |
| - "]" |
| + "\"heap_profiler_options\":{" |
| + "\"breakdown_threshold_bytes\":10240" |
| + "}," |
| + "\"triggers\":[" |
| + "{\"mode\":\"light\",\"periodic_interval_ms\":50}," |
| + "{\"mode\":\"detailed\",\"periodic_interval_ms\":1000}" |
| + "]" |
| "}," |
| "\"record_mode\":\"record-continuously\"," |
| "\"synthetic_delays\":[\"test.Delay1;16\",\"test.Delay2;32\"]" |
| - "}"; |
| + "}"; |
| } // namespace |
| @@ -282,6 +291,8 @@ TEST(TraceConfigTest, ConstructDefaultTraceConfig) { |
| EXPECT_TRUE(tc.IsCategoryGroupEnabled("CategoryDebug,Category1")); |
| EXPECT_TRUE(tc.IsCategoryGroupEnabled("CategoryTest,not-excluded-category")); |
| EXPECT_FALSE(tc.IsCategoryGroupEnabled("CategoryDebug,CategoryTest")); |
| + |
| + EXPECT_TRUE(tc.event_filters().empty()); |
| } |
| TEST(TraceConfigTest, TraceConfigFromDict) { |
| @@ -331,17 +342,25 @@ TEST(TraceConfigTest, TraceConfigFromDict) { |
| TEST(TraceConfigTest, TraceConfigFromValidString) { |
| // Using some non-empty config string. |
| const char config_string[] = |
| - "{" |
| + "{" |
| "\"enable_argument_filter\":true," |
| "\"enable_sampling\":true," |
| "\"enable_systrace\":true," |
| + "\"event_filters\":[" |
| + "{" |
| + "\"excluded_categories\":[\"unfiltered_cat\"]," |
| + "\"filter_args\":{\"event_name_whitelist\":[\"a snake\",\"a dog\"]}," |
| + "\"filter_predicate\":\"event_whitelist_predicate\"," |
| + "\"included_categories\":[\"*\"]" |
| + "}" |
| + "]," |
| "\"excluded_categories\":[\"excluded\",\"exc_pattern*\"]," |
| "\"included_categories\":[\"included\"," |
| - "\"inc_pattern*\"," |
| - "\"disabled-by-default-cc\"]," |
| + "\"inc_pattern*\"," |
| + "\"disabled-by-default-cc\"]," |
| "\"record_mode\":\"record-continuously\"," |
| "\"synthetic_delays\":[\"test.Delay1;16\",\"test.Delay2;32\"]" |
| - "}"; |
| + "}"; |
| TraceConfig tc(config_string); |
| EXPECT_STREQ(config_string, tc.ToString().c_str()); |
| @@ -378,6 +397,21 @@ TEST(TraceConfigTest, TraceConfigFromValidString) { |
| EXPECT_STREQ("test.Delay1;16", tc.GetSyntheticDelayValues()[0].c_str()); |
| EXPECT_STREQ("test.Delay2;32", tc.GetSyntheticDelayValues()[1].c_str()); |
| + EXPECT_EQ(tc.event_filters().size(), 1u); |
| + const TraceConfig::EventFilterConfig& event_filter = tc.event_filters()[0]; |
| + EXPECT_STREQ(event_filter.predicate_name().c_str(), |
|
Primiano Tucci (use gerrit)
2016/05/31 15:41:23
I think you want to invert the operands. EXPECT_EQ
oystein (OOO til 10th of July)
2016/08/01 13:39:48
Done.
|
| + "event_whitelist_predicate"); |
| + EXPECT_EQ(event_filter.included_categories().size(), 1u); |
|
Primiano Tucci (use gerrit)
2016/05/31 15:41:23
ditto: all these arguments should be flipped.
oystein (OOO til 10th of July)
2016/08/01 13:39:48
Done.
|
| + EXPECT_STREQ(event_filter.included_categories()[0].c_str(), "*"); |
| + EXPECT_EQ(event_filter.excluded_categories().size(), 1u); |
| + EXPECT_STREQ(event_filter.excluded_categories()[0].c_str(), "unfiltered_cat"); |
| + EXPECT_TRUE(event_filter.filter_args()); |
| + |
| + std::string json_out; |
| + base::JSONWriter::Write(*event_filter.filter_args(), &json_out); |
| + EXPECT_STREQ(json_out.c_str(), |
| + "{\"event_name_whitelist\":[\"a snake\",\"a dog\"]}"); |
| + |
| const char config_string_2[] = "{\"included_categories\":[\"*\"]}"; |
| TraceConfig tc2(config_string_2); |
| EXPECT_TRUE(tc2.IsCategoryEnabled("non-disabled-by-default-pattern")); |