1 // Copyright (c) 2012 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.
5 #include "sync/util/data_type_histogram.h"
7 #include "base/time/time.h"
8 #include "testing/gtest/include/gtest/gtest.h"
13 class DataTypeHistogramTest : public testing::Test {
16 // Create a histogram of type HISTOGRAM_COUNTS for each model type. Nothing
18 TEST(DataTypeHistogramTest, BasicCount) {
19 for (int i = FIRST_REAL_MODEL_TYPE; i <= LAST_REAL_MODEL_TYPE; ++i) {
20 ModelType type = ModelTypeFromInt(i);
21 #define PER_DATA_TYPE_MACRO(type_str) \
22 HISTOGRAM_COUNTS("Prefix" type_str "Suffix", 1);
23 SYNC_DATA_TYPE_HISTOGRAM(type);
24 #undef PER_DATA_TYPE_MACRO
28 // Create a histogram of type SYNC_FREQ_HISTOGRAM for each model type. Nothing
30 TEST(DataTypeHistogramTest, BasicFreq) {
31 for (int i = FIRST_REAL_MODEL_TYPE; i <= LAST_REAL_MODEL_TYPE; ++i) {
32 ModelType type = ModelTypeFromInt(i);
33 #define PER_DATA_TYPE_MACRO(type_str) \
34 SYNC_FREQ_HISTOGRAM("Prefix" type_str "Suffix", \
35 base::TimeDelta::FromSeconds(1));
36 SYNC_DATA_TYPE_HISTOGRAM(type);
37 #undef PER_DATA_TYPE_MACRO
41 // Create a histogram of type UMA_HISTOGRAM_ENUMERATION for each model type.
42 // Nothing should break.
43 TEST(DataTypeHistogramTest, BasicEnum) {
49 for (int i = FIRST_REAL_MODEL_TYPE; i <= LAST_REAL_MODEL_TYPE; ++i) {
50 ModelType type = ModelTypeFromInt(i);
51 #define PER_DATA_TYPE_MACRO(type_str) \
52 UMA_HISTOGRAM_ENUMERATION("Prefix" type_str "Suffix", \
53 (i % 2 ? TYPE_1 : TYPE_2), TYPE_COUNT);
54 SYNC_DATA_TYPE_HISTOGRAM(type);
55 #undef PER_DATA_TYPE_MACRO