mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
Merge remote-tracking branch 'cdt/master' into sd90
This commit is contained in:
commit
775d00a41d
3 changed files with 37 additions and 20 deletions
|
@ -45,6 +45,7 @@ import org.eclipse.core.resources.IMarker;
|
|||
import org.eclipse.core.resources.IResource;
|
||||
import org.eclipse.core.resources.IWorkspaceRoot;
|
||||
import org.eclipse.core.resources.ResourcesPlugin;
|
||||
import org.eclipse.core.resources.WorkspaceJob;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IPath;
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
|
@ -358,9 +359,9 @@ public abstract class AbstractBuiltinSpecsDetector extends AbstractLanguageSetti
|
|||
}
|
||||
isExecuted = true;
|
||||
|
||||
Job job = new Job(ManagedMakeMessages.getResourceString("AbstractBuiltinSpecsDetector.DiscoverBuiltInSettingsJobName")) { //$NON-NLS-1$
|
||||
WorkspaceJob job = new WorkspaceJob(ManagedMakeMessages.getResourceString("AbstractBuiltinSpecsDetector.DiscoverBuiltInSettingsJobName")) { //$NON-NLS-1$
|
||||
@Override
|
||||
protected IStatus run(IProgressMonitor monitor) {
|
||||
public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException {
|
||||
IStatus status;
|
||||
try {
|
||||
startup(currentCfgDescription, null);
|
||||
|
|
|
@ -49,7 +49,7 @@ import org.eclipse.core.runtime.NullProgressMonitor;
|
|||
|
||||
/**
|
||||
* @author David
|
||||
*
|
||||
*
|
||||
* To change the template for this generated type comment go to
|
||||
* Window>Preferences>Java>Code Generation>Code and Comments
|
||||
*/
|
||||
|
@ -62,7 +62,7 @@ public class CDescriptorTests extends BaseTestCase {
|
|||
|
||||
/**
|
||||
* Constructor for CDescriptorTest.
|
||||
*
|
||||
*
|
||||
* @param name
|
||||
*/
|
||||
public CDescriptorTests(String name) {
|
||||
|
@ -92,7 +92,7 @@ public class CDescriptorTests extends BaseTestCase {
|
|||
};
|
||||
return wrapper;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
fProject.open(new NullProgressMonitor());
|
||||
|
@ -101,7 +101,7 @@ public class CDescriptorTests extends BaseTestCase {
|
|||
@Override
|
||||
protected void tearDown() throws Exception {
|
||||
}
|
||||
|
||||
|
||||
private static void addNatureToProject(IProject proj, String natureId, IProgressMonitor monitor) throws CoreException {
|
||||
IProjectDescription description = proj.getDescription();
|
||||
String[] prevNatures = description.getNatureIds();
|
||||
|
@ -193,8 +193,11 @@ public class CDescriptorTests extends BaseTestCase {
|
|||
};
|
||||
t.start();
|
||||
ICDescriptor desc = CCorePlugin.getDefault().getCProjectDescription(fProject, true);
|
||||
t.join();
|
||||
|
||||
try {
|
||||
t.join();
|
||||
} catch (InterruptedException e) {
|
||||
}
|
||||
|
||||
ICStorageElement data = desc.getProjectStorageElement("testElement0");
|
||||
data.createChild("test");
|
||||
desc.saveProjectData();
|
||||
|
@ -204,7 +207,7 @@ public class CDescriptorTests extends BaseTestCase {
|
|||
|
||||
/*
|
||||
* This tests concurrent descriptor modification inside of a ICDescriptor operation run
|
||||
* with
|
||||
* with
|
||||
* CConfigBasedDescriptorManager.runDescriptorOperation(IProject project, ICDescriptorOperation op, IProgressMonitor monitor)
|
||||
*/
|
||||
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=185930
|
||||
|
@ -253,7 +256,10 @@ public class CDescriptorTests extends BaseTestCase {
|
|||
}
|
||||
for (int j = 0; j < threads.length; j++) {
|
||||
if (threads[j] != null) {
|
||||
threads[j].join();
|
||||
try {
|
||||
threads[j].join();
|
||||
} catch (InterruptedException e) {
|
||||
}
|
||||
}
|
||||
assertNull("Exception occurred: "+exception[j], exception[j]);
|
||||
}
|
||||
|
@ -267,7 +273,7 @@ public class CDescriptorTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/*
|
||||
* This test should pass as two threads, operating on the
|
||||
* This test should pass as two threads, operating on the
|
||||
* different storage elements (outside of an operation) should be safe
|
||||
*/
|
||||
public void testConcurrentDifferentStorageElementModification() throws Exception {
|
||||
|
@ -291,7 +297,10 @@ public class CDescriptorTests extends BaseTestCase {
|
|||
ICStorageElement data = desc.getProjectStorageElement("testElement5");
|
||||
data.createChild("test");
|
||||
desc.saveProjectData();
|
||||
t.join();
|
||||
try {
|
||||
t.join();
|
||||
} catch (InterruptedException e) {
|
||||
}
|
||||
|
||||
fLastEvent = null;
|
||||
}
|
||||
|
@ -324,8 +333,11 @@ public class CDescriptorTests extends BaseTestCase {
|
|||
ICStorageElement data = desc.getProjectStorageElement("testElement6");
|
||||
data.createChild("test");
|
||||
desc.saveProjectData();
|
||||
t.join();
|
||||
|
||||
try {
|
||||
t.join();
|
||||
} catch (InterruptedException e) {
|
||||
}
|
||||
|
||||
fLastEvent = null;
|
||||
}
|
||||
Assert.assertEquals(200, CCorePlugin.getDefault().getCProjectDescription(fProject, false).getProjectStorageElement("testElement6").getChildren().length);
|
||||
|
@ -356,8 +368,11 @@ public class CDescriptorTests extends BaseTestCase {
|
|||
ICStorageElement data = desc.getProjectStorageElement("testElement0");
|
||||
data.createChild("test");
|
||||
desc.saveProjectData();
|
||||
t.join();
|
||||
|
||||
try {
|
||||
t.join();
|
||||
} catch (InterruptedException e) {
|
||||
}
|
||||
|
||||
fLastEvent = null;
|
||||
}
|
||||
}
|
||||
|
@ -488,7 +503,7 @@ public class CDescriptorTests extends BaseTestCase {
|
|||
|
||||
String dotCProject1 = readDotCProjectFile(fProject);
|
||||
long mtime1 = fProject.getFile(".cproject").getLocalTimeStamp();
|
||||
|
||||
|
||||
desc = CCorePlugin.getDefault().getCProjectDescription(fProject, true);
|
||||
data = desc.getProjectStorageElement("testElement");
|
||||
for (ICStorageElement child : data.getChildren()) {
|
||||
|
@ -522,11 +537,11 @@ public class CDescriptorTests extends BaseTestCase {
|
|||
|
||||
/**
|
||||
* Read .cproject file.
|
||||
*
|
||||
*
|
||||
* @param project
|
||||
* @return content of .cproject file
|
||||
* @throws CoreException
|
||||
* @throws IOException
|
||||
* @throws CoreException
|
||||
* @throws IOException
|
||||
*/
|
||||
private static String readDotCProjectFile(IProject project) throws CoreException, IOException {
|
||||
IFile cProjectFile = project.getFile(".cproject");
|
||||
|
|
|
@ -590,6 +590,7 @@ public class LanguageSettingsProvidersSerializer {
|
|||
}
|
||||
};
|
||||
|
||||
job.setRule(ResourcesPlugin.getWorkspace().getRoot());
|
||||
job.schedule();
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue