1*635a8641SAndroid Build Coastguard Worker // Copyright 2015 The Chromium Authors. All rights reserved.
2*635a8641SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*635a8641SAndroid Build Coastguard Worker // found in the LICENSE file.
4*635a8641SAndroid Build Coastguard Worker
5*635a8641SAndroid Build Coastguard Worker #include "base/metrics/histogram_macros.h"
6*635a8641SAndroid Build Coastguard Worker #include "base/time/time.h"
7*635a8641SAndroid Build Coastguard Worker #include "testing/gtest/include/gtest/gtest.h"
8*635a8641SAndroid Build Coastguard Worker
9*635a8641SAndroid Build Coastguard Worker namespace base {
10*635a8641SAndroid Build Coastguard Worker
TEST(ScopedHistogramTimer,TwoTimersOneScope)11*635a8641SAndroid Build Coastguard Worker TEST(ScopedHistogramTimer, TwoTimersOneScope) {
12*635a8641SAndroid Build Coastguard Worker SCOPED_UMA_HISTOGRAM_TIMER("TestTimer0");
13*635a8641SAndroid Build Coastguard Worker SCOPED_UMA_HISTOGRAM_TIMER("TestTimer1");
14*635a8641SAndroid Build Coastguard Worker SCOPED_UMA_HISTOGRAM_LONG_TIMER("TestLongTimer0");
15*635a8641SAndroid Build Coastguard Worker SCOPED_UMA_HISTOGRAM_LONG_TIMER("TestLongTimer1");
16*635a8641SAndroid Build Coastguard Worker }
17*635a8641SAndroid Build Coastguard Worker
18*635a8641SAndroid Build Coastguard Worker // Compile tests for UMA_HISTOGRAM_ENUMERATION with the three different types it
19*635a8641SAndroid Build Coastguard Worker // accepts:
20*635a8641SAndroid Build Coastguard Worker // - integral types
21*635a8641SAndroid Build Coastguard Worker // - unscoped enums
22*635a8641SAndroid Build Coastguard Worker // - scoped enums
TEST(HistogramMacro,IntegralPsuedoEnumeration)23*635a8641SAndroid Build Coastguard Worker TEST(HistogramMacro, IntegralPsuedoEnumeration) {
24*635a8641SAndroid Build Coastguard Worker UMA_HISTOGRAM_ENUMERATION("Test.FauxEnumeration", 1, 10000);
25*635a8641SAndroid Build Coastguard Worker }
26*635a8641SAndroid Build Coastguard Worker
TEST(HistogramMacro,UnscopedEnumeration)27*635a8641SAndroid Build Coastguard Worker TEST(HistogramMacro, UnscopedEnumeration) {
28*635a8641SAndroid Build Coastguard Worker enum TestEnum : char {
29*635a8641SAndroid Build Coastguard Worker FIRST_VALUE,
30*635a8641SAndroid Build Coastguard Worker SECOND_VALUE,
31*635a8641SAndroid Build Coastguard Worker THIRD_VALUE,
32*635a8641SAndroid Build Coastguard Worker MAX_ENTRIES,
33*635a8641SAndroid Build Coastguard Worker };
34*635a8641SAndroid Build Coastguard Worker UMA_HISTOGRAM_ENUMERATION("Test.UnscopedEnumeration", SECOND_VALUE,
35*635a8641SAndroid Build Coastguard Worker MAX_ENTRIES);
36*635a8641SAndroid Build Coastguard Worker }
37*635a8641SAndroid Build Coastguard Worker
TEST(HistogramMacro,ScopedEnumeration)38*635a8641SAndroid Build Coastguard Worker TEST(HistogramMacro, ScopedEnumeration) {
39*635a8641SAndroid Build Coastguard Worker enum class TestEnum {
40*635a8641SAndroid Build Coastguard Worker FIRST_VALUE,
41*635a8641SAndroid Build Coastguard Worker SECOND_VALUE,
42*635a8641SAndroid Build Coastguard Worker THIRD_VALUE,
43*635a8641SAndroid Build Coastguard Worker kMaxValue = THIRD_VALUE,
44*635a8641SAndroid Build Coastguard Worker };
45*635a8641SAndroid Build Coastguard Worker UMA_HISTOGRAM_ENUMERATION("Test.ScopedEnumeration", TestEnum::FIRST_VALUE);
46*635a8641SAndroid Build Coastguard Worker
47*635a8641SAndroid Build Coastguard Worker enum class TestEnum2 {
48*635a8641SAndroid Build Coastguard Worker FIRST_VALUE,
49*635a8641SAndroid Build Coastguard Worker SECOND_VALUE,
50*635a8641SAndroid Build Coastguard Worker THIRD_VALUE,
51*635a8641SAndroid Build Coastguard Worker MAX_ENTRIES,
52*635a8641SAndroid Build Coastguard Worker };
53*635a8641SAndroid Build Coastguard Worker UMA_HISTOGRAM_ENUMERATION("Test.ScopedEnumeration2", TestEnum2::SECOND_VALUE,
54*635a8641SAndroid Build Coastguard Worker TestEnum2::MAX_ENTRIES);
55*635a8641SAndroid Build Coastguard Worker }
56*635a8641SAndroid Build Coastguard Worker
57*635a8641SAndroid Build Coastguard Worker } // namespace base
58