From ee60cb456eafb8d7257ffc7bf1ca0166579fe32b Mon Sep 17 00:00:00 2001 From: Bogdan Gheorghe Date: Thu, 12 May 2005 17:27:54 +0000 Subject: [PATCH] Fix for 94988: BaseTestFramework disableIndex() doesn't work --- .../cdt/core/tests/BaseTestFramework.java | 40 +++++++++---------- .../cdt/core/tests/SearchRegressionTests.java | 27 ++++++++----- .../core/tests/SelectionRegressionTest.java | 3 -- 3 files changed, 35 insertions(+), 35 deletions(-) diff --git a/core/org.eclipse.cdt.core.tests/regression/org/eclipse/cdt/core/tests/BaseTestFramework.java b/core/org.eclipse.cdt.core.tests/regression/org/eclipse/cdt/core/tests/BaseTestFramework.java index 66aeff463e2..c9de7b7f019 100644 --- a/core/org.eclipse.cdt.core.tests/regression/org/eclipse/cdt/core/tests/BaseTestFramework.java +++ b/core/org.eclipse.cdt.core.tests/regression/org/eclipse/cdt/core/tests/BaseTestFramework.java @@ -20,16 +20,18 @@ import java.io.InputStream; import junit.framework.TestCase; import org.eclipse.cdt.core.CCorePlugin; +import org.eclipse.cdt.core.ICDescriptor; +import org.eclipse.cdt.core.ICDescriptorOperation; import org.eclipse.cdt.core.model.ICProject; import org.eclipse.cdt.core.testplugin.CProjectHelper; import org.eclipse.cdt.core.testplugin.FileManager; -import org.eclipse.cdt.internal.core.index.sourceindexer.SourceIndexer; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IWorkspace; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor; /** @@ -41,8 +43,7 @@ abstract public class BaseTestFramework extends TestCase { static protected IProject project; static protected ICProject cproject; static protected FileManager fileManager; - static final String sourceIndexerID = "org.eclipse.cdt.core.originalsourceindexer"; //$NON-NLS-1$ - static protected SourceIndexer sourceIndexer; + static protected boolean indexDisabled=false; { if( CCorePlugin.getDefault() != null && CCorePlugin.getDefault().getCoreModel() != null){ //(CCorePlugin.getDefault().getCoreModel().getIndexManager()).reset(); @@ -72,25 +73,22 @@ abstract public class BaseTestFramework extends TestCase { fileManager = new FileManager(); } } - - public void enableIndexing(){ - if( CCorePlugin.getDefault() != null && CCorePlugin.getDefault().getCoreModel() != null){ - if( project != null ) - try { - project.setSessionProperty( SourceIndexer.activationKey, Boolean.TRUE ); - } catch ( CoreException e ) { //boo - } - } - } - + public void disableIndexing(){ - if( CCorePlugin.getDefault() != null && CCorePlugin.getDefault().getCoreModel() != null){ - if( project != null ) - try { - project.setSessionProperty( SourceIndexer.activationKey, Boolean.FALSE ); - } catch ( CoreException e ) { //boo - } - } + if ( project != null) { + ICDescriptorOperation op = new ICDescriptorOperation() { + + public void execute(ICDescriptor descriptor, IProgressMonitor monitor) throws CoreException { + descriptor.remove(CCorePlugin.INDEXER_UNIQ_ID); + descriptor.create(CCorePlugin.INDEXER_UNIQ_ID,CCorePlugin.NULL_INDEXER_UNIQUE_ID); + } + }; + try { + CCorePlugin.getDefault().getCDescriptorManager().runDescriptorOperation(project, op, new NullProgressMonitor()); + CCorePlugin.getDefault().getCoreModel().getIndexManager().indexerChangeNotification(project); + indexDisabled=true; + } catch (CoreException e) {} + } } public BaseTestFramework() diff --git a/core/org.eclipse.cdt.core.tests/regression/org/eclipse/cdt/core/tests/SearchRegressionTests.java b/core/org.eclipse.cdt.core.tests/regression/org/eclipse/cdt/core/tests/SearchRegressionTests.java index 1ade04f8826..15ef93b513c 100644 --- a/core/org.eclipse.cdt.core.tests/regression/org/eclipse/cdt/core/tests/SearchRegressionTests.java +++ b/core/org.eclipse.cdt.core.tests/regression/org/eclipse/cdt/core/tests/SearchRegressionTests.java @@ -23,6 +23,7 @@ import junit.framework.Test; import junit.framework.TestSuite; import org.eclipse.cdt.core.CCorePlugin; +import org.eclipse.cdt.core.index.ICDTIndexer; import org.eclipse.cdt.core.index.IIndexChangeListener; import org.eclipse.cdt.core.index.IIndexDelta; import org.eclipse.cdt.core.index.IndexChangeEvent; @@ -69,23 +70,26 @@ public class SearchRegressionTests extends BaseTestFramework implements ICSearch protected void setUp() throws Exception { super.setUp(); + try{ if (project == null){ cproject = CProjectHelper.createCCProject("RegressionTestProject", "bin"); //$NON-NLS-1$ //$NON-NLS-2$ project = cproject.getProject(); } - project.setSessionProperty(IndexManager.indexerIDKey, sourceIndexerID); - project.setSessionProperty( SourceIndexer.activationKey, new Boolean( true ) ); } catch ( CoreException e ) { //boo } + TypeCacheManager typeCacheManager = TypeCacheManager.getInstance(); typeCacheManager.setProcessTypeCacheEvents(false); IndexManager indexManager = CCorePlugin.getDefault().getCoreModel().getIndexManager(); - //indexManager.reset(); - - sourceIndexer = (SourceIndexer) CCorePlugin.getDefault().getCoreModel().getIndexManager().getIndexerForProject(project); - sourceIndexer.addIndexChangeListener( this ); + indexDisabled=false; + + ICDTIndexer indexer = CCorePlugin.getDefault().getCoreModel().getIndexManager().getIndexerForProject(project); + if (indexer instanceof SourceIndexer){ + ((SourceIndexer)indexer).addIndexChangeListener( this ); + } + } protected void tearDown() throws Exception { @@ -93,7 +97,7 @@ public class SearchRegressionTests extends BaseTestFramework implements ICSearch return; IndexManager indexManager = CCorePlugin.getDefault().getCoreModel().getIndexManager(); - sourceIndexer.removeIndexChangeListener( this ); + //sourceIndexer.removeIndexChangeListener( this ); try{ project.setSessionProperty( SourceIndexer.activationKey, new Boolean( false ) ); project.delete(true,true,new NullProgressMonitor()); @@ -136,10 +140,11 @@ public class SearchRegressionTests extends BaseTestFramework implements ICSearch indexChanged = false; IFile file = super.importFile( fileName, contents ); - while( !indexChanged ){ - Thread.sleep( 100 ); - } - + if (!indexDisabled){ + while( !indexChanged ){ + Thread.sleep( 100 ); + } + } return file; } diff --git a/core/org.eclipse.cdt.core.tests/regression/org/eclipse/cdt/core/tests/SelectionRegressionTest.java b/core/org.eclipse.cdt.core.tests/regression/org/eclipse/cdt/core/tests/SelectionRegressionTest.java index 3f1d7aa433d..c33fd36e589 100644 --- a/core/org.eclipse.cdt.core.tests/regression/org/eclipse/cdt/core/tests/SelectionRegressionTest.java +++ b/core/org.eclipse.cdt.core.tests/regression/org/eclipse/cdt/core/tests/SelectionRegressionTest.java @@ -34,7 +34,6 @@ import org.eclipse.cdt.core.parser.tests.CompleteParseBaseTest.FullParseCallback import org.eclipse.cdt.core.testplugin.CProjectHelper; import org.eclipse.cdt.internal.core.browser.cache.TypeCacheManager; import org.eclipse.cdt.internal.core.index.sourceindexer.SourceIndexer; -import org.eclipse.cdt.internal.core.search.indexing.IndexManager; import org.eclipse.core.resources.IFile; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.NullProgressMonitor; @@ -102,8 +101,6 @@ public class SelectionRegressionTest extends BaseTestFramework { cproject = CProjectHelper.createCCProject("RegressionTestProject", "bin"); //$NON-NLS-1$ //$NON-NLS-2$ project = cproject.getProject(); } - project.setSessionProperty(IndexManager.indexerIDKey, sourceIndexerID); - project.setSessionProperty( SourceIndexer.activationKey, new Boolean( true ) ); } catch ( CoreException e ) { //boo } TypeCacheManager typeCacheManager = TypeCacheManager.getInstance();