Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Test] ProcessConsoleTests - No console complete notification received. #548

Closed
SarikaSinha opened this issue Apr 7, 2022 · 4 comments · Fixed by #563
Closed

[Test] ProcessConsoleTests - No console complete notification received. #548

SarikaSinha opened this issue Apr 7, 2022 · 4 comments · Fixed by #563

Comments

@SarikaSinha
Copy link
Member

SarikaSinha commented Apr 7, 2022

https://download.eclipse.org/eclipse/downloads/drops4/I20220407-0240/testresults/html/org.eclipse.debug.tests_ep424I-unit-win32-java11_win32.win32.x86_64_11.html

org.eclipse.debug.tests.console.ProcessConsoleTests
testProcessTerminationNotificationWithInputFile
No console complete notification received.
java.lang.AssertionError: No console complete notification received.at org.junit.Assert.fail(Assert.java:89)at org.junit.Assert.assertTrue(Assert.java:42)at org.eclipse.debug.tests.console.ProcessConsoleTests.processTerminationTest(ProcessConsoleTests.java:285)at org.eclipse.debug.tests.console.ProcessConsoleTests.testProcessTerminationNotificationWithInputFile(ProcessConsoleTests.java:250)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.base/java.lang.reflect.Method.invoke(Method.java:566)at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)at org.junit.runners.ParentRunner.run(ParentRunner.java:413)at org.junit.runners.Suite.runChild(Suite.java:128)at org.junit.runners.Suite.runChild(Suite.java:27)at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)at org.junit.runners.ParentRunner.run(ParentRunner.java:413)at org.junit.runner.JUnitCore.run(JUnitCore.java:137)at org.junit.runner.JUnitCore.run(JUnitCore.java:115)at org.junit.vintage.engine.execution.RunnerExecutor.execute(RunnerExecutor.java:42)at org.junit.vintage.engine.VintageTestEngine.executeAllChildren(VintageTestEngine.java:80)at org.junit.vintage.engine.VintageTestEngine.execute(VintageTestEngine.java:72)at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107)at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:53)at org.eclipse.test.EclipseTestRunner.runTests(EclipseTestRunner.java:226)at org.eclipse.test.EclipseTestRunner.run(EclipseTestRunner.java:202)at org.eclipse.test.UITestApplication.lambda$0(UITestApplication.java:103)at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:185)at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4053)at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3658)at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:644)at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:551)at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:156)at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)at org.eclipse.test.UITestApplication.run(UITestApplication.java:48)at org.eclipse.test.UITestApplication.start(UITestApplication.java:118)at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.base/java.lang.reflect.Method.invoke(Method.java:566)at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)at org.eclipse.equinox.launcher.Main.run(Main.java:1467)at org.eclipse.equinox.launcher.Main.main(Main.java:1440)at org.eclipse.core.launcher.Main.main(Main.java:44)
-- | -- | -- | --

@ghost
Copy link

ghost commented Apr 8, 2022

could not reproduce locally on windows. in principal it could be just a timeout - after 10s due to slow server

@laeubi laeubi transferred this issue from eclipse-platform/eclipse.platform.debug Jul 1, 2023
@fedejeanne
Copy link
Contributor

fedejeanne commented Jul 4, 2023

It failed again on Windows in this CI run of the PR #560

fedejeanne added a commit to fedejeanne/eclipse.platform that referenced this issue Jul 4, 2023
…atform#548

Use "waitWhile" instead of "TestUtil.waitForJobs". The reason for this
is that "waitForJobs" might be too fast and it might happen before some
relevant jobs are even scheduled. If that happens then the relevant jobs
never even reach the queue of the JobManager and the method
"waitForJobs" will immediately return. This might cause the test to
fail.

Also replace some hard-coded strings with the name of the current test
method (nitpicking).
fedejeanne added a commit to fedejeanne/eclipse.platform that referenced this issue Jul 4, 2023
…clipse-platform#548

Use "waitWhile" instead of "TestUtil.waitForJobs". The reason for this
is that "waitForJobs" might be too fast and it might happen before
DebugPlugin.fEventDispatchJob is even scheduled (the scheduling happens
in another thread). If that happens then the "fEventDispatchJob" never
even reaches the queue of the JobManager before "waitForJobs" is called
and the test
"ProcessConsoleTests.testProcessTerminationNotificationWithInputFile"
fails.

Also replace some hard-coded strings with the name of the current test
method (nitpicking).
fedejeanne added a commit to fedejeanne/eclipse.platform that referenced this issue Jul 4, 2023
…clipse-platform#548

Use "waitWhile" instead of "TestUtil.waitForJobs". The reason for this
is that "waitForJobs" might be too fast and it might happen before
DebugPlugin.fEventDispatchJob is even scheduled (the scheduling happens
in another thread). If that happens then the "fEventDispatchJob" never
even reaches the queue of the JobManager before "waitForJobs" is called
and the test
"ProcessConsoleTests.testProcessTerminationNotificationWithInputFile"
fails.

Also replace some hard-coded strings with the name of the current test
method (nitpicking).
@fedejeanne
Copy link
Contributor

The problem is in fact a bit trickier: it might be because "slow hardware" but the test runs actually pretty fast (in 0.187 s according to the logs). The problem has been documented and fixed in #563 .

Hope this helps :-)

@fedejeanne
Copy link
Contributor

Failed again in #560

HeikoKlare pushed a commit to fedejeanne/eclipse.platform that referenced this issue Jul 24, 2023
…clipse-platform#548

Use "waitWhile" instead of "TestUtil.waitForJobs". The reason for this
is that "waitForJobs" might be too fast and it might happen before
DebugPlugin.fEventDispatchJob is even scheduled (the scheduling happens
in another thread). If that happens then the "fEventDispatchJob" never
even reaches the queue of the JobManager before "waitForJobs" is called
and the test
"ProcessConsoleTests.testProcessTerminationNotificationWithInputFile"
fails.

Also replace some hard-coded strings with the name of the current test
method (nitpicking).
HeikoKlare pushed a commit that referenced this issue Jul 25, 2023


Use "waitWhile" instead of "TestUtil.waitForJobs". The reason for this
is that "waitForJobs" might be too fast and it might happen before
DebugPlugin.fEventDispatchJob is even scheduled (the scheduling happens
in another thread). If that happens then the "fEventDispatchJob" never
even reaches the queue of the JobManager before "waitForJobs" is called
and the test
"ProcessConsoleTests.testProcessTerminationNotificationWithInputFile"
fails.

Also replace some hard-coded strings with the name of the current test
method (nitpicking).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants