Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3072)

Unified Diff: chrome/browser/resources/tracing/timeline_model_test.html

Issue 8771001: Stop about:tracing from dropping child slices of didNotFinish slices. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/tracing/timeline_model_test.html
diff --git a/chrome/browser/resources/tracing/timeline_model_test.html b/chrome/browser/resources/tracing/timeline_model_test.html
index b6bb2c8b30151f7d6a0a60cb465ef930dab9ab01..f0a7a5aa22bc34dfe74d5513720240f503b09a36 100644
--- a/chrome/browser/resources/tracing/timeline_model_test.html
+++ b/chrome/browser/resources/tracing/timeline_model_test.html
@@ -99,6 +99,67 @@ function testAutoclosing() {
assertEquals((2 - 1) / 1000, slice.duration);
}
+function testAutoclosingLoneBegin() {
+ var events = [
+ // Slice that doesn't finish.
+ {name: 'a', args: {}, pid: 1, ts: 1, cat: 'foo', tid: 1, ph: 'B'}
+ ];
+ var m = new tracing.TimelineModel(events);
+ var p = m.processes[1];
+ var t = p.threads[1];
+ var subRow = t.subRows[0];
+ var slice = subRow[0];
+ assertEquals('a', slice.title);
James Hawkins 2011/12/01 17:12:49 expectX for all of these.
nduca 2011/12/01 17:30:33 Closure jsunit doesn't have expect. :'(
James Hawkins 2011/12/01 17:49:24 Hmm, expectEquals is used on line 29 of this file
+ assertTrue(slice.didNotFinish);
+ assertEquals(0, slice.start);
+ assertEquals(0, slice.duration);
+}
+
+function testAutoclosingWithSubTasks() {
+ var events = [
+ {name: 'a', args: {}, pid: 1, ts: 1, cat: 'foo', tid: 1, ph: 'B'},
+ {name: 'b1', args: {}, pid: 1, ts: 2, cat: 'foo', tid: 1, ph: 'B'},
+ {name: 'b1', args: {}, pid: 1, ts: 3, cat: 'foo', tid: 1, ph: 'E'},
+ {name: 'b2', args: {}, pid: 1, ts: 3, cat: 'foo', tid: 1, ph: 'B'}
+ ];
+ var m = new tracing.TimelineModel(events);
+ var p = m.processes[1];
+ var t = p.threads[1];
+ assertEquals(2, t.subRows.length);
+ assertEquals(1, t.subRows[0].length);
+ assertEquals(2, t.subRows[1].length);
+}
+
+function testAutoclosingWithEventsOutsideRange() {
+ var events = [
+ // Slice that begins before min and ends after max of the other threads.
+ {name: 'a', args: {}, pid: 1, ts: 0, cat: 'foo', tid: 1, ph: 'B'},
+ {name: 'a', args: {}, pid: 1, ts: 3, cat: 'foo', tid: 1, ph: 'B'},
+
+ // Slice that does finish to give an 'end time' to establish a basis
+ {name: 'b', args: {}, pid: 1, ts: 1, cat: 'foo', tid: 2, ph: 'B'},
+ {name: 'b', args: {}, pid: 1, ts: 2, cat: 'foo', tid: 2, ph: 'E'}
+ ];
+ var m = new tracing.TimelineModel(events);
+ var p = m.processes[1];
+ var t = p.threads[1];
+ var subRow = t.subRows[0];
+ assertEquals('a', subRow[0].title);
+ assertEquals(0, subRow[0].start);
+ assertEquals(0.003, subRow[0].duration);
+
+ var t = p.threads[2];
+ var subRow = t.subRows[0];
+ assertEquals('b', subRow[0].title);
+ assertEquals(0.001, subRow[0].start);
+ assertEquals(0.001, subRow[0].duration);
+
+ // 0.00345 instead of 0.003 because TimelineModel bloats the world range by
+ // 15%.
+ assertEquals(-0.00045, m.minTimestamp);
+ assertEquals(0.00345, m.maxTimestamp);
+
+}
function testNestedAutoclosing() {
var events = [

Powered by Google App Engine
This is Rietveld 408576698