Index: base/trace_event/event_name_filter_unittest.cc |
diff --git a/base/trace_event/event_name_filter_unittest.cc b/base/trace_event/event_name_filter_unittest.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..0bc2a4dafcf8f4c4e59047e1469aaea68548fa4c |
--- /dev/null |
+++ b/base/trace_event/event_name_filter_unittest.cc |
@@ -0,0 +1,41 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "base/trace_event/event_name_filter.h" |
+ |
+#include "base/memory/ptr_util.h" |
+#include "base/trace_event/trace_event_impl.h" |
+#include "testing/gtest/include/gtest/gtest.h" |
+ |
+namespace base { |
+namespace trace_event { |
+ |
+const TraceEvent& MakeTraceEvent(const char* name) { |
+ static TraceEvent event; |
+ event.Reset(); |
+ event.Initialize(0, TimeTicks(), ThreadTicks(), 'b', nullptr, name, "", 0, 0, |
+ 0, nullptr, nullptr, nullptr, nullptr, 0); |
+ return event; |
+} |
+ |
+TEST(TraceEventNameFilterTest, Whitelist) { |
+ auto empty_whitelist = MakeUnique<EventNameFilter::EventNamesWhitelist>(); |
+ auto filter = MakeUnique<EventNameFilter>(std::move(empty_whitelist)); |
+ |
+ // No events should be filtered if the whitelist is empty. |
+ EXPECT_FALSE(filter->FilterTraceEvent(MakeTraceEvent("foo"))); |
+ |
+ auto whitelist = MakeUnique<EventNameFilter::EventNamesWhitelist>(); |
+ whitelist->insert("foo"); |
+ whitelist->insert("bar"); |
+ filter = MakeUnique<EventNameFilter>(std::move(whitelist)); |
+ EXPECT_TRUE(filter->FilterTraceEvent(MakeTraceEvent("foo"))); |
+ EXPECT_FALSE(filter->FilterTraceEvent(MakeTraceEvent("fooz"))); |
+ EXPECT_FALSE(filter->FilterTraceEvent(MakeTraceEvent("afoo"))); |
+ EXPECT_TRUE(filter->FilterTraceEvent(MakeTraceEvent("bar"))); |
+ EXPECT_FALSE(filter->FilterTraceEvent(MakeTraceEvent("foobar"))); |
+} |
+ |
+} // namespace trace_event |
+} // namespace base |