blob: 24af056f1cee08849215141b05c4e10fa94c8913 [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.base.metrics;
import android.test.InstrumentationTestCase;
import android.test.suitebuilder.annotation.SmallTest;
import org.chromium.base.library_loader.LibraryLoader;
import org.chromium.base.library_loader.LibraryProcessType;
import org.chromium.base.test.util.MetricsUtils.HistogramDelta;
import java.util.concurrent.TimeUnit;
/**
* Tests for the Java API for recording UMA histograms.
*/
public class RecordHistogramTest extends InstrumentationTestCase {
@Override
protected void setUp() throws Exception {
super.setUp();
LibraryLoader.get(LibraryProcessType.PROCESS_BROWSER).ensureInitialized();
RecordHistogram.initialize();
}
/**
* Tests recording of boolean histograms.
*/
@SmallTest
public void testRecordBooleanHistogram() {
String histogram = "HelloWorld.BooleanMetric";
HistogramDelta falseCount = new HistogramDelta(histogram, 0);
HistogramDelta trueCount = new HistogramDelta(histogram, 1);
assertEquals(0, trueCount.getDelta());
assertEquals(0, falseCount.getDelta());
RecordHistogram.recordBooleanHistogram(histogram, true);
assertEquals(1, trueCount.getDelta());
assertEquals(0, falseCount.getDelta());
RecordHistogram.recordBooleanHistogram(histogram, true);
assertEquals(2, trueCount.getDelta());
assertEquals(0, falseCount.getDelta());
RecordHistogram.recordBooleanHistogram(histogram, false);
assertEquals(2, trueCount.getDelta());
assertEquals(1, falseCount.getDelta());
}
/**
* Tests recording of enumerated histograms.
*/
@SmallTest
public void testRecordEnumeratedHistogram() {
String histogram = "HelloWorld.EnumeratedMetric";
HistogramDelta zeroCount = new HistogramDelta(histogram, 0);
HistogramDelta oneCount = new HistogramDelta(histogram, 1);
HistogramDelta twoCount = new HistogramDelta(histogram, 2);
final int boundary = 3;
assertEquals(0, zeroCount.getDelta());
assertEquals(0, oneCount.getDelta());
assertEquals(0, twoCount.getDelta());
RecordHistogram.recordEnumeratedHistogram(histogram, 0, boundary);
assertEquals(1, zeroCount.getDelta());
assertEquals(0, oneCount.getDelta());
assertEquals(0, twoCount.getDelta());
RecordHistogram.recordEnumeratedHistogram(histogram, 0, boundary);
assertEquals(2, zeroCount.getDelta());
assertEquals(0, oneCount.getDelta());
assertEquals(0, twoCount.getDelta());
RecordHistogram.recordEnumeratedHistogram(histogram, 2, boundary);
assertEquals(2, zeroCount.getDelta());
assertEquals(0, oneCount.getDelta());
assertEquals(1, twoCount.getDelta());
}
/**
* Tests recording of count histograms.
*/
@SmallTest
public void testRecordCountHistogram() {
String histogram = "HelloWorld.CountMetric";
HistogramDelta zeroCount = new HistogramDelta(histogram, 0);
HistogramDelta oneCount = new HistogramDelta(histogram, 1);
HistogramDelta twoCount = new HistogramDelta(histogram, 2);
HistogramDelta eightThousandCount = new HistogramDelta(histogram, 8000);
assertEquals(0, zeroCount.getDelta());
assertEquals(0, oneCount.getDelta());
assertEquals(0, twoCount.getDelta());
assertEquals(0, eightThousandCount.getDelta());
RecordHistogram.recordCountHistogram(histogram, 0);
assertEquals(1, zeroCount.getDelta());
assertEquals(0, oneCount.getDelta());
assertEquals(0, twoCount.getDelta());
assertEquals(0, eightThousandCount.getDelta());
RecordHistogram.recordCountHistogram(histogram, 0);
assertEquals(2, zeroCount.getDelta());
assertEquals(0, oneCount.getDelta());
assertEquals(0, twoCount.getDelta());
assertEquals(0, eightThousandCount.getDelta());
RecordHistogram.recordCountHistogram(histogram, 2);
assertEquals(2, zeroCount.getDelta());
assertEquals(0, oneCount.getDelta());
assertEquals(1, twoCount.getDelta());
assertEquals(0, eightThousandCount.getDelta());
RecordHistogram.recordCountHistogram(histogram, 8000);
assertEquals(2, zeroCount.getDelta());
assertEquals(0, oneCount.getDelta());
assertEquals(1, twoCount.getDelta());
assertEquals(1, eightThousandCount.getDelta());
}
/**
* Tests recording of custom times histograms.
*/
@SmallTest
public void testRecordCustomTimesHistogram() {
String histogram = "HelloWorld.CustomTimesMetric";
HistogramDelta zeroCount = new HistogramDelta(histogram, 0);
HistogramDelta oneCount = new HistogramDelta(histogram, 1);
HistogramDelta twoCount = new HistogramDelta(histogram, 100);
assertEquals(0, zeroCount.getDelta());
assertEquals(0, oneCount.getDelta());
assertEquals(0, twoCount.getDelta());
TimeUnit milli = TimeUnit.MILLISECONDS;
RecordHistogram.recordCustomTimesHistogram(histogram, 0, 1, 100, milli, 3);
assertEquals(1, zeroCount.getDelta());
assertEquals(0, oneCount.getDelta());
assertEquals(0, twoCount.getDelta());
RecordHistogram.recordCustomTimesHistogram(histogram, 0, 1, 100, milli, 3);
assertEquals(2, zeroCount.getDelta());
assertEquals(0, oneCount.getDelta());
assertEquals(0, twoCount.getDelta());
RecordHistogram.recordCustomTimesHistogram(histogram, 95, 1, 100, milli, 3);
assertEquals(2, zeroCount.getDelta());
assertEquals(1, oneCount.getDelta());
assertEquals(0, twoCount.getDelta());
RecordHistogram.recordCustomTimesHistogram(histogram, 200, 1, 100, milli, 3);
assertEquals(2, zeroCount.getDelta());
assertEquals(1, oneCount.getDelta());
assertEquals(1, twoCount.getDelta());
}
}