blob: 41dacce66c9f84b395444eddf85f6a6f993f11fb [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2005 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.ui.tests.performance;
import junit.framework.TestCase;
import org.eclipse.test.performance.Dimension;
import org.eclipse.test.performance.Performance;
import org.eclipse.test.performance.PerformanceMeter;
/**
* @since 3.1
*/
final class PerformanceTester {
protected PerformanceMeter fPerformanceMeter;
/**
* @param testCase
*/
public PerformanceTester(TestCase testCase) {
Performance performance= Performance.getDefault();
fPerformanceMeter= performance.createPerformanceMeter(performance.getDefaultScenarioId(testCase));
}
/**
* Asserts default properties of the measurements captured for this test
* case.
*
* @throws RuntimeException if the properties do not hold
*/
public void assertPerformance() {
Performance.getDefault().assertPerformance(fPerformanceMeter);
}
/**
* Asserts that the measurement specified by the given dimension is within a
* certain range with respect to some reference value. If the specified
* dimension isn't available, the call has no effect.
*
* @param dim
* the Dimension to check
* @param lowerPercentage
* a negative number indicating the percentage the measured value
* is allowed to be smaller than some reference value
* @param upperPercentage
* a positive number indicating the percentage the measured value
* is allowed to be greater than some reference value
* @throws RuntimeException
* if the properties do not hold
*/
public void assertPerformanceInRelativeBand(Dimension dim, int lowerPercentage, int upperPercentage) {
Performance.getDefault().assertPerformanceInRelativeBand(fPerformanceMeter, dim, lowerPercentage, upperPercentage);
}
public void commitMeasurements() {
fPerformanceMeter.commit();
}
public void dispose() {
fPerformanceMeter.dispose();
}
/**
* Called from within a test case immediately before the code to measure is
* run. It starts capturing of performance data. Must be followed by a call
* to {@link PerformanceTestCase#stopMeasuring()}before subsequent calls to
* this method or {@link PerformanceTestCase#commitMeasurements()}.
*/
public void startMeasuring() {
fPerformanceMeter.start();
}
public void stopMeasuring() {
fPerformanceMeter.stop();
}
/**
* Mark the scenario of this test case to be included both into the global
* and the local (component) performance summary. The summary shows the given dimension of the
* scenario and labels the scenario with the short name.
*
* @param shortName
* a short (shorter than 40 characters) descritive name of the scenario
* @param dimension
* the dimension to show in the summary
*/
public void tagAsGlobalSummary(String shortName, Dimension dimension) {
Performance.getDefault().tagAsGlobalSummary(fPerformanceMeter, shortName, new Dimension[] { dimension });
}
/**
* Mark the scenario represented by the given PerformanceMeter to be
* included into the global and the local (component) performance summary. The summary shows the given
* dimensions of the scenario and labels the scenario with the short name.
*
* @param shortName
* a short (shorter than 40 characters) descritive name of the scenario
* @param dimensions
* an array of dimensions to show in the summary
*/
public void tagAsGlobalSummary(String shortName, Dimension[] dimensions) {
Performance.getDefault().tagAsGlobalSummary(fPerformanceMeter, shortName, dimensions);
}
/**
* Mark the scenario of this test case to be included into the local (component)
* performance summary. The summary shows the given dimension of the
* scenario and labels the scenario with the short name.
*
* @param shortName
* a short (shorter than 40 characters) descriptive name of the scenario
* @param dimension
* the dimension to show in the summary
*/
public void tagAsSummary(String shortName, Dimension dimension) {
Performance.getDefault().tagAsSummary(fPerformanceMeter, shortName, new Dimension[] { dimension });
}
/**
* Mark the scenario represented by the given PerformanceMeter to be
* included into the local (component) performance summary. The summary shows the given
* dimensions of the scenario and labels the scenario with the short name.
*
* @param shortName
* a short (shorter than 40 characters) descriptive name of the scenario
* @param dimensions
* an array of dimensions to show in the summary
*/
public void tagAsSummary(String shortName, Dimension[] dimensions) {
Performance.getDefault().tagAsSummary(fPerformanceMeter, shortName, dimensions);
}
/**
* Set a degradation comment for the current meter.
* @param string
*/
public void setDegradationComment(String string) {
Performance.getDefault().setComment(
fPerformanceMeter,
Performance.EXPLAINS_DEGRADATION_COMMENT,
string);
}
}