blob: bb307a338ce64ebe2a8f60a90224c8a52cf777fb [file] [log] [blame]
Chris Craikb122baf2015-03-05 13:58:42 -08001<!DOCTYPE html>
2<!--
3Copyright (c) 2013 The Chromium Authors. All rights reserved.
4Use of this source code is governed by a BSD-style license that can be
5found in the LICENSE file.
6-->
7
8<link rel="import" href="/base/deep_utils.html">
9<link rel="import" href="/core/analysis/multi_event_details_table.html">
10<link rel="import" href="/core/test_utils.html">
11<link rel="import" href="/core/selection.html">
12<link rel="import" href="/core/trace_model/trace_model.html">
13
14<script>
15'use strict';
16
17tv.b.unittest.testSuite(function() {
18 var Model = tv.c.TraceModel;
19 var Thread = tv.c.trace_model.Thread;
20 var Selection = tv.c.Selection;
21 var newSliceEx = tv.c.test_utils.newSliceEx;
22
23 test('withCpuTime', function() {
24 var model = new Model();
25 var thread = model.getOrCreateProcess(1).getOrCreateThread(2);
26 var tsg = thread.sliceGroup;
27 tsg.pushSlice(newSliceEx({title: 'a', start: 0, end: 3,
28 cpuStart: 0, cpuEnd: 3}));
29 tsg.pushSlice(newSliceEx({title: 'a', start: 1, end: 2,
30 cpuStart: 1, cpuEnd: 1.75}));
31 tsg.pushSlice(newSliceEx({title: 'a', start: 4, end: 5,
32 cpuStart: 3, cpuEnd: 3.75}));
33 tsg.createSubSlices();
34
35 var threadTrack = {};
36 threadTrack.thread = thread;
37
38 var selection = new Selection(tsg.slices);
39
40 var viewEl = document.createElement('tv-c-a-multi-event-details-table');
41 viewEl.selection = selection;
42 this.addHTMLOutput(viewEl);
43 });
44
45 test('withoutCpuTime', function() {
46 var model = new Model();
47 var thread = model.getOrCreateProcess(1).getOrCreateThread(2);
48 var tsg = thread.sliceGroup;
49 tsg.pushSlice(newSliceEx({title: 'a', start: 0, end: 3}));
50 tsg.pushSlice(newSliceEx({title: 'a', start: 1, end: 2}));
51 tsg.pushSlice(newSliceEx({title: 'a', start: 4, end: 5}));
52 tsg.createSubSlices();
53
54 var threadTrack = {};
55 threadTrack.thread = thread;
56
57 var selection = new Selection(tsg.slices);
58
59 var viewEl = document.createElement('tv-c-a-multi-event-details-table');
60 viewEl.selection = selection;
61 this.addHTMLOutput(viewEl);
62 });
63
64
65 test('withFewerThanFourArgs', function() {
66 var model = new Model();
67 var thread = model.getOrCreateProcess(1).getOrCreateThread(2);
68 var tsg = thread.sliceGroup;
69 tsg.pushSlice(newSliceEx({title: 'a', start: 0, end: 3,
70 args: {value1: 3, value2: 'x', value3: 1}}));
71 tsg.pushSlice(newSliceEx({title: 'b', start: 1, end: 2,
72 args: {value1: 3.1, value2: 'y', value3: 2}}));
73 tsg.pushSlice(newSliceEx({title: 'b', start: 4, end: 5,
74 args: {value1: 3.2, value2: 'z', value3: 'x'}}));
75 tsg.createSubSlices();
76
77 var threadTrack = {};
78 threadTrack.thread = thread;
79
80 var selection = new Selection(tsg.slices);
81
82 var viewEl = document.createElement('tv-c-a-multi-event-details-table');
83 viewEl.selection = selection;
84 this.addHTMLOutput(viewEl);
85 });
86
87 test('withExtraArgs', function() {
88 var model = new Model();
89 var thread = model.getOrCreateProcess(1).getOrCreateThread(2);
90 var tsg = thread.sliceGroup;
91 tsg.pushSlice(newSliceEx({title: 'a', start: 0, end: 3,
92 args: {value1: 3, value2: 'x', value3: 1,
93 value4: 4, value5: 5, value6: 6}}));
94 tsg.pushSlice(newSliceEx({title: 'b', start: 1, end: 2,
95 args: {value1: 3.1, value2: 'y', value3: 2,
96 value4: 4, value5: 5, value6: 6}}));
97 tsg.pushSlice(newSliceEx({title: 'b', start: 4, end: 5,
98 args: {value1: 3.2, value2: 'z', value3: 'x',
99 value4: 4, value5: 'whoops', value6: 6}}));
100 tsg.createSubSlices();
101
102 var threadTrack = {};
103 threadTrack.thread = thread;
104
105 var selection = new Selection(tsg.slices);
106
107 var viewEl = document.createElement('tv-c-a-multi-event-details-table');
108 viewEl.selection = selection;
109 this.addHTMLOutput(viewEl);
110 });
111
112});
113</script>