blob: 06548b049a2f1e69d212dbef2315e8d3fd8b5bea [file] [log] [blame]
primiano583fc5c2016-12-10 11:04:14 +09001// Copyright 2016 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "base/trace_event/trace_event_filter_test_utils.h"
6
7#include "base/logging.h"
8
9namespace base {
10namespace trace_event {
11
12namespace {
13TestEventFilter::HitsCounter* g_hits_counter;
14} // namespace;
15
16// static
17const char TestEventFilter::kName[] = "testing_predicate";
18bool TestEventFilter::filter_return_value_;
19
20// static
21std::unique_ptr<TraceEventFilter> TestEventFilter::Factory(
22 const std::string& predicate_name) {
23 std::unique_ptr<TraceEventFilter> res;
24 if (predicate_name == kName)
25 res.reset(new TestEventFilter());
26 return res;
27}
28
29TestEventFilter::TestEventFilter() {}
30TestEventFilter::~TestEventFilter() {}
31
32bool TestEventFilter::FilterTraceEvent(const TraceEvent& trace_event) const {
33 if (g_hits_counter)
34 g_hits_counter->filter_trace_event_hit_count++;
35 return filter_return_value_;
36}
37
38void TestEventFilter::EndEvent(const char* category_name,
39 const char* name) const {
40 if (g_hits_counter)
41 g_hits_counter->end_event_hit_count++;
42}
43
44TestEventFilter::HitsCounter::HitsCounter() {
45 Reset();
46 DCHECK(!g_hits_counter);
47 g_hits_counter = this;
48}
49
50TestEventFilter::HitsCounter::~HitsCounter() {
51 DCHECK(g_hits_counter);
52 g_hits_counter = nullptr;
53}
54
55void TestEventFilter::HitsCounter::Reset() {
56 filter_trace_event_hit_count = 0;
57 end_event_hit_count = 0;
58}
59
60} // namespace trace_event
61} // namespace base