Home | History | Annotate | Download | only in util
      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 
     10 namespace syncer {
     11 namespace {
     12 
     13 class DataTypeHistogramTest : public testing::Test {
     14 };
     15 
     16 // Create a histogram of type LOCAL_HISTOGRAM_COUNTS for each model type.
     17 // Nothing should break.
     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     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.
     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
     38   }
     39 }
     40 
     41 // Create a histogram of type UMA_HISTOGRAM_ENUMERATION for each model type.
     42 // Nothing should break.
     43 TEST(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