1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Fixed cleanup in tearDown method.

This commit is contained in:
Sergey Prigogin 2013-03-30 15:10:11 -07:00
parent 35e8c70211
commit 63d44872da

View file

@ -14,8 +14,10 @@ package org.eclipse.cdt.internal.index.tests;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import junit.framework.Test; import junit.framework.Test;
@ -46,10 +48,12 @@ import org.eclipse.core.runtime.Path;
* Tests the behavior of the IIndex API when dealing with multiple projects * Tests the behavior of the IIndex API when dealing with multiple projects
*/ */
public class IndexCompositeTests extends BaseTestCase { public class IndexCompositeTests extends BaseTestCase {
Set<IProject> createdProjects = new HashSet<IProject>();
/* /*
* Convenience class for setting up projects. * Convenience class for setting up projects.
*/ */
private static class ProjectBuilder { private class ProjectBuilder {
private final String name; private final String name;
private final boolean cpp; private final boolean cpp;
private List<IProject> dependencies = new ArrayList<IProject>(); private List<IProject> dependencies = new ArrayList<IProject>();
@ -74,6 +78,7 @@ public class IndexCompositeTests extends BaseTestCase {
ICProject result = cpp ? ICProject result = cpp ?
CProjectHelper.createCCProject(name, "bin", IPDOMManager.ID_NO_INDEXER) : CProjectHelper.createCCProject(name, "bin", IPDOMManager.ID_NO_INDEXER) :
CProjectHelper.createCProject(name, "bin", IPDOMManager.ID_NO_INDEXER); CProjectHelper.createCProject(name, "bin", IPDOMManager.ID_NO_INDEXER);
createdProjects.add(result.getProject());
IFile lastFile= null; IFile lastFile= null;
for (Map.Entry<String, String> entry : path2content.entrySet()) { for (Map.Entry<String, String> entry : path2content.entrySet()) {
@ -131,12 +136,12 @@ public class IndexCompositeTests extends BaseTestCase {
List<ICProject> projects = new ArrayList<ICProject>(); List<ICProject> projects = new ArrayList<ICProject>();
try { try {
ProjectBuilder pb = new ProjectBuilder("projB" + System.currentTimeMillis(), true); ProjectBuilder pb = new ProjectBuilder("projB_" + getName(), true);
pb.addFile("h1.h", contents[0]); pb.addFile("h1.h", contents[0]);
ICProject cprojB = pb.create(); ICProject cprojB = pb.create();
projects.add(cprojB); projects.add(cprojB);
pb = new ProjectBuilder("projA" + System.currentTimeMillis(), true); pb = new ProjectBuilder("projA_" + getName(), true);
pb.addFile("h2.h", contents[1]).addDependency(cprojB.getProject()); pb.addFile("h2.h", contents[1]).addDependency(cprojB.getProject());
ICProject cprojA = pb.create(); ICProject cprojA = pb.create();
projects.add(cprojA); projects.add(cprojA);
@ -179,17 +184,17 @@ public class IndexCompositeTests extends BaseTestCase {
List<ICProject> projects = new ArrayList<ICProject>(); List<ICProject> projects = new ArrayList<ICProject>();
try { try {
ProjectBuilder pb = new ProjectBuilder("projC" + System.currentTimeMillis(), true); ProjectBuilder pb = new ProjectBuilder("projC_" + getName(), true);
pb.addFile("h3.h", contents[0]); pb.addFile("h3.h", contents[0]);
ICProject cprojC = pb.create(); ICProject cprojC = pb.create();
projects.add(cprojC); projects.add(cprojC);
pb = new ProjectBuilder("projB" + System.currentTimeMillis(), true); pb = new ProjectBuilder("projB_" + getName(), true);
pb.addFile("h2.h", contents[1]).addDependency(cprojC.getProject()); pb.addFile("h2.h", contents[1]).addDependency(cprojC.getProject());
ICProject cprojB = pb.create(); ICProject cprojB = pb.create();
projects.add(cprojB); projects.add(cprojB);
pb = new ProjectBuilder("projA" + System.currentTimeMillis(), true); pb = new ProjectBuilder("projA_" + getName(), true);
pb.addFile("h1.h", contents[2]).addDependency(cprojB.getProject()); pb.addFile("h1.h", contents[2]).addDependency(cprojB.getProject());
ICProject cprojA = pb.create(); ICProject cprojA = pb.create();
projects.add(cprojA); projects.add(cprojA);
@ -294,17 +299,17 @@ public class IndexCompositeTests extends BaseTestCase {
List<ICProject> projects = new ArrayList<ICProject>(); List<ICProject> projects = new ArrayList<ICProject>();
try { try {
ProjectBuilder pb = new ProjectBuilder("projB" + System.currentTimeMillis(), true); ProjectBuilder pb = new ProjectBuilder("projB_" + getName(), true);
pb.addFile("h2.h", contents[0]); pb.addFile("h2.h", contents[0]);
ICProject cprojB = pb.create(); ICProject cprojB = pb.create();
projects.add(cprojB); projects.add(cprojB);
pb = new ProjectBuilder("projA" + System.currentTimeMillis(), true); pb = new ProjectBuilder("projA_" + getName(), true);
pb.addFile("h1.h", contents[1]).addDependency(cprojB.getProject()); pb.addFile("h1.h", contents[1]).addDependency(cprojB.getProject());
ICProject cprojA = pb.create(); ICProject cprojA = pb.create();
projects.add(cprojA); projects.add(cprojA);
pb = new ProjectBuilder("projC" + System.currentTimeMillis(), true); pb = new ProjectBuilder("projC_" + getName(), true);
pb.addFile("h3.h", contents[2]).addDependency(cprojB.getProject()); pb.addFile("h3.h", contents[2]).addDependency(cprojB.getProject());
ICProject cprojC = pb.create(); ICProject cprojC = pb.create();
projects.add(cprojC); projects.add(cprojC);
@ -392,17 +397,17 @@ public class IndexCompositeTests extends BaseTestCase {
List<ICProject> projects = new ArrayList<ICProject>(); List<ICProject> projects = new ArrayList<ICProject>();
try { try {
ProjectBuilder pb = new ProjectBuilder("projC" + System.currentTimeMillis(), true); ProjectBuilder pb = new ProjectBuilder("projC_" + getName(), true);
pb.addFile("h3.h", contents[0]); pb.addFile("h3.h", contents[0]);
ICProject cprojC = pb.create(); ICProject cprojC = pb.create();
projects.add(cprojC); projects.add(cprojC);
pb = new ProjectBuilder("projA" + System.currentTimeMillis(), true); pb = new ProjectBuilder("projA_" + getName(), true);
pb.addFile("h1.h", contents[2]); pb.addFile("h1.h", contents[2]);
ICProject cprojA = pb.create(); ICProject cprojA = pb.create();
projects.add(cprojA); projects.add(cprojA);
pb = new ProjectBuilder("projB" + System.currentTimeMillis(), true); pb = new ProjectBuilder("projB_" + getName(), true);
pb.addFile("h2.h", contents[1]).addDependency(cprojC.getProject()).addDependency(cprojA.getProject()); pb.addFile("h2.h", contents[1]).addDependency(cprojC.getProject()).addDependency(cprojA.getProject());
ICProject cprojB = pb.create(); ICProject cprojB = pb.create();
projects.add(cprojB); projects.add(cprojB);
@ -509,6 +514,10 @@ public class IndexCompositeTests extends BaseTestCase {
protected void tearDown() throws Exception { protected void tearDown() throws Exception {
if (index != null) { if (index != null) {
index.releaseReadLock(); index.releaseReadLock();
index = null;
}
for (IProject project : createdProjects) {
project.delete(true, npm());
} }
super.tearDown(); super.tearDown();
} }