Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1558)

Unified Diff: base/trace_event/trace_config_unittest.cc

Issue 1923533004: Tracing pre-filtering (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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"));

Powered by Google App Engine
This is Rietveld 408576698