/******************************************************************************* * Copyright (c) 2000, 2017 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.core.tests.resources.perf; import junit.framework.Test; import junit.framework.TestSuite; import org.eclipse.core.resources.*; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.tests.harness.PerformanceTestRunner; import org.eclipse.core.tests.resources.ResourceTest; public class BenchMiscWorkspace extends ResourceTest { public static Test suite() { return new TestSuite(BenchMiscWorkspace.class); // TestSuite suite = new TestSuite(BenchMiscWorkspace.class.getName()); // suite.addTest(new BenchMiscWorkspace("testGetProject")); // return suite; } /** * Constructor for BenchMiscWorkspace. */ public BenchMiscWorkspace() { super(); } /** * Constructor for BenchMiscWorkspace. * @param name */ public BenchMiscWorkspace(String name) { super(name); } /** * Benchmarks performing many empty operations. */ public void testNoOp() throws Exception { final IWorkspace ws = ResourcesPlugin.getWorkspace(); final IWorkspaceRunnable noop = monitor -> { }; //run a first operation to make sure no other jobs are running before starting timer ws.run(noop, null); waitForBuild(); //now start the test new PerformanceTestRunner() { @Override protected void test() { try { ws.run(noop, null); } catch (CoreException e) { fail("0.0", e); } } }.run(this, 10, 100000); } public void testGetProject() { new PerformanceTestRunner() { @Override protected void test() { IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); for (int i = 0; i < 2000; i++) { root.getProject(Integer.toString(i)); } } }.run(this, 10, 1000); } }