From: Francois Chouinard Date: Fri, 12 Mar 2010 18:50:08 +0000 (+0000) Subject: Added missing test files + a few fixes X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=7f407eada93d841113c036c5a8f24b91afb5b7e2;p=deliverable%2Ftracecompass.git Added missing test files + a few fixes --- diff --git a/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/trace/TmfExperimentTest.java b/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/trace/TmfExperimentTest.java index 203fd90d06..0304bb85ce 100644 --- a/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/trace/TmfExperimentTest.java +++ b/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/trace/TmfExperimentTest.java @@ -118,17 +118,17 @@ public class TmfExperimentTest extends TestCase { context = fExperiment.seekEvent(new TmfTimestamp(1, SCALE, 0)); TmfEvent event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); - assertEquals("Event rank", 1, context.getRank()); + assertEquals("Event rank", 0, context.getRank()); context = fExperiment.seekEvent(new TmfTimestamp(1001, SCALE, 0)); event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 1001, event.getTimestamp().getValue()); - assertEquals("Event rank", 1001, context.getRank()); + assertEquals("Event rank", 1000, context.getRank()); context = fExperiment.seekEvent(new TmfTimestamp(4001, SCALE, 0)); event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 4001, event.getTimestamp().getValue()); - assertEquals("Event rank", 4001, context.getRank()); + assertEquals("Event rank", 4000, context.getRank()); } public void testSeekNotOnCacheBoundary() throws Exception { @@ -137,21 +137,21 @@ public class TmfExperimentTest extends TestCase { context = fExperiment.seekEvent(new TmfTimestamp(10, SCALE, 0)); TmfEvent event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 10, event.getTimestamp().getValue()); - assertEquals("Event rank", 10, context.getRank()); + assertEquals("Event rank", 9, context.getRank()); context = fExperiment.seekEvent(new TmfTimestamp(999, SCALE, 0)); event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 999, event.getTimestamp().getValue()); - assertEquals("Event rank", 999, context.getRank()); + assertEquals("Event rank", 998, context.getRank()); - context = fExperiment.seekEvent(new TmfTimestamp(1001, SCALE, 0)); + context = fExperiment.seekEvent(new TmfTimestamp(1000, SCALE, 0)); event = fExperiment.getNextEvent(context); - assertEquals("Event timestamp", 1001, event.getTimestamp().getValue()); - assertEquals("Event rank", 1001, context.getRank()); + assertEquals("Event timestamp", 1000, event.getTimestamp().getValue()); + assertEquals("Event rank", 999, context.getRank()); - context = fExperiment.seekEvent(new TmfTimestamp(4499, SCALE, 0)); + context = fExperiment.seekEvent(new TmfTimestamp(4500, SCALE, 0)); event = fExperiment.getNextEvent(context); - assertEquals("Event timestamp", 4499, event.getTimestamp().getValue()); + assertEquals("Event timestamp", 4500, event.getTimestamp().getValue()); assertEquals("Event rank", 4499, context.getRank()); } @@ -319,6 +319,8 @@ public class TmfExperimentTest extends TestCase { assertEquals("getRank", 10, fExperiment.getRank(new TmfTimestamp( 11, (byte) -3))); assertEquals("getRank", 100, fExperiment.getRank(new TmfTimestamp( 101, (byte) -3))); assertEquals("getRank", 1000, fExperiment.getRank(new TmfTimestamp(1001, (byte) -3))); + assertEquals("getRank", 2000, fExperiment.getRank(new TmfTimestamp(2001, (byte) -3))); + assertEquals("getRank", 2500, fExperiment.getRank(new TmfTimestamp(2501, (byte) -3))); } // ------------------------------------------------------------------------ @@ -330,6 +332,8 @@ public class TmfExperimentTest extends TestCase { assertTrue("getTimestamp", fExperiment.getTimestamp( 10).equals(new TmfTimestamp( 11, (byte) -3))); assertTrue("getTimestamp", fExperiment.getTimestamp( 100).equals(new TmfTimestamp( 101, (byte) -3))); assertTrue("getTimestamp", fExperiment.getTimestamp(1000).equals(new TmfTimestamp(1001, (byte) -3))); + assertTrue("getTimestamp", fExperiment.getTimestamp(2000).equals(new TmfTimestamp(2001, (byte) -3))); + assertTrue("getTimestamp", fExperiment.getTimestamp(2500).equals(new TmfTimestamp(2501, (byte) -3))); } } \ No newline at end of file diff --git a/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/trace/TmfMultiTraceExperimentTest.java b/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/trace/TmfMultiTraceExperimentTest.java index 1bb47fe6af..de3a2cf6b4 100644 --- a/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/trace/TmfMultiTraceExperimentTest.java +++ b/org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/trace/TmfMultiTraceExperimentTest.java @@ -123,17 +123,17 @@ public class TmfMultiTraceExperimentTest extends TestCase { context = fExperiment.seekEvent(new TmfTimestamp(1, SCALE, 0)); TmfEvent event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 1, event.getTimestamp().getValue()); - assertEquals("Event rank", 1, context.getRank()); + assertEquals("Event rank", 0, context.getRank()); context = fExperiment.seekEvent(new TmfTimestamp(1001, SCALE, 0)); event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 1001, event.getTimestamp().getValue()); - assertEquals("Event rank", 1001, context.getRank()); + assertEquals("Event rank", 1000, context.getRank()); context = fExperiment.seekEvent(new TmfTimestamp(4001, SCALE, 0)); event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 4001, event.getTimestamp().getValue()); - assertEquals("Event rank", 4001, context.getRank()); + assertEquals("Event rank", 4000, context.getRank()); } public void testSeekNotOnCacheBoundary() throws Exception { @@ -142,21 +142,21 @@ public class TmfMultiTraceExperimentTest extends TestCase { context = fExperiment.seekEvent(new TmfTimestamp(10, SCALE, 0)); TmfEvent event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 10, event.getTimestamp().getValue()); - assertEquals("Event rank", 10, context.getRank()); + assertEquals("Event rank", 9, context.getRank()); context = fExperiment.seekEvent(new TmfTimestamp(999, SCALE, 0)); event = fExperiment.getNextEvent(context); assertEquals("Event timestamp", 999, event.getTimestamp().getValue()); - assertEquals("Event rank", 999, context.getRank()); + assertEquals("Event rank", 998, context.getRank()); - context = fExperiment.seekEvent(new TmfTimestamp(1001, SCALE, 0)); + context = fExperiment.seekEvent(new TmfTimestamp(1000, SCALE, 0)); event = fExperiment.getNextEvent(context); - assertEquals("Event timestamp", 1001, event.getTimestamp().getValue()); - assertEquals("Event rank", 1001, context.getRank()); + assertEquals("Event timestamp", 1000, event.getTimestamp().getValue()); + assertEquals("Event rank", 999, context.getRank()); - context = fExperiment.seekEvent(new TmfTimestamp(4499, SCALE, 0)); + context = fExperiment.seekEvent(new TmfTimestamp(4500, SCALE, 0)); event = fExperiment.getNextEvent(context); - assertEquals("Event timestamp", 4499, event.getTimestamp().getValue()); + assertEquals("Event timestamp", 4500, event.getTimestamp().getValue()); assertEquals("Event rank", 4499, context.getRank()); } @@ -324,6 +324,8 @@ public class TmfMultiTraceExperimentTest extends TestCase { assertEquals("getRank", 10, fExperiment.getRank(new TmfTimestamp( 11, (byte) -3))); assertEquals("getRank", 100, fExperiment.getRank(new TmfTimestamp( 101, (byte) -3))); assertEquals("getRank", 1000, fExperiment.getRank(new TmfTimestamp(1001, (byte) -3))); + assertEquals("getRank", 2000, fExperiment.getRank(new TmfTimestamp(2001, (byte) -3))); + assertEquals("getRank", 2500, fExperiment.getRank(new TmfTimestamp(2501, (byte) -3))); } // ------------------------------------------------------------------------ @@ -335,6 +337,8 @@ public class TmfMultiTraceExperimentTest extends TestCase { assertTrue("getTimestamp", fExperiment.getTimestamp( 10).equals(new TmfTimestamp( 11, (byte) -3))); assertTrue("getTimestamp", fExperiment.getTimestamp( 100).equals(new TmfTimestamp( 101, (byte) -3))); assertTrue("getTimestamp", fExperiment.getTimestamp(1000).equals(new TmfTimestamp(1001, (byte) -3))); + assertTrue("getTimestamp", fExperiment.getTimestamp(2000).equals(new TmfTimestamp(2001, (byte) -3))); + assertTrue("getTimestamp", fExperiment.getTimestamp(2500).equals(new TmfTimestamp(2501, (byte) -3))); } } \ No newline at end of file diff --git a/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/TmfEventsView.java b/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/TmfEventsView.java index 3d38ad0422..e85a075444 100644 --- a/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/TmfEventsView.java +++ b/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/TmfEventsView.java @@ -275,27 +275,27 @@ public class TmfEventsView extends TmfView { }); } - @TmfSignalHandler - public void currentTimeUpdated(TmfTimeSynchSignal signal) { - if (signal.getSource() != fTable && fExperiment != null) { - final int index = (int) fExperiment.getRank(signal.getCurrentTime()); - // Perform the updates on the UI thread - fTable.getDisplay().asyncExec(new Runnable() { - public void run() { - fTable.setSelection(index); - // The timestamp might not correspond to an actual event - // and the selection will point to the next experiment event. - // But we would like to display both the event before and - // after the selected timestamp. - // This works fine by default except when the selected event - // is the top displayed event. The following ensures that we - // always see both events. - if ((index > 0) && (index == fTable.getTopIndex())) { - fTable.setTopIndex(index - 1); - } - } - }); - } - } +// @TmfSignalHandler +// public void currentTimeUpdated(TmfTimeSynchSignal signal) { +// if (signal.getSource() != fTable && fExperiment != null) { +// final int index = (int) fExperiment.getRank(signal.getCurrentTime()); +// // Perform the updates on the UI thread +// fTable.getDisplay().asyncExec(new Runnable() { +// public void run() { +// fTable.setSelection(index); +// // The timestamp might not correspond to an actual event +// // and the selection will point to the next experiment event. +// // But we would like to display both the event before and +// // after the selected timestamp. +// // This works fine by default except when the selected event +// // is the top displayed event. The following ensures that we +// // always see both events. +// if ((index > 0) && (index == fTable.getTopIndex())) { +// fTable.setTopIndex(index - 1); +// } +// } +// }); +// } +// } } \ No newline at end of file diff --git a/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/component/TmfDataProvider.java b/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/component/TmfDataProvider.java index ae68357fb6..59571e50a6 100644 --- a/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/component/TmfDataProvider.java +++ b/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/component/TmfDataProvider.java @@ -172,10 +172,15 @@ public abstract class TmfDataProvider extends TmfComponent im result.add(data); if (++nbRead % blockSize == 0) { pushData(request, result); +// data.setNull(); +// result.add(data); } // To avoid an unnecessary read passed the last data requested - if (nbRead < nbRequested) + if (nbRead < nbRequested) { data = getNext(context); +// while (data != null && data.isNull()) +// data = getNext(context); + } } pushData(request, result); request.done(); diff --git a/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/event/TmfData.java b/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/event/TmfData.java index b63d9bdeaf..5f467ee68a 100644 --- a/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/event/TmfData.java +++ b/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/event/TmfData.java @@ -22,4 +22,18 @@ package org.eclipse.linuxtools.tmf.event; */ public abstract class TmfData { +// private boolean isNull = false; +// +// public void setNull() { +// isNull = true; +// } +// +// public void resetNull() { +// isNull = false; +// } +// +// public boolean isNull() { +// return isNull; +// } + } diff --git a/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/experiment/TmfExperiment.java b/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/experiment/TmfExperiment.java index 432af9c7a5..bf702d190b 100644 --- a/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/experiment/TmfExperiment.java +++ b/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/experiment/TmfExperiment.java @@ -187,7 +187,7 @@ public class TmfExperiment extends TmfEventProvider imple */ public TmfTimestamp getTimestamp(int index) { TmfExperimentContext context = seekEvent(index); - TmfEvent event = parseEvent(context); + TmfEvent event = getNextEvent(context); return (event != null) ? event.getTimestamp() : null; } @@ -287,6 +287,7 @@ public class TmfExperiment extends TmfEventProvider imple } context.setLocation(new TmfExperimentLocation(newloc)); context.setRank(rank); + context.setLastTrace(-1); return context; } return null; @@ -328,9 +329,10 @@ public class TmfExperiment extends TmfEventProvider imple // And get the event TmfEvent event = parseEvent(context); while (event != null && event.getTimestamp().compareTo(timestamp, false) < 0) { - getNextEvent(context); - event = parseEvent(context); + event = getNextEvent(context); +// event = parseEvent(context); } + context.setLastTrace(-1); return context; } @@ -372,6 +374,15 @@ public class TmfExperiment extends TmfEventProvider imple public synchronized TmfEvent getNextEvent(TmfContext context) { if (context instanceof TmfExperimentContext) { TmfExperimentContext expContext = (TmfExperimentContext) context; + int lastTrace = expContext.getLastTrace(); + if (lastTrace != -1) { + TmfContext traceContext = expContext.getContexts()[lastTrace]; + expContext.getTraces()[lastTrace].getNextEvent(traceContext); + expContext.getEvents()[lastTrace] = expContext.getTraces()[lastTrace].parseEvent(traceContext); + TmfExperimentLocation expLocation = (TmfExperimentLocation) expContext.getLocation(); + expLocation.getLocation()[lastTrace] = traceContext.getLocation().clone(); + expContext.updateRank(1); + } int trace = -1; TmfTimestamp timestamp = TmfTimestamp.BigCrunch; for (int i = 0; i < expContext.getTraces().length; i++) { @@ -387,12 +398,14 @@ public class TmfExperiment extends TmfEventProvider imple } if (trace >= 0) { - TmfContext trcloc = expContext.getContexts()[trace]; - TmfEvent event = expContext.getTraces()[trace].getNextEvent(trcloc); - TmfExperimentLocation exploc = (TmfExperimentLocation) expContext.getLocation(); - exploc.getLocation()[trace] = trcloc.getLocation().clone(); - expContext.getEvents()[trace] = expContext.getTraces()[trace].parseEvent(trcloc); - expContext.updateRank(1); + expContext.setLastTrace(trace); +// TmfContext traceContext = expContext.getContexts()[trace]; + TmfEvent event = expContext.getEvents()[trace]; +// TmfEvent event = expContext.getTraces()[trace].getNextEvent(trcloc); +// TmfEvent event = expContext.getTraces()[trace].parseEvent(traceContext); +// TmfExperimentLocation exploc = (TmfExperimentLocation) expContext.getLocation(); +// exploc.getLocation()[trace] = trcloc.getLocation().clone(); +// expContext.getEvents()[trace] = expContext.getTraces()[trace].parseEvent(trcloc); return event; } } @@ -521,7 +534,7 @@ public class TmfExperiment extends TmfEventProvider imple TmfExperimentLocation location = (TmfExperimentLocation) context.getLocation(); // Get the first event - TmfEvent event = parseEvent(context); + TmfEvent event = getNextEvent(context); if (event != null) { startTime = new TmfTimestamp(event.getTimestamp()); } @@ -574,29 +587,30 @@ public class TmfExperiment extends TmfEventProvider imple broadcast(new TmfRangeSynchSignal(this, range, null)); } -// // ======================================================================== -// // Toubleshooting code -// // ======================================================================== -// -// private void dumpCheckpoints() { -// System.out.println("-----"); -// System.out.println("Checkpoints of " + fExperimentId); -// for (int i = 0; i < fCheckpoints.size(); i++) { -// System.out.println("Entry:" + i); -// TmfCheckpoint checkpoint = fCheckpoints.get(i); -//// long rank = 0; -// for (int j = 0; j < fTraces.length; j++) { -// ITmfTrace trace = fTraces[j]; -// TmfExperimentContext context = seekLocation(checkpoint.getLocation()); -// TmfContext[] traces = context.getContexts(); -//// rank += context.getRank(); -// TmfEvent event = fTraces[j].getNextEvent(new TmfContext(traces[j])); + // ======================================================================== + // Toubleshooting code + // ======================================================================== + + private void dumpCheckpoints() { + System.out.println("-----"); + System.out.println("Checkpoints of " + fExperimentId); + for (int i = 0; i < fCheckpoints.size(); i++) { + System.out.println("Entry:" + i); + TmfCheckpoint checkpoint = fCheckpoints.get(i); +// long rank = 0; + for (int j = 0; j < fTraces.length; j++) { + ITmfTrace trace = fTraces[j]; + TmfExperimentContext context = seekLocation(checkpoint.getLocation()); + TmfContext[] traces = context.getContexts(); +// rank += context.getRank(); + TmfEvent event = fTraces[j].getNextEvent(new TmfContext(traces[j])); // System.out.println(" [" + trace.getName() + "] rank: " + context.getRank() + ", timestamp: " + event.getTimestamp()); -// assert (checkpoint.getTimestamp().compareTo(event.getTimestamp(), false) == 0); -// } -//// System.out.println("Sum of ranks: " + rank + " (expected: " + i * fIndexPageSize + ")"); -// } -// } + System.out.println(" [" + trace.getName() + "] timestamp: " + event.getTimestamp()); + assert (checkpoint.getTimestamp().compareTo(event.getTimestamp(), false) == 0); + } +// System.out.println("Sum of ranks: " + rank + " (expected: " + i * fIndexPageSize + ")"); + } + } // ------------------------------------------------------------------------ // Signal handlers diff --git a/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/experiment/TmfExperimentContext.java b/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/experiment/TmfExperimentContext.java index 2f01d008c2..a0cb0271c3 100644 --- a/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/experiment/TmfExperimentContext.java +++ b/org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/experiment/TmfExperimentContext.java @@ -27,6 +27,7 @@ public class TmfExperimentContext extends TmfContext { private ITmfTrace[] fTraces = new ITmfTrace[0]; private TmfContext[] fContexts; private TmfEvent[] fEvents; + private int lastIndex; // ------------------------------------------------------------------------ // Constructors @@ -49,6 +50,7 @@ public class TmfExperimentContext extends TmfContext { setLocation(new TmfExperimentLocation(locations)); setRank(rank); + lastIndex = -1; } public TmfExperimentContext(ITmfTrace[] traces) { @@ -85,4 +87,12 @@ public class TmfExperimentContext extends TmfContext { return fEvents; } + public int getLastTrace() { + return lastIndex; + } + + public void setLastTrace(int newIndex) { + lastIndex = newIndex; + } + }