blob: bd100ce585106048d3af047beaa2896106784e9d [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2006, 2010 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jdt.text.tests.performance;
import org.eclipse.jdt.text.tests.JdtTextTestPlugin;
import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.ui.texteditor.spelling.SpellingService;
import org.eclipse.ui.editors.text.EditorsUI;
/**
* @since 3.3
*/
public class TextPerformanceTestCase2 extends PerformanceTestCase2 {
/** containing plug-in id */
private static final String PLUGIN_ID= JdtTextTestPlugin.PLUGIN_ID;
/** boolean option, a value of <code>"true"</code> enables overriding of the number of runs */
private static final String OVERRIDE_RUNS_OPTION= "/debug/performance/OverrideRuns";
/** integer option, its value overrides the number of warm-up runs */
private static final String OVERRIDE_WARM_UP_RUNS_OPTION= "/debug/performance/OverrideWarmUpRuns";
/** integer option, its value overrides the number of measured runs */
private static final String OVERRIDE_MEASURED_RUNS_OPTION= "/debug/performance/OverrideMeasuredRuns";
/** <code>true</code> iff the number of runs should be overridden */
private static final boolean OVERRIDE_RUNS= Boolean.toString(true).equals(Platform.getDebugOption(PLUGIN_ID + OVERRIDE_RUNS_OPTION));
/** overridden number of warm-up runs */
private static final int OVERRIDE_WARM_UP_RUNS= intValueOf(Platform.getDebugOption(PLUGIN_ID + OVERRIDE_WARM_UP_RUNS_OPTION), 2);
/** overridden number of measured runs */
private static final int OVERRIDE_MEASURED_RUNS= intValueOf(Platform.getDebugOption(PLUGIN_ID + OVERRIDE_MEASURED_RUNS_OPTION), 2);
/**
* Returns the integer value of the given string unless the string
* cannot be interpreted as such, in this case the given default is
* returned.
*
* @param stringValue the string to be interpreted as integer
* @param defaultValue the default integer value
* @return the integer value
*/
private static int intValueOf(String stringValue, int defaultValue) {
try {
if (stringValue != null)
return Integer.valueOf(stringValue).intValue();
} catch (NumberFormatException e) {
// use default
}
return defaultValue;
}
/** custom number of warm-up runs */
private int fCustomWarmUpRuns= 20;
/** custom number of measured runs */
private int fCustomMeasuredRuns= 20;
public TextPerformanceTestCase2() {
super();
}
public TextPerformanceTestCase2(String name) {
super(name);
}
@Override
protected void setUp() throws Exception {
super.setUp();
EditorsUI.getPreferenceStore().putValue(SpellingService.PREFERENCE_SPELLING_ENABLED, IPreferenceStore.FALSE);
}
@Override
protected void tearDown() throws Exception {
EditorsUI.getPreferenceStore().setToDefault(SpellingService.PREFERENCE_SPELLING_ENABLED);
super.tearDown();
}
/**
* @return number of warm-up runs, must have been set before
*/
@Override
protected final int getWarmUpRuns() {
if (OVERRIDE_RUNS)
return OVERRIDE_WARM_UP_RUNS;
return fCustomWarmUpRuns;
}
/**
* Sets the number of warm-up runs. Can be overridden.
*
* @param runs number of warm-up runs
*/
protected final void setWarmUpRuns(int runs) {
assertTrue(runs >= 0);
fCustomWarmUpRuns= runs;
}
/**
* @return number of measured runs, must have been set before
*/
@Override
protected final int getMeasuredRuns() {
if (OVERRIDE_RUNS)
return OVERRIDE_MEASURED_RUNS;
return fCustomMeasuredRuns;
}
/**
* Sets the number of measured runs. Can be overridden.
*
* @param runs number of measured runs
*/
protected final void setMeasuredRuns(int runs) {
assertTrue(runs >= 0);
fCustomMeasuredRuns= runs;
}
}