xref: /aosp_15_r20/external/libchrome/base/metrics/histogram_macros_unittest.cc (revision 635a864187cb8b6c713ff48b7e790a6b21769273)
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