tmf: Fix some tests not working in different time zones
Also print the timezone at the start of test to help troubleshoot
if it happens on a server.
Reviewed-on: https://git.eclipse.org/r/66579
This is a combination of 2 commits because the first one introduced
a regression and the second fixed it.
---Second commit---
tmf: Fix TestRefreshTextTrace failure because of bad time zone reset
Commit 6941941dae56 (https://git.eclipse.org/r/#/c/66579/)
changed tests to set explicitly a time zone but it doesn't
reset it properly. Because of this, TestRefreshTextTrace had
mismatching time stamps.
This can reproduced by running FilterViewerTest first then
running TestRefreshTextTrace. The easiest way is to modify
SWTBotStressTests to have this:
s.addTest(new JUnit4TestAdapter(FilterViewerTest.class));
s.addTest(new JUnit4TestAdapter(TestRefreshTextTrace.class));
To fix it, we reset the time zone to the time zone id, not the label.
The safest way to do this is to use what we decided to use in the
default preference map.
Change-Id: I35afe305ac6c81c1ccbb5c01b4031aaa2074e420
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/66723
Reviewed-on: https://git.eclipse.org/r/68881
Reviewed-by: Hudson CI
Reviewed-by: Bernd Hufmann <bernd.hufmann@ericsson.com>
Tested-by: Bernd Hufmann <bernd.hufmann@ericsson.com>
(cherry picked from commit f6612036445d8f438413ac6456a1d9b9abf25fee)
Reviewed-on: https://git.eclipse.org/r/68905
diff --git a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/timestamp/TmfTimePreferences.java b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/timestamp/TmfTimePreferences.java
index 4904546..719d823 100644
--- a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/timestamp/TmfTimePreferences.java
+++ b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/timestamp/TmfTimePreferences.java
@@ -133,6 +133,7 @@
prefToMap(prefs, prefsMap, ITmfTimePreferencesConstants.SSEC_DELIMITER, SSEC_DELIMITER_DEFAULT);
prefToMap(prefs, prefsMap, ITmfTimePreferencesConstants.DATIME, DATIME_DEFAULT);
prefToMap(prefs, prefsMap, ITmfTimePreferencesConstants.DATE_DELIMITER, DATE_DELIMITER_DEFAULT);
+ prefToMap(prefs, prefsMap, ITmfTimePreferencesConstants.TIME_ZONE, TIME_ZONE_DEFAULT);
return prefsMap;
}
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/shared/org/eclipse/tracecompass/tmf/ui/swtbot/tests/shared/ConditionHelpers.java b/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/shared/org/eclipse/tracecompass/tmf/ui/swtbot/tests/shared/ConditionHelpers.java
index ba6a89f..990f15d 100644
--- a/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/shared/org/eclipse/tracecompass/tmf/ui/swtbot/tests/shared/ConditionHelpers.java
+++ b/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/shared/org/eclipse/tracecompass/tmf/ui/swtbot/tests/shared/ConditionHelpers.java
@@ -414,6 +414,7 @@
private static class EventsTableSelectionCondition extends DefaultCondition {
private long fSelectionTime;
private SWTWorkbenchBot fBot;
+ private long fCurValue;
private EventsTableSelectionCondition(SWTWorkbenchBot bot, long selectionTime) {
fBot = bot;
@@ -426,12 +427,13 @@
if (eventsTableSelection.isEmpty()) {
return false;
}
- return ((ITmfEvent) eventsTableSelection.getFirstElement()).getTimestamp().getValue() == fSelectionTime;
+ fCurValue = ((ITmfEvent) eventsTableSelection.getFirstElement()).getTimestamp().getValue();
+ return fCurValue == fSelectionTime;
}
@Override
public String getFailureMessage() {
- return "The selection in the table was not an event with timestamp " + fSelectionTime;
+ return "The selection in the table was not an event with timestamp " + fSelectionTime + ". Actual is " + fCurValue;
}
private StructuredSelection getEventsTableSelection() {
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/shared/org/eclipse/tracecompass/tmf/ui/swtbot/tests/shared/SWTBotUtils.java b/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/shared/org/eclipse/tracecompass/tmf/ui/swtbot/tests/shared/SWTBotUtils.java
index e161a65..0c2cbcd 100644
--- a/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/shared/org/eclipse/tracecompass/tmf/ui/swtbot/tests/shared/SWTBotUtils.java
+++ b/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/shared/org/eclipse/tracecompass/tmf/ui/swtbot/tests/shared/SWTBotUtils.java
@@ -17,6 +17,7 @@
import static org.junit.Assert.fail;
import java.util.List;
+import java.util.TimeZone;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
@@ -308,6 +309,8 @@
}
}
+ System.out.println("Time zone: " + TimeZone.getDefault().getDisplayName());
+
fPrintedEnvironment = true;
}
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ui/swtbot/tests/viewers/events/FilterViewerTest.java b/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ui/swtbot/tests/viewers/events/FilterViewerTest.java
index b54dd73..70c9f71 100644
--- a/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ui/swtbot/tests/viewers/events/FilterViewerTest.java
+++ b/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ui/swtbot/tests/viewers/events/FilterViewerTest.java
@@ -20,6 +20,8 @@
import org.apache.log4j.ConsoleAppender;
import org.apache.log4j.Logger;
import org.apache.log4j.SimpleLayout;
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.core.runtime.preferences.InstanceScope;
import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
import org.eclipse.swtbot.swt.finder.SWTBot;
@@ -30,7 +32,11 @@
import org.eclipse.swtbot.swt.finder.widgets.SWTBotText;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.eclipse.tracecompass.internal.tmf.core.Activator;
import org.eclipse.tracecompass.tmf.core.io.BufferedRandomAccessFile;
+import org.eclipse.tracecompass.tmf.core.timestamp.ITmfTimePreferencesConstants;
+import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimePreferences;
+import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimestampFormat;
import org.eclipse.tracecompass.tmf.ui.swtbot.tests.shared.ConditionHelpers;
import org.eclipse.tracecompass.tmf.ui.swtbot.tests.shared.SWTBotUtils;
import org.eclipse.tracecompass.tmf.ui.views.filter.FilterView;
@@ -83,6 +89,10 @@
*/
@BeforeClass
public static void init() throws IOException {
+ IEclipsePreferences defaultPreferences = InstanceScope.INSTANCE.getNode(Activator.PLUGIN_ID);
+ defaultPreferences.put(ITmfTimePreferencesConstants.TIME_ZONE, "GMT-05:00");
+ TmfTimestampFormat.updateDefaultFormats();
+
SWTBotUtils.initialize();
Thread.currentThread().setName("SWTBot Thread"); // for the debugger
/* set up for swtbot */
@@ -128,6 +138,10 @@
SWTBotUtils.deleteProject(PROJECT_NAME, fBot);
fLogger.removeAllAppenders();
SWTBotUtils.closeViewById(FilterView.ID, fBot);
+
+ IEclipsePreferences defaultPreferences = InstanceScope.INSTANCE.getNode(Activator.PLUGIN_ID);
+ defaultPreferences.put(ITmfTimePreferencesConstants.TIME_ZONE, TmfTimePreferences.getDefaultPreferenceMap().get(ITmfTimePreferencesConstants.TIME_ZONE));
+ TmfTimestampFormat.updateDefaultFormats();
}
/**
@@ -251,6 +265,7 @@
String ret = applyFilter(fBot, filterName);
assertEquals("26/100", ret);
+// filterNodeBot.contextMenu().menu("Delete").click();
}
/**
@@ -301,6 +316,7 @@
viewBot.toolbarButton("Save filters").click();
String ret = applyFilter(fBot, filterName);
+// filterNodeBot.contextMenu().menu("Delete").click();
assertEquals("50/100", ret);
}
diff --git a/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ui/swtbot/tests/viewers/events/TestTraceOffsetting.java b/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ui/swtbot/tests/viewers/events/TestTraceOffsetting.java
index 57f26de..fe86406 100644
--- a/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ui/swtbot/tests/viewers/events/TestTraceOffsetting.java
+++ b/tmf/org.eclipse.tracecompass.tmf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ui/swtbot/tests/viewers/events/TestTraceOffsetting.java
@@ -24,6 +24,8 @@
import org.apache.log4j.ConsoleAppender;
import org.apache.log4j.Logger;
import org.apache.log4j.SimpleLayout;
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.core.runtime.preferences.InstanceScope;
import org.eclipse.jface.bindings.keys.KeyStroke;
import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEditor;
@@ -33,7 +35,11 @@
import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotTable;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.eclipse.tracecompass.internal.tmf.core.Activator;
import org.eclipse.tracecompass.tmf.core.io.BufferedRandomAccessFile;
+import org.eclipse.tracecompass.tmf.core.timestamp.ITmfTimePreferencesConstants;
+import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimePreferences;
+import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimestampFormat;
import org.eclipse.tracecompass.tmf.ui.swtbot.tests.shared.ConditionHelpers;
import org.eclipse.tracecompass.tmf.ui.swtbot.tests.shared.SWTBotUtils;
import org.junit.After;
@@ -84,6 +90,10 @@
fLogger.addAppender(new ConsoleAppender(new SimpleLayout()));
fBot = new SWTWorkbenchBot();
+ IEclipsePreferences defaultPreferences = InstanceScope.INSTANCE.getNode(Activator.PLUGIN_ID);
+ defaultPreferences.put(ITmfTimePreferencesConstants.TIME_ZONE, "GMT-05:00");
+ TmfTimestampFormat.updateDefaultFormats();
+
SWTBotUtils.closeView("welcome", fBot);
SWTBotUtils.switchToTracingPerspective();
@@ -106,6 +116,10 @@
public void cleanup() {
fLocation.delete();
fLogger.removeAllAppenders();
+
+ IEclipsePreferences defaultPreferences = InstanceScope.INSTANCE.getNode(Activator.PLUGIN_ID);
+ defaultPreferences.put(ITmfTimePreferencesConstants.TIME_ZONE, TmfTimePreferences.getDefaultPreferenceMap().get(ITmfTimePreferencesConstants.TIME_ZONE));
+ TmfTimestampFormat.updateDefaultFormats();
}
/**