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. 4 5#include "sync/util/data_type_histogram.h" 6 7#include "base/time/time.h" 8#include "testing/gtest/include/gtest/gtest.h" 9 10namespace syncer { 11namespace { 12 13class DataTypeHistogramTest : public testing::Test { 14}; 15 16// Create a histogram of type LOCAL_HISTOGRAM_COUNTS for each model type. 17// Nothing should break. 18TEST(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 LOCAL_HISTOGRAM_COUNTS("Prefix" type_str "Suffix", 1); 23 SYNC_DATA_TYPE_HISTOGRAM(type); 24#undef PER_DATA_TYPE_MACRO 25 } 26} 27 28// Create a histogram of type SYNC_FREQ_HISTOGRAM for each model type. Nothing 29// should break. 30TEST(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 38 } 39} 40 41// Create a histogram of type UMA_HISTOGRAM_ENUMERATION for each model type. 42// Nothing should break. 43TEST(DataTypeHistogramTest, BasicEnum) { 44 enum HistTypes { 45 TYPE_1, 46 TYPE_2, 47 TYPE_COUNT, 48 }; 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 56 } 57} 58 59} // namespace 60} // namespace syncer 61