// 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(); auto filter = MakeUnique(std::move(empty_whitelist)); // No events should be filtered if the whitelist is empty. EXPECT_FALSE(filter->FilterTraceEvent(MakeTraceEvent("foo"))); auto whitelist = MakeUnique(); whitelist->insert("foo"); whitelist->insert("bar"); filter = MakeUnique(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