| 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);
|
| + 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 = [
|
|
|