Community
Participate
Working Groups
Unit tests are failing only when running on 4.16 platform in tests that require the cursor to be at a specific location. https://ci.eclipse.org/tracecompass/job/tracecompass-gerrit-short-ui-only/552/consoleFull I cannot reproduce locally. It is not yet determined if it is the setting or the getting that fails. Debug printouts: 4.15: display.getCursorLocation()=Point {639, 578} display.post(Event {type=5 TimeGraphControl {} time=-509598582 data=null x=505 y=594 width=0 height=0 detail=0}) display.getCursorLocation()=Point {505, 594} 4.16: display.getCursorLocation()=Point {0, 0} display.post(Event {type=5 TimeGraphControl {} time=-511086129 data=null x=505 y=594 width=0 height=0 detail=0}) display.getCursorLocation()=Point {0, 0} display.getCursorLocation()=Point {0, 0} display.setCursorLocation(505, 594) display.getCursorLocation()=Point {0, 0}
With the following code added to any test class, it fails when running on Eclipse's CI infrastructure. Our unit tests run on the Docker image found here: https://git.eclipse.org/r/plugins/gitiles/tracecompass/tracecompass-infra/+/master/docker/ Display display = Display.getDefault(); display.syncExec(() -> System.out.println("1: display.getCursorLocation()="+display.getCursorLocation())); display.syncExec(() -> {System.out.println("2: display.setCursorLocation(10, 10)");display.setCursorLocation(10, 10);}); display.syncExec(() -> System.out.println("3: display.getCursorLocation()="+display.getCursorLocation()));
Related to bug 562463? But this was regression in 4.11. Is this GTK only, or is this cross-platform issue?
I think it's GTK only. I cannot reproduce on local Windows 10 or Ubuntu 18.04 machine.
Good news! We were able to bisect and find that the regression occurred between these versions of the platform. The only thing changed between those runs of our test is the platform I-build in the target: https://download.eclipse.org/eclipse/updates/4.16-I-builds/I20200309-0810/ https://ci.eclipse.org/tracecompass/job/tracecompass-gerrit-short-ui-only/681/ : SUCCESS https://download.eclipse.org/eclipse/updates/4.16-I-builds/I20200316-1800/ https://ci.eclipse.org/tracecompass/job/tracecompass-gerrit-short-ui-only/680/ : FAILURE This maps to SWT versions: I20200309-1800 I20200314-1800 These are the only patches merged in between: 42cced9261 Bug 484682 - don't call forceResize on getClientAreaInPixels() ba57e916bd Bug 561047 - Require Gtk 3.20+ as minimum 593b5cd2a6 Bug 561047 - Require Gtk 3.20+ as minimum c5cd5196ce Bug 561047 - Require Gtk 3.20+ as minimum 0bd6474e4b Bug 561047 - Require Gtk 3.20+ as minimum ad9c67cd2b Bug 560203 - [GTK] Automatically cache JVM pointer for callbacks 12eef0b919 Bug 548430 - [Cocoa] NullPointerException in Image.internal_new_GC (4.12.0RC2) 15a2d87038 Bug 558015 - Radio button selection ignored in 4.12 version 6a930949a5 Replace tab by space character in doc Can this be fixed or reverted in time for 2020-06 RC2? Thanks!
Hmm. Our Docker image has this configuration: OS version=3.10.0-1062.12.1.el7.x86_64 GTK version=3.18.9 GTK theme=Ambiance That might have something to do with 'Require Gtk 3.20+ as minimum'. What does SWT do in that case?
Yup, we missed this warning in our logs: ***WARNING: GTK+ version too old (micro mismatch) ***WARNING: SWT requires GTK 3.20.0 ***WARNING: Detected: 3.18.9 Looking at those patches, it appears SWT just removed all workarounds for GTK+ < 3.20.0. So use at your own risk, things are no longer guaranteed to work. I think you will need to answer every GTK bug with "What's your GTK version? Also have you tried turning it off and on again?"... ;)
The issue is fixed after upgrading the CI infrastructure to use Ubuntu 18.04 (GTK 3.22.30). I'll let SWT make the call that this won't be fixed for older GTK versions.