Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / trace-viewer / trace_viewer / tracing / analysis / cpu_slice_view_test.html
1 <!DOCTYPE html>
2 <!--
3 Copyright (c) 2013 The Chromium Authors. All rights reserved.
4 Use of this source code is governed by a BSD-style license that can be
5 found in the LICENSE file.
6 -->
7
8 <link rel="import" href="/tracing/analysis/cpu_slice_view.html">
9 <link rel="import" href="/tracing/trace_model.html">
10 <link rel="import" href="/tracing/importer/linux_perf_importer.html">
11
12 <script>
13 'use strict';
14
15 tv.unittest.testSuite(function() {
16   function createBasicModel() {
17     var lines = [
18       'Android.launcher-584   [001] d..3 12622.506890: sched_switch: prev_comm=Android.launcher prev_pid=584 prev_prio=120 prev_state=R+ ==> next_comm=Binder_1 next_pid=217 next_prio=120', // @suppress longLineCheck
19       '       Binder_1-217   [001] d..3 12622.506918: sched_switch: prev_comm=Binder_1 prev_pid=217 prev_prio=120 prev_state=D ==> next_comm=Android.launcher next_pid=584 next_prio=120', // @suppress longLineCheck
20       'Android.launcher-584   [001] d..4 12622.506936: sched_wakeup: comm=Binder_1 pid=217 prio=120 success=1 target_cpu=001', // @suppress longLineCheck
21       'Android.launcher-584   [001] d..3 12622.506950: sched_switch: prev_comm=Android.launcher prev_pid=584 prev_prio=120 prev_state=R+ ==> next_comm=Binder_1 next_pid=217 next_prio=120', // @suppress longLineCheck
22       '       Binder_1-217   [001] ...1 12622.507057: tracing_mark_write: B|128|queueBuffer', // @suppress longLineCheck
23       '       Binder_1-217   [001] ...1 12622.507175: tracing_mark_write: E',
24       '       Binder_1-217   [001] d..3 12622.507253: sched_switch: prev_comm=Binder_1 prev_pid=217 prev_prio=120 prev_state=S ==> next_comm=Android.launcher next_pid=584 next_prio=120' // @suppress longLineCheck
25     ];
26
27     return new tracing.TraceModel(lines.join('\n'), false);
28   }
29
30   test('cpuSliceView_withCpuSliceOnExistingThread', function() {
31     var m = createBasicModel();
32
33     var cpu = m.kernel.cpus[1];
34     assertNotUndefined(cpu);
35     var cpuSlice = cpu.slices[0];
36     assertEquals('Binder_1', cpuSlice.title);
37
38     var thread = m.findAllThreadsNamed('Binder_1')[0];
39     assertNotUndefined(thread);
40     assertEquals(cpuSlice.threadThatWasRunning, thread);
41
42     var view = new tracing.analysis.CpuSliceView();
43     view.modelEvent = cpuSlice;
44     this.addHTMLOutput(view);
45
46     // Clicking the analysis link should focus the Binder1's timeslice.
47     var didSelectionChangeHappen = false;
48     view.addEventListener('requestSelectionChange', function(e) {
49       assertEquals(1, e.selection.length);
50       assertEquals(thread.timeSlices[0], e.selection[0]);
51       didSelectionChangeHappen = true;
52     });
53     view.querySelector('.analysis-link').click();
54     assertTrue(didSelectionChangeHappen);
55   });
56
57   test('cpuSliceViewWithCpuSliceOnMissingThread', function() {
58     var m = createBasicModel();
59
60     var cpu = m.kernel.cpus[1];
61     assertNotUndefined(cpu);
62     var cpuSlice = cpu.slices[1];
63     assertEquals('Android.launcher', cpuSlice.title);
64     assertUndefined(cpuSlice.thread);
65
66     var view = new tracing.analysis.CpuSliceView();
67     view.modelEvent = cpuSlice;
68     this.addHTMLOutput(view);
69   });
70
71 });
72 </script>