From b07022a98844ea4db2e400c932960ab17d59c1e4 Mon Sep 17 00:00:00 2001 From: Marc-Andre Laperle Date: Wed, 23 Apr 2014 14:06:25 -0400 Subject: [PATCH] lttng: Work around UI thread sleeping forever on Mac in tests bug: 415992 Change-Id: I43ff1961eb02c9978a9650d39fcbff9d018e9ccd Signed-off-by: Marc-Andre Laperle Reviewed-on: https://git.eclipse.org/r/25443 Tested-by: Hudson CI Reviewed-by: Bernd Hufmann --- .../control/model/component/TraceControlTestFacility.java | 6 ++++++ .../ui/tests/views/uml2sd/loader/Uml2SDTestFacility.java | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/org.eclipse.linuxtools.lttng2.ui.tests/src/org/eclipse/linuxtools/lttng2/ui/tests/control/model/component/TraceControlTestFacility.java b/org.eclipse.linuxtools.lttng2.ui.tests/src/org/eclipse/linuxtools/lttng2/ui/tests/control/model/component/TraceControlTestFacility.java index 8e5776e5fe..b96185a6c1 100644 --- a/org.eclipse.linuxtools.lttng2.ui.tests/src/org/eclipse/linuxtools/lttng2/ui/tests/control/model/component/TraceControlTestFacility.java +++ b/org.eclipse.linuxtools.lttng2.ui.tests/src/org/eclipse/linuxtools/lttng2/ui/tests/control/model/component/TraceControlTestFacility.java @@ -20,6 +20,7 @@ import org.eclipse.core.runtime.jobs.Job; import org.eclipse.linuxtools.internal.lttng2.ui.views.control.ControlView; import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.ITraceControlComponent; import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.TraceSessionComponent; +import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.IViewPart; import org.eclipse.ui.PartInitException; @@ -128,6 +129,11 @@ public class TraceControlTestFacility { long endTimeMillis = System.currentTimeMillis() + waitTimeMillis; while(System.currentTimeMillis() < endTimeMillis) { if (!display.readAndDispatch()) { + if ("cocoa".equals (SWT.getPlatform ())) { + // The display needs to be woken up because it's possible + // to get in a state where nothing will wake up the UI thread + display.asyncExec(null); + } display.sleep(); } display.update(); diff --git a/org.eclipse.linuxtools.tmf.ui.tests/src/org/eclipse/linuxtools/tmf/ui/tests/views/uml2sd/loader/Uml2SDTestFacility.java b/org.eclipse.linuxtools.tmf.ui.tests/src/org/eclipse/linuxtools/tmf/ui/tests/views/uml2sd/loader/Uml2SDTestFacility.java index df1dd0ecfc..153f97d07a 100644 --- a/org.eclipse.linuxtools.tmf.ui.tests/src/org/eclipse/linuxtools/tmf/ui/tests/views/uml2sd/loader/Uml2SDTestFacility.java +++ b/org.eclipse.linuxtools.tmf.ui.tests/src/org/eclipse/linuxtools/tmf/ui/tests/views/uml2sd/loader/Uml2SDTestFacility.java @@ -37,6 +37,7 @@ import org.eclipse.linuxtools.tmf.ui.views.uml2sd.dialogs.FilterCriteria; import org.eclipse.linuxtools.tmf.ui.views.uml2sd.dialogs.FilterListDialog; import org.eclipse.linuxtools.tmf.ui.views.uml2sd.load.LoadersManager; import org.eclipse.linuxtools.tmf.ui.views.uml2sd.loader.TmfUml2SDSyncLoader; +import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.IViewPart; import org.eclipse.ui.PartInitException; @@ -179,6 +180,11 @@ public class Uml2SDTestFacility { final long endTimeMillis = System.currentTimeMillis() + waitTimeMillis; while(System.currentTimeMillis() < endTimeMillis) { if (!display.readAndDispatch()) { + if ("cocoa".equals (SWT.getPlatform ())) { + // The display needs to be woken up because it's possible + // to get in a state where nothing will wake up the UI thread + display.asyncExec(null); + } display.sleep(); } display.update(); -- 2.34.1