Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCamilo Bernal2013-06-19 17:41:22 +0000
committerRoland Grunberg2013-07-04 17:31:40 +0000
commit7a6f715f4a2730a82c6eb404788721525a1a1b64 (patch)
tree95a4513349f5d87530e61161924dfe04efb96eb8 /perf/org.eclipse.linuxtools.perf.tests
parent9381e19145dc8b02e574769b7a5e4d8615ecd826 (diff)
downloadorg.eclipse.linuxtools-7a6f715f4a2730a82c6eb404788721525a1a1b64.tar.gz
org.eclipse.linuxtools-7a6f715f4a2730a82c6eb404788721525a1a1b64.tar.xz
org.eclipse.linuxtools-7a6f715f4a2730a82c6eb404788721525a1a1b64.zip
Perf:Add stat diff view toolbar actions to switch between compared data
* Add support to view old, new and diff stat data contents. * Introduce BaseDataManipulator to reuse existing functionality. - Refactor handlers to use this base class where useful. * Allow access to inspect/replace contents of stat-diff views. * Introduce global string data cache. * Store old/new data contents in global cache. * Add timestamp to stat diff view. * Add test cases. Change-Id: I78346fada37a2a7710a1b2a799023efbe1ffde01 Reviewed-on: https://git.eclipse.org/r/13926 Tested-by: Hudson CI Reviewed-by: Roland Grunberg <rgrunber@redhat.com> IP-Clean: Roland Grunberg <rgrunber@redhat.com> Tested-by: Roland Grunberg <rgrunber@redhat.com>
Diffstat (limited to 'perf/org.eclipse.linuxtools.perf.tests')
-rw-r--r--perf/org.eclipse.linuxtools.perf.tests/src/org/eclipse/linuxtools/internal/perf/tests/DataManipulatorTest.java23
-rw-r--r--perf/org.eclipse.linuxtools.perf.tests/src/org/eclipse/linuxtools/internal/perf/tests/StatsComparisonTest.java47
2 files changed, 69 insertions, 1 deletions
diff --git a/perf/org.eclipse.linuxtools.perf.tests/src/org/eclipse/linuxtools/internal/perf/tests/DataManipulatorTest.java b/perf/org.eclipse.linuxtools.perf.tests/src/org/eclipse/linuxtools/internal/perf/tests/DataManipulatorTest.java
index 0e3230f523..dfcd302541 100644
--- a/perf/org.eclipse.linuxtools.perf.tests/src/org/eclipse/linuxtools/internal/perf/tests/DataManipulatorTest.java
+++ b/perf/org.eclipse.linuxtools.perf.tests/src/org/eclipse/linuxtools/internal/perf/tests/DataManipulatorTest.java
@@ -19,9 +19,13 @@ import java.util.List;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
+import org.eclipse.linuxtools.internal.perf.PerfPlugin;
import org.eclipse.linuxtools.internal.perf.ReportComparisonData;
import org.eclipse.linuxtools.internal.perf.SourceDisassemblyData;
import org.eclipse.linuxtools.internal.perf.StatData;
+import org.eclipse.linuxtools.internal.perf.handlers.PerfStatDiffMenuAction;
+import org.eclipse.linuxtools.internal.perf.handlers.PerfStatDiffMenuAction.PerfCachedData;
+import org.eclipse.linuxtools.internal.perf.handlers.PerfStatDiffMenuAction.Type;
import org.junit.Test;
public class DataManipulatorTest {
@@ -93,6 +97,25 @@ public class DataManipulatorTest {
assertEquals(expected, diffData.getPerfData().trim());
}
+ @Test
+ public void testPerfDataFile() {
+ String dataTitle = "title";
+ String dataID = "id";
+ String data = "perf stat data stub file\n";
+
+ PerfStatDiffMenuAction action = new PerfStatDiffMenuAction(Type.PERF_DIFF, "0");
+ PerfCachedData dataFile = action.new PerfCachedData(dataID, dataTitle);
+
+ // put test data on cache
+ PerfPlugin.getDefault().cacheData("id", data);
+
+ assertEquals("title", dataFile.getTitle());
+ assertEquals(data, dataFile.getPerfData());
+
+ // remove test data from cache
+ PerfPlugin.getDefault().removeCachedData("id");
+ }
+
/**
* Used for testing SourceDisassemblyData
*/
diff --git a/perf/org.eclipse.linuxtools.perf.tests/src/org/eclipse/linuxtools/internal/perf/tests/StatsComparisonTest.java b/perf/org.eclipse.linuxtools.perf.tests/src/org/eclipse/linuxtools/internal/perf/tests/StatsComparisonTest.java
index 2834b229f0..0621f5665f 100644
--- a/perf/org.eclipse.linuxtools.perf.tests/src/org/eclipse/linuxtools/internal/perf/tests/StatsComparisonTest.java
+++ b/perf/org.eclipse.linuxtools.perf.tests/src/org/eclipse/linuxtools/internal/perf/tests/StatsComparisonTest.java
@@ -12,6 +12,8 @@ package org.eclipse.linuxtools.internal.perf.tests;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import java.io.BufferedReader;
@@ -21,6 +23,8 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
+import org.eclipse.linuxtools.internal.perf.BaseDataManipulator;
+import org.eclipse.linuxtools.internal.perf.PerfPlugin;
import org.eclipse.linuxtools.internal.perf.StatComparisonData;
import org.eclipse.linuxtools.internal.perf.model.PMStatEntry;
import org.junit.Before;
@@ -31,7 +35,7 @@ public class StatsComparisonTest {
PMStatEntry statEntry2;
PMStatEntry statEntry3;
PMStatEntry statEntry4;
- private static final String STAT_RES = "resources/stat-data/";
+ public static final String STAT_RES = "resources/stat-data/";
@Before
public void setUp() {
@@ -131,6 +135,47 @@ public class StatsComparisonTest {
}
@Test
+ public void testStatDataComparisonFieldGetters() {
+ File oldStatData = new File(STAT_RES + "perf_old.stat");
+ File newStatData = new File(STAT_RES + "perf_new.stat");
+ String dataTitle = "title";
+ StatComparisonData diffData = new StatComparisonData(dataTitle,
+ oldStatData, newStatData);
+
+ assertEquals(dataTitle, diffData.getTitle());
+ assertEquals("", diffData.getPerfData());
+ assertNotNull(diffData.getDataID());
+ assertEquals(oldStatData.getPath(), diffData.getOldDataPath());
+ assertEquals(newStatData.getPath(), diffData.getNewDataPath());
+ assertEquals(oldStatData.getPath() + diffData.getDataID(),diffData.getOldDataID());
+ assertEquals(newStatData.getPath() + diffData.getDataID(),diffData.getNewDataID());
+ }
+
+ @Test
+ public void testStatDataComparisonCaching() {
+ File oldStatData = new File(STAT_RES + "perf_old.stat");
+ File newStatData = new File(STAT_RES + "perf_new.stat");
+ StatComparisonData diffData = new StatComparisonData("title",
+ oldStatData, newStatData);
+ diffData.cacheData();
+
+ PerfPlugin plugin = PerfPlugin.getDefault();
+ BaseDataManipulator dataMan = new BaseDataManipulator();
+
+ // check data was cached
+ assertEquals(dataMan.fileToString(oldStatData),
+ plugin.getCachedData(diffData.getOldDataID()));
+ assertEquals(dataMan.fileToString(newStatData),
+ plugin.getCachedData(diffData.getNewDataID()));
+
+ diffData.clearCachedData();
+
+ // check cached data was cleared
+ assertNull(plugin.getCachedData(diffData.getOldDataID()));
+ assertNull(plugin.getCachedData(diffData.getNewDataID()));
+ }
+
+ @Test
public void testStatDataComparison() {
File oldStatData = new File(STAT_RES + "perf_old.stat");
File newStatData = new File(STAT_RES + "perf_new.stat");

Back to the top