diff options
author | Camilo Bernal | 2013-06-19 17:41:22 +0000 |
---|---|---|
committer | Roland Grunberg | 2013-07-04 17:31:40 +0000 |
commit | 7a6f715f4a2730a82c6eb404788721525a1a1b64 (patch) | |
tree | 95a4513349f5d87530e61161924dfe04efb96eb8 /perf/org.eclipse.linuxtools.perf.tests | |
parent | 9381e19145dc8b02e574769b7a5e4d8615ecd826 (diff) | |
download | org.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')
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"); |