diff options
author | Stefan Xenos | 2016-12-14 17:44:35 +0000 |
---|---|---|
committer | Stefan Xenos | 2016-12-14 17:44:35 +0000 |
commit | 8664812eb8f2f1d0eb218bafe6164dda4ed41c39 (patch) | |
tree | 877ac1f0aed3e4839a49da75ad8508d5feb035f3 /org.eclipse.jdt.core.tests.builder | |
parent | 6ffd2ce21114045f950ffaac0e09a0d97862a971 (diff) | |
download | eclipse.jdt.core-8664812eb8f2f1d0eb218bafe6164dda4ed41c39.tar.gz eclipse.jdt.core-8664812eb8f2f1d0eb218bafe6164dda4ed41c39.tar.xz eclipse.jdt.core-8664812eb8f2f1d0eb218bafe6164dda4ed41c39.zip |
Bug 412484 - MultiProjectTests.testCycle* are unstable
Fix regression caused by previous patch that was preventing the cycle
error markers from being cleared correctly.
Added regression test for the failing corner case.
Change-Id: I67f7c7b29c4bd96d03e97f894fbfa62b3adbdcfe
Diffstat (limited to 'org.eclipse.jdt.core.tests.builder')
-rw-r--r-- | org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/MultiProjectTests.java | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/MultiProjectTests.java b/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/MultiProjectTests.java index e36849fa98..8e56fc7d37 100644 --- a/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/MultiProjectTests.java +++ b/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/MultiProjectTests.java @@ -299,6 +299,46 @@ public class MultiProjectTests extends BuilderTests { env.removeProject(p3); } + public void testCyclesCleared() throws JavaModelException { + IPath p1 = env.addProject("P1"); //$NON-NLS-1$ + IPath p2 = env.addProject("P2"); //$NON-NLS-1$ + try { + env.addRequiredProject(p1, p2); + env.addRequiredProject(p2, p1); + + fullBuild(); + env.waitForAutoBuild(); + + printProblems(); + expectingOnlySpecificProblemsFor(p1, new Problem[] { + new Problem("p1", + "A cycle was detected in the build path of project 'P1'. The cycle consists of projects {P1, P2}", + p1, -1, -1, CategorizedProblem.CAT_BUILDPATH, IMarker.SEVERITY_ERROR), + new Problem("p1", + "The project cannot be built until build path errors are resolved", + p1, -1, -1, CategorizedProblem.CAT_BUILDPATH, IMarker.SEVERITY_ERROR) + });//$NON-NLS-1$ //$NON-NLS-2$ + expectingOnlySpecificProblemsFor(p2, new Problem[] { + new Problem("p2", + "A cycle was detected in the build path of project 'P2'. The cycle consists of projects {P1, P2}", + p2, -1, -1, CategorizedProblem.CAT_BUILDPATH, IMarker.SEVERITY_ERROR), + new Problem("p2", + "The project cannot be built until build path errors are resolved", + p2, -1, -1, CategorizedProblem.CAT_BUILDPATH, IMarker.SEVERITY_ERROR) + });//$NON-NLS-1$ //$NON-NLS-2$ + + env.removeRequiredProject(p1, p2); + + fullBuild(); + env.waitForAutoBuild(); + + expectingNoProblems(); + } finally { + env.removeProject(p1); + env.removeProject(p2); + } + } + public void testCycle1() throws JavaModelException { Hashtable options = JavaCore.getOptions(); Hashtable newOptions = JavaCore.getOptions(); |