Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / trace-viewer / trace_viewer / tracing / importer / linux_perf / disk_parser_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/test_utils.html">
9 <link rel="import" href="/tracing/importer/linux_perf_importer.html">
10
11 <script>
12 'use strict';
13
14 tvcm.unittest.testSuite(function() { // @suppress longLineCheck
15   test('diskImport', function() {
16     var lines = [
17       // NB: spliced from different traces; mismatched timestamps don't matter
18       'AsyncTask #2-18830 [000] ...1 154578.668286: ext4_sync_file_enter: ' +
19           'dev 259,1 ino 81993 parent 81906 datasync 1',
20       'mmcqd/0-81    [000] d..2 154578.668390: block_rq_issue: ' +
21           '179,0 WS 0 () 3427120 + 16 [mmcqd/0]',
22       'mmcqd/0-81    [000] d..2 154578.669181: block_rq_complete: ' +
23           '179,0 WS () 3427120 + 16 [0]',
24       'mmcqd/0-81    [001] d..2 154578.670853: block_rq_issue: ' +
25           '179,0 FWS 0 () 18446744073709551615 + 0 [mmcqd/0]',
26       'mmcqd/0-81    [001] d..2 154578.670869: block_rq_complete: ' +
27           '179,0 FWS () 18446744073709551615 + 0 [0]',
28       'AsyncTask #2-18830 [001] ...1 154578.670901: ext4_sync_file_exit: ' +
29           'dev 259,1 ino 81993 ret 0',
30       'mmcqd/0-81    [001] d..2 154578.877038: block_rq_issue: ' +
31           '179,0 R 0 () 3255256 + 8 [mmcqd/0]',
32       'mmcqd/0-81    [001] d..2 154578.877110: block_rq_issue: ' +
33           '179,0 R 0 () 3255288 + 8 [mmcqd/0]',
34       'mmcqd/0-81    [000] d..2 154578.877345: block_rq_complete: ' +
35           '179,0 R () 3255256 + 8 [0]',
36       'mmcqd/0-81    [000] d..2 154578.877466: block_rq_complete: ' +
37           '179,0 R () 3255288 + 8 [0]'
38     ];
39     var m = new tracing.TraceModel(lines.join('\n'), false);
40     assertFalse(m.hasImportWarnings);
41
42     var blockThread = undefined;
43     var ext4Thread = undefined;
44     m.getAllThreads().forEach(function(t) {
45       switch (t.name) {
46         case 'block:mmcqd/0':
47           blockThread = t;
48           break;
49         case 'ext4:AsyncTask #2':
50           ext4Thread = t;
51           break;
52         default:
53           throw new unittest.TestError('Unexpected thread named ' + t.name);
54       }
55     });
56     assertNotUndefined(blockThread);
57     assertNotUndefined(ext4Thread);
58
59     assertEquals(4, blockThread.asyncSliceGroup.length);
60
61     var slice = blockThread.asyncSliceGroup.slices[0];
62     assertEquals('block', slice.category);
63     assertEquals('write sync', slice.title);
64     assertEquals('179,0', slice.args.device);
65     assertEquals(0, slice.args.error);
66     assertEquals(16, slice.args.numSectors);
67     assertEquals(3427120, slice.args.sector);
68
69     assertEquals(1, ext4Thread.asyncSliceGroup.length);
70
71     slice = ext4Thread.asyncSliceGroup.slices[0];
72     assertEquals('ext4', slice.category);
73     assertEquals('fdatasync', slice.title);
74     assertEquals('259,1', slice.args.device);
75     assertEquals(0, slice.args.error);
76     assertEquals(81993, slice.args.inode);
77   });
78 });
79 </script>
80