blob: 07d6ba556fbd03c3a0c149c90d9e1ed71d47b37a [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 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 java.util.ArrayList;
import java.util.List;
import java.util.Random;
import junit.framework.Test;
import junit.framework.TestSuite;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.test.performance.Dimension;
public class ObjectContributionsPerformance extends BasicPerformanceTest {
public static final int SEED = 1001001;
private IStructuredSelection selection;
public static Test suite() {
TestSuite suite = new TestSuite("Object contribution performance");
suite.addTest(new ObjectContributionsPerformance(
"large selection, limited contributors",
generateAdaptableSelection(SEED, 5000),
BasicPerformanceTest.NONE));
suite
.addTest(new ObjectContributionsPerformance(
"limited selection, limited contributors",
generateAdaptableSelection(SEED, 50),
BasicPerformanceTest.NONE));
return suite;
}
public ObjectContributionsPerformance(String label, IStructuredSelection selection, int tagging) {
super("testObjectContributions:" + label, tagging);
this.selection = selection;
}
protected void runTest() {
ObjectContributionTest tests = new ObjectContributionTest(
"testObjectContributions");
tagIfNecessary("UI - " + selection.size() + " contribution(s)",
Dimension.ELAPSED_PROCESS);
setDegradationComment("<a href=https://bugs.eclipse.org/bugs/show_bug.cgi?id=88274>See Bug 88274</a> ");
startMeasuring();
for (int i = 0; i < 5000; i++) {
tests.assertPopupMenus("1", new String[] { "bogus" }, selection,
null, false);
}
stopMeasuring();
commitMeasurements();
assertPerformance();
}
protected static IStructuredSelection generateAdaptableSelection(int seed, int size) {
Random rand = new Random(seed);
List selection = new ArrayList();
for (int i = 0; i < size; i++) {
switch ((int) Math.round(rand.nextDouble() * 5)) {
case 0 :
selection.add(new ObjectContributionClasses.A());
break;
case 1 :
selection.add(new ObjectContributionClasses.B());
break;
case 2 :
selection.add(new ObjectContributionClasses.C());
break;
case 3 :
selection.add(new ObjectContributionClasses.Common());
break;
case 4 :
selection.add(new ObjectContributionClasses.D());
break;
case 5 :
selection.add(new ObjectContributionClasses.A1());
break;
default :
selection.add(new Object());
}
}
return new StructuredSelection(selection);
}
}