RCPTT and "PartRenderingEngine's limbo" Shell [message #1858813] |
Mon, 24 April 2023 11:36 |
Stefan Winkler Messages: 307 Registered: July 2009 Location: Germany |
Senior Member |
|
|
Hi,
I am currently tracking down an issue that makes our RCPTT tests unstable in a way that we experience randomly failing test cases due to
"Execution has timed out after 659.58 seconds"
This happens in most cases in a context setup where we first make sure that the Project Explorer View is visible.
Then, we try to get the first (and only) project in that tree to right-click and select delete from the menu to
delete the project from an earlier test case. (I know there are other ways to clean the workspace in RCPTT, but we wanted to test it this way...)
I traced the RCPTT runtime and was able to see that it tries to execute the command (the format is my own EMF object toString()):
GetTree { parent=ControlHandler { kind=View text=Project Explorer resolved=Element {...} x=0 y=0 } }
which sends the following command to the Tesla Processor:
SelectCommand { id=0 data=SelectData { kind=Tree multiplicity=1 parent=Element {...} } }
this goes into SWTUiProcessor.preExecute(), and activateViewEditor.
This calls SWTUiPlayer.getShell(ViewReference:Project Explorer).
There, the shell retrieved is not the active workspace window, but the shell with the title "PartRenderingEngine's limbo".
(which seems odd, because I can see the Project Explorer in the screenshots in the test reports).
I don't know for sure, but maybe because of this wrong shell, what happens is that SWTUIProcessor.activateViewEditor goes into the if(!visible)
branch at https://github.com/xored/rcptt/blob/841461303fc27eb8840156793a3f0895460a39b6/runtime/tesla/org.eclipse.rcptt.tesla.swt/src/org/eclipse/rcptt/tesla/internal/ui/processors/SWTUIProcessor.java#L1567
and tries to click() the view to make it visible, then try again. But that seems not to work, because we go into an endless loop:
Because the preExecute() returns false, we put the command into the localQueue again and re-execute it.
But the result is the same, we again end up in the if(!visible) branch as before and return false again, and so on.
This continues until the timeout cancels the cycle and fails the test case.
So, what goes wrong here? Should RCPTT maybe handle the "PartRenderingEngine's limbo" Shell in a special way?
And where should I open a bug? On github? Or still in the Eclipse Bugzilla?
Thanks for any hints!
Best,
Stefan
|
|
|
Powered by
FUDForum. Page generated in 0.04893 seconds