From 973f89f2865a55c5c6944d7a79ae23d077e6a4d3 Mon Sep 17 00:00:00 2001 From: Matthew Khouzam Date: Fri, 4 Dec 2015 18:01:44 -0500 Subject: [PATCH] analysis: test SystemCallLatencyAnalysis This test opens a trace, then opens the system call view to ensure that the table is properly populated. Change-Id: Id38c61ab64703cbe0333d00f1980073f0f339bda Signed-off-by: Matthew Khouzam Reviewed-on: https://git.eclipse.org/r/62042 Reviewed-by: Hudson CI Tested-by: Bernd Hufmann Reviewed-by: Bernd Hufmann --- .../META-INF/MANIFEST.MF | 4 ++- .../SystemCallLatencyTableAnalysisTest.java | 36 +++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.ui.swtbot.tests/META-INF/MANIFEST.MF b/analysis/org.eclipse.tracecompass.analysis.os.linux.ui.swtbot.tests/META-INF/MANIFEST.MF index 3c0ee7643a..a36039cb4c 100644 --- a/analysis/org.eclipse.tracecompass.analysis.os.linux.ui.swtbot.tests/META-INF/MANIFEST.MF +++ b/analysis/org.eclipse.tracecompass.analysis.os.linux.ui.swtbot.tests/META-INF/MANIFEST.MF @@ -15,6 +15,7 @@ Require-Bundle: org.apache.log4j, org.eclipse.tracecompass.tmf.core.tests, org.eclipse.tracecompass.tmf.ctf.core, org.eclipse.tracecompass.tmf.ctf.core.tests, + org.eclipse.tracecompass.analysis.timing.core, org.eclipse.tracecompass.ctf.core.tests, org.eclipse.tracecompass.tmf.ui, org.eclipse.tracecompass.tmf.ui.swtbot.tests, @@ -27,5 +28,6 @@ Require-Bundle: org.apache.log4j, org.eclipse.tracecompass.analysis.os.linux.ui, org.eclipse.tracecompass.analysis.timing.ui, org.eclipse.tracecompass.analysis.os.linux.core, - org.eclipse.tracecompass.segmentstore.core + org.eclipse.tracecompass.segmentstore.core, + org.eclipse.tracecompass.lttng2.kernel.core Import-Package: org.eclipse.tracecompass.testtraces.ctf diff --git a/analysis/org.eclipse.tracecompass.analysis.os.linux.ui.swtbot.tests/src/org/eclipse/tracecompass/analysis/os/linux/ui/swtbot/tests/latency/SystemCallLatencyTableAnalysisTest.java b/analysis/org.eclipse.tracecompass.analysis.os.linux.ui.swtbot.tests/src/org/eclipse/tracecompass/analysis/os/linux/ui/swtbot/tests/latency/SystemCallLatencyTableAnalysisTest.java index d2990e5996..2ebc595fb4 100644 --- a/analysis/org.eclipse.tracecompass.analysis.os.linux.ui.swtbot.tests/src/org/eclipse/tracecompass/analysis/os/linux/ui/swtbot/tests/latency/SystemCallLatencyTableAnalysisTest.java +++ b/analysis/org.eclipse.tracecompass.analysis.os.linux.ui.swtbot.tests/src/org/eclipse/tracecompass/analysis/os/linux/ui/swtbot/tests/latency/SystemCallLatencyTableAnalysisTest.java @@ -16,6 +16,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.fail; +import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -24,6 +25,7 @@ import java.util.Random; import org.apache.log4j.ConsoleAppender; import org.apache.log4j.Logger; import org.apache.log4j.SimpleLayout; +import org.eclipse.core.runtime.FileLocator; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot; import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView; @@ -37,6 +39,7 @@ import org.eclipse.tracecompass.analysis.os.linux.core.latency.SystemCall; import org.eclipse.tracecompass.analysis.os.linux.core.latency.SystemCall.InitialInfo; import org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.AbstractSegmentStoreTableViewer; import org.eclipse.tracecompass.internal.analysis.os.linux.ui.views.latency.SystemCallLatencyView; +import org.eclipse.tracecompass.testtraces.ctf.CtfTestTrace; import org.eclipse.tracecompass.tmf.ui.swtbot.tests.shared.ConditionHelpers; import org.eclipse.tracecompass.tmf.ui.swtbot.tests.shared.SWTBotUtils; import org.eclipse.ui.IViewPart; @@ -57,6 +60,8 @@ import org.junit.runner.RunWith; @RunWith(SWTBotJunit4ClassRunner.class) public class SystemCallLatencyTableAnalysisTest { + private static final String TRACE_TYPE = "org.eclipse.linuxtools.lttng2.kernel.tracetype"; + private static final String PROJECT_NAME = "test"; private static final String VIEW_ID = SystemCallLatencyView.ID; private static final String TRACING_PERSPECTIVE_ID = "org.eclipse.linuxtools.tmf.ui.perspective"; @@ -276,4 +281,35 @@ public class SystemCallLatencyTableAnalysisTest { assertEquals("998001", tableBot.cell(0, 2)); } + /** + * Test with an actual trace, this is more of an integration test than a + * unit test. This test is a slow one too. If some analyses are not well + * configured, this test will also generates null pointer exceptions. These + * are will be logged. + * + * @throws IOException + * trace not found? + */ + @Test + public void testWithTrace() throws IOException { + String tracePath; + tracePath = FileLocator.toFileURL(CtfTestTrace.ARM_64_BIT_HEADER.getTraceURL()).getPath(); + SWTWorkbenchBot bot = new SWTWorkbenchBot(); + SWTBotView view = bot.viewById(VIEW_ID); + view.close(); + bot.waitUntil(ConditionHelpers.ViewIsClosed(view)); + SWTBotUtils.createProject(PROJECT_NAME); + SWTBotUtils.openTrace(PROJECT_NAME, tracePath, TRACE_TYPE); + SWTBotUtils.waitForJobs(); + createTable(); + SWTBotUtils.waitForJobs(); + SWTBotTable tableBot = new SWTBotTable(fTable.getTableViewer().getTable()); + assertEquals("24100", tableBot.cell(0, 2)); + tableBot.header("Duration").click(); + assertEquals("1000", tableBot.cell(0, 2)); + tableBot.header("Duration").click(); + assertEquals("5904091700", tableBot.cell(0, 2)); + bot.closeAllEditors(); + SWTBotUtils.deleteProject(PROJECT_NAME, bot); + } } -- 2.34.1