From: Bernd Hufmann Date: Fri, 27 Nov 2015 20:36:28 +0000 (-0500) Subject: ust: Add initial SwtBot test for memory usage view X-Git-Url: http://git.efficios.com/?a=commitdiff_plain;h=7b583932ff4448ea198eaf4ddfe33f900361f130;p=deliverable%2Ftracecompass.git ust: Add initial SwtBot test for memory usage view Change-Id: Ied9bb9b8539e3a15cc8facc6678f486c2e092558 Signed-off-by: Bernd Hufmann Reviewed-on: https://git.eclipse.org/r/61504 Reviewed-by: Hudson CI Reviewed-by: Marc-Andre Laperle Tested-by: Marc-Andre Laperle --- diff --git a/lttng/org.eclipse.tracecompass.lttng2.ust.ui.swtbot.tests/META-INF/MANIFEST.MF b/lttng/org.eclipse.tracecompass.lttng2.ust.ui.swtbot.tests/META-INF/MANIFEST.MF index 7c9f3a6014..e7565b853e 100644 --- a/lttng/org.eclipse.tracecompass.lttng2.ust.ui.swtbot.tests/META-INF/MANIFEST.MF +++ b/lttng/org.eclipse.tracecompass.lttng2.ust.ui.swtbot.tests/META-INF/MANIFEST.MF @@ -24,7 +24,8 @@ Require-Bundle: org.apache.log4j, org.eclipse.ui.views, org.junit, org.eclipse.tracecompass.lttng2.ust.core, - org.eclipse.tracecompass.lttng2.ust.ui + org.eclipse.tracecompass.lttng2.ust.ui, + org.swtchart Export-Package: org.eclipse.tracecompass.lttng2.ust.ui.swtbot.tests Import-Package: com.google.common.collect, - org.eclipse.tracecompass.testtraces.ctf;version="1.0.0" + org.eclipse.tracecompass.testtraces.ctf;version="1.1.1" diff --git a/lttng/org.eclipse.tracecompass.lttng2.ust.ui.swtbot.tests/src/org/eclipse/tracecompass/lttng2/ust/ui/swtbot/tests/AllTests.java b/lttng/org.eclipse.tracecompass.lttng2.ust.ui.swtbot.tests/src/org/eclipse/tracecompass/lttng2/ust/ui/swtbot/tests/AllTests.java index f7f36247df..f1d523a820 100644 --- a/lttng/org.eclipse.tracecompass.lttng2.ust.ui.swtbot.tests/src/org/eclipse/tracecompass/lttng2/ust/ui/swtbot/tests/AllTests.java +++ b/lttng/org.eclipse.tracecompass.lttng2.ust.ui.swtbot.tests/src/org/eclipse/tracecompass/lttng2/ust/ui/swtbot/tests/AllTests.java @@ -20,7 +20,8 @@ import org.junit.runners.Suite; */ @RunWith(Suite.class) @Suite.SuiteClasses({ - CallStackViewTest.class + CallStackViewTest.class, + MemoryUsageViewTest.class }) public class AllTests { diff --git a/lttng/org.eclipse.tracecompass.lttng2.ust.ui.swtbot.tests/src/org/eclipse/tracecompass/lttng2/ust/ui/swtbot/tests/MemoryUsageViewTest.java b/lttng/org.eclipse.tracecompass.lttng2.ust.ui.swtbot.tests/src/org/eclipse/tracecompass/lttng2/ust/ui/swtbot/tests/MemoryUsageViewTest.java new file mode 100644 index 0000000000..5a31373689 --- /dev/null +++ b/lttng/org.eclipse.tracecompass.lttng2.ust.ui.swtbot.tests/src/org/eclipse/tracecompass/lttng2/ust/ui/swtbot/tests/MemoryUsageViewTest.java @@ -0,0 +1,125 @@ +/******************************************************************************* + * Copyright (c) 2015 Ericsson + * + * All rights reserved. This program and the accompanying materials are + * made available under the terms of the Eclipse Public License v1.0 which + * accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + *******************************************************************************/ + +package org.eclipse.tracecompass.lttng2.ust.ui.swtbot.tests; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +import java.io.File; + +import org.apache.log4j.ConsoleAppender; +import org.apache.log4j.Logger; +import org.apache.log4j.SimpleLayout; +import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot; +import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView; +import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner; +import org.eclipse.swtbot.swt.finder.matchers.WidgetOfType; +import org.eclipse.swtbot.swt.finder.utils.SWTBotPreferences; +import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem; +import org.eclipse.tracecompass.internal.lttng2.ust.ui.views.memusage.MemoryUsageView; +import org.eclipse.tracecompass.testtraces.ctf.CtfTestTrace; +import org.eclipse.tracecompass.tmf.ctf.core.tests.shared.CtfTmfTestTraceUtils; +import org.eclipse.tracecompass.tmf.ui.swtbot.tests.shared.SWTBotUtils; +import org.hamcrest.Matcher; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.swtchart.Chart; +import org.swtchart.ILineSeries; +import org.swtchart.ISeries; +import org.swtchart.ISeriesSet; + +/** + * Test for the Memory Usage view in trace compass + */ +@RunWith(SWTBotJunit4ClassRunner.class) +public class MemoryUsageViewTest { + + private static final String UST_ID = "org.eclipse.linuxtools.lttng2.ust.tracetype"; + + private static final String PROJECT_NAME = "TestForMemory"; + + /** The Log4j logger instance. */ + private static final Logger fLogger = Logger.getRootLogger(); + private static SWTWorkbenchBot fBot; + + /** + * Initialization + */ + @BeforeClass + public static void init() { + SWTBotUtils.initialize(); + + Thread.currentThread().setName("SWTBot Thread"); // for the debugger + /* set up for swtbot */ + SWTBotPreferences.TIMEOUT = 20000; /* 20 second timeout */ + fLogger.addAppender(new ConsoleAppender(new SimpleLayout())); + fBot = new SWTWorkbenchBot(); + + SWTBotUtils.closeView("welcome", fBot); + + SWTBotUtils.switchToTracingPerspective(); + + /* finish waiting for eclipse to load */ + SWTBotUtils.waitForJobs(); + } + + /** + * Open a trace in an editor + */ + @Before + public void beforeTest() { + SWTBotUtils.createProject(PROJECT_NAME); + SWTBotTreeItem treeItem = SWTBotUtils.selectTracesFolder(fBot, PROJECT_NAME); + assertNotNull(treeItem); + final CtfTestTrace cygProfile = CtfTestTrace.MEMORY_ANALYSIS; + final File file = new File(CtfTmfTestTraceUtils.getTrace(cygProfile).getPath()); + SWTBotUtils.openTrace(PROJECT_NAME, file.getAbsolutePath(), UST_ID); + SWTBotUtils.openView(MemoryUsageView.ID); + SWTBotUtils.waitForJobs(); + } + + /** + * Close the editor + */ + @After + public void tearDown() { + fBot.closeAllEditors(); + SWTBotUtils.deleteProject(PROJECT_NAME, fBot); + } + + /** + * Test if Memory Usage is populated + */ + @Test + public void testOpenMemoryUsage() { + SWTBotView viewBot = fBot.viewById(MemoryUsageView.ID); + viewBot.setFocus(); + + // Do some basic validation + Matcher matcher = WidgetOfType.widgetOfType(Chart.class); + Chart chart = viewBot.bot().widget(matcher); + ISeriesSet seriesSet = chart.getSeriesSet(); + assertNotNull(seriesSet); + ISeries[] series = seriesSet.getSeries(); + assertNotNull(series); + + // Verify that the chart has 4 series + assertEquals(4, series.length); + // Verify that each series is a ILineSeries + for (int i = 0; i < series.length; i++) { + assertTrue(series[i] instanceof ILineSeries); + } + } + +} \ No newline at end of file diff --git a/lttng/org.eclipse.tracecompass.lttng2.ust.ui/META-INF/MANIFEST.MF b/lttng/org.eclipse.tracecompass.lttng2.ust.ui/META-INF/MANIFEST.MF index 6718452b12..852dcd5c13 100644 --- a/lttng/org.eclipse.tracecompass.lttng2.ust.ui/META-INF/MANIFEST.MF +++ b/lttng/org.eclipse.tracecompass.lttng2.ust.ui/META-INF/MANIFEST.MF @@ -17,5 +17,5 @@ Require-Bundle: org.eclipse.core.resources, org.eclipse.tracecompass.tmf.ui, org.eclipse.tracecompass.tmf.ctf.core Export-Package: org.eclipse.tracecompass.internal.lttng2.ust.ui;x-friends:="org.eclipse.tracecompass.lttng2.ust.ui.tests", - org.eclipse.tracecompass.internal.lttng2.ust.ui.views.memusage;x-friends:="org.eclipse.tracecompass.lttng2.ust.ui.tests", + org.eclipse.tracecompass.internal.lttng2.ust.ui.views.memusage;x-friends:="org.eclipse.tracecompass.lttng2.ust.ui.tests,org.eclipse.tracecompass.lttng2.ust.ui.swtbot.tests", org.eclipse.tracecompass.lttng2.ust.ui.analysis.callstack diff --git a/releng/org.eclipse.tracecompass.target/tracecompass-e4.5.target b/releng/org.eclipse.tracecompass.target/tracecompass-e4.5.target index c2931904fd..4ac234996b 100644 --- a/releng/org.eclipse.tracecompass.target/tracecompass-e4.5.target +++ b/releng/org.eclipse.tracecompass.target/tracecompass-e4.5.target @@ -1,5 +1,5 @@ - + @@ -49,7 +49,7 @@ - + diff --git a/releng/org.eclipse.tracecompass.target/tracecompass-eStaging.target b/releng/org.eclipse.tracecompass.target/tracecompass-eStaging.target index 15597f2ba4..e9a182e136 100644 --- a/releng/org.eclipse.tracecompass.target/tracecompass-eStaging.target +++ b/releng/org.eclipse.tracecompass.target/tracecompass-eStaging.target @@ -1,5 +1,5 @@ - + @@ -45,7 +45,7 @@ - +