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 1fb41f86fb9eef43d13ac122c7bff135ac8d3e04..0f5f12712a3e7a7c378ba49bb94a089d6419615d 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" |
@@ -27,6 +28,14 @@ const char kDefaultTraceConfigString[] = |
const char kCustomTraceConfigString[] = |
"{" |
+ "\"category_event_filters\":[" |
+ "{" |
+ "\"args\":{\"event_name_whitelist\":[\"a snake\",\"a dog\"]}," |
+ "\"excluded_categories\":[\"unfiltered_cat\"]," |
+ "\"included_categories\":[\"*\"]," |
+ "\"predicate\":\"event_whitelist_predicate\"" |
Primiano Tucci (use gerrit)
2016/05/11 16:11:57
maybe if these were called
predicate -> filter_pr
oystein (OOO til 10th of July)
2016/05/20 20:03:43
Yeah, I like that better; done. The ordering I can
|
+ "}" |
+ "]," |
"\"enable_argument_filter\":true," |
"\"enable_sampling\":true," |
"\"enable_systrace\":true," |
@@ -279,6 +288,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.category_event_filters().empty()); |
} |
TEST(TraceConfigTest, TraceConfigFromDict) { |
@@ -329,6 +340,14 @@ TEST(TraceConfigTest, TraceConfigFromValidString) { |
// Using some non-empty config string. |
const char config_string[] = |
"{" |
+ "\"category_event_filters\":[" |
+ "{" |
+ "\"args\":{\"event_name_whitelist\":[\"a snake\",\"a dog\"]}," |
+ "\"excluded_categories\":[\"unfiltered_cat\"]," |
+ "\"included_categories\":[\"*\"]," |
+ "\"predicate\":\"event_whitelist_predicate\"" |
+ "}" |
+ "]," |
"\"enable_argument_filter\":true," |
"\"enable_sampling\":true," |
"\"enable_systrace\":true," |
@@ -375,6 +394,23 @@ 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.category_event_filters().size(), 1u); |
+ const TraceConfig::CategoryEventFilterConfig& category_filter = |
+ tc.category_event_filters()[0]; |
+ EXPECT_STREQ(category_filter.predicate_name().c_str(), |
+ "event_whitelist_predicate"); |
+ EXPECT_EQ(category_filter.included_categories().size(), 1u); |
+ EXPECT_STREQ(category_filter.included_categories()[0].c_str(), "*"); |
+ EXPECT_EQ(category_filter.excluded_categories().size(), 1u); |
+ EXPECT_STREQ(category_filter.excluded_categories()[0].c_str(), |
+ "unfiltered_cat"); |
+ EXPECT_TRUE(category_filter.args()); |
+ |
+ std::string json_out; |
+ base::JSONWriter::Write(*category_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")); |