### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core.tests.performance Index: src/org/eclipse/jdt/core/tests/performance/FullSourceWorkspaceTests.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.performance/src/org/eclipse/jdt/core/tests/performance/FullSourceWorkspaceTests.java,v retrieving revision 1.33.6.2 diff -u -r1.33.6.2 FullSourceWorkspaceTests.java --- src/org/eclipse/jdt/core/tests/performance/FullSourceWorkspaceTests.java 2 Mar 2007 18:54:46 -0000 1.33.6.2 +++ src/org/eclipse/jdt/core/tests/performance/FullSourceWorkspaceTests.java 28 Mar 2007 15:37:40 -0000 @@ -23,11 +23,13 @@ import org.eclipse.jdt.core.*; import org.eclipse.jdt.core.tests.builder.TestingEnvironment; import org.eclipse.jdt.core.tests.junit.extension.TestCase; +import org.eclipse.jdt.core.tests.model.AbstractJavaModelTests; import org.eclipse.jdt.core.tests.performance.util.JdtCorePerformanceMeter; import org.eclipse.jdt.core.tests.util.Util; import org.eclipse.jdt.internal.compiler.batch.Main; import org.eclipse.jdt.internal.compiler.impl.CompilerOptions; import org.eclipse.jdt.internal.core.JarPackageFragmentRoot; +import org.eclipse.jdt.internal.core.JavaCorePreferenceInitializer; import org.eclipse.jdt.internal.core.JavaModelManager; import org.eclipse.jdt.internal.core.JavaProject; import org.eclipse.jdt.internal.core.search.indexing.IndexManager; @@ -1239,6 +1241,29 @@ } return null; } + /* + * Simulate a save/exit of the workspace + */ + protected void simulateExit() throws CoreException { + AbstractJavaModelTests.waitForAutoBuild(); + ResourcesPlugin.getWorkspace().save(true/*full save*/, null/*no progress*/); + JavaModelManager.getJavaModelManager().shutdown(); + } + /* + * Simulate a save/exit/restart of the workspace + */ + protected void simulateExitRestart() throws CoreException { + simulateExit(); + simulateRestart(); + } + /* + * Simulate a restart of the workspace + */ + protected void simulateRestart() throws CoreException { + JavaModelManager.doNotUse(); // reset the MANAGER singleton + JavaModelManager.getJavaModelManager().startup(); + new JavaCorePreferenceInitializer().initializeDefaultPreferences(); + } /** * Split a list of compilation units in several arrays. Index: src/org/eclipse/jdt/core/tests/performance/FullSourceWorkspaceModelTests.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.performance/src/org/eclipse/jdt/core/tests/performance/FullSourceWorkspaceModelTests.java,v retrieving revision 1.15.6.1 diff -u -r1.15.6.1 FullSourceWorkspaceModelTests.java --- src/org/eclipse/jdt/core/tests/performance/FullSourceWorkspaceModelTests.java 1 Mar 2007 11:16:28 -0000 1.15.6.1 +++ src/org/eclipse/jdt/core/tests/performance/FullSourceWorkspaceModelTests.java 28 Mar 2007 15:37:36 -0000 @@ -793,6 +793,93 @@ assertPerformance(); } +public void testCloseProjects() throws JavaModelException { + // store current settings + long oldSnapInterval = ENV.getWorkspace().getDescription().getSnapshotInterval(); + boolean oldAutoBuildPolicy = ENV.isAutoBuilding(); + + // prevent snapshots and autobuilds from disturbing our measures + ENV.getWorkspace().getDescription().setSnapshotInterval(100000); + ENV.getWorkspace().getDescription().setAutoBuilding(false); + + try { + int length=ALL_PROJECTS.length; + // Warm-up + for (int i=0; i