Skip to content

Commit 4357e05

Browse files
trancexpressiloveeclipse
authored andcommitted
Add waiting for jobs and auto-build in tests setup
Fixes: #2128
1 parent 524971f commit 4357e05

File tree

3 files changed

+23
-1
lines changed

3 files changed

+23
-1
lines changed

ui/org.eclipse.pde.junit.runtime.tests/src/org/eclipse/pde/junit/runtime/tests/JUnitExecutionTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import org.eclipse.jdt.junit.model.ITestElement.Result;
3636
import org.eclipse.jdt.junit.model.ITestElementContainer;
3737
import org.eclipse.jdt.junit.model.ITestRunSession;
38+
import org.eclipse.pde.ui.tests.runtime.TestUtils;
3839
import org.eclipse.pde.ui.tests.util.ProjectUtils;
3940
import org.eclipse.pde.ui.tests.util.TargetPlatformUtil;
4041
import org.junit.Assert;
@@ -72,7 +73,10 @@ public static void setupProjects() throws Exception {
7273
for (URL resource : Collections.list(bundle.findEntries("test-bundles", "verification.tests.*", false))) {
7374
ProjectUtils.importTestProject(FileLocator.toFileURL(resource));
7475
}
76+
TestUtils.waitForJobs(JUnitExecutionTest.class + ".setupProjects() before build", 100, 10_000);
7577
workspaceRoot.getWorkspace().build(IncrementalProjectBuilder.FULL_BUILD, null);
78+
TestExecutionUtil.waitForAutoBuild();
79+
TestUtils.waitForJobs(JUnitExecutionTest.class + ".setupProjects() after build", 100, 10_000);
7680
}
7781

7882
@Parameters(name = "{0}")

ui/org.eclipse.pde.junit.runtime.tests/src/org/eclipse/pde/junit/runtime/tests/TestExecutionUtil.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,13 @@
3131
import org.eclipse.core.resources.IProject;
3232
import org.eclipse.core.resources.IResource;
3333
import org.eclipse.core.resources.IncrementalProjectBuilder;
34+
import org.eclipse.core.resources.ResourcesPlugin;
3435
import org.eclipse.core.runtime.CoreException;
3536
import org.eclipse.core.runtime.IPath;
3637
import org.eclipse.core.runtime.NullProgressMonitor;
38+
import org.eclipse.core.runtime.OperationCanceledException;
3739
import org.eclipse.core.runtime.Platform;
40+
import org.eclipse.core.runtime.jobs.Job;
3841
import org.eclipse.debug.core.DebugException;
3942
import org.eclipse.debug.core.DebugPlugin;
4043
import org.eclipse.debug.core.ILaunch;
@@ -55,6 +58,20 @@
5558

5659
class TestExecutionUtil {
5760

61+
public static void waitForAutoBuild() {
62+
boolean wasInterrupted = false;
63+
do {
64+
try {
65+
Job.getJobManager().join(ResourcesPlugin.FAMILY_AUTO_BUILD, null);
66+
wasInterrupted = false;
67+
} catch (OperationCanceledException e) {
68+
e.printStackTrace();
69+
} catch (InterruptedException e) {
70+
wasInterrupted = true;
71+
}
72+
} while (wasInterrupted);
73+
}
74+
5875
public static ITestRunSession runTest(IJavaElement element) throws CoreException {
5976
IProject project = element.getResource().getProject();
6077
project.build(IncrementalProjectBuilder.FULL_BUILD, null);

ui/org.eclipse.pde.ui.tests/META-INF/MANIFEST.MF

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,4 +73,5 @@ Bundle-RequiredExecutionEnvironment: JavaSE-21
7373
Eclipse-BundleShape: dir
7474
Automatic-Module-Name: org.eclipse.pde.ui.tests
7575
Bundle-ActivationPolicy: lazy
76-
Export-Package: org.eclipse.pde.ui.tests.util
76+
Export-Package: org.eclipse.pde.ui.tests.runtime,
77+
org.eclipse.pde.ui.tests.util

0 commit comments

Comments
 (0)