• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!DOCTYPE HTML>
2<html>
3<!--
4Copyright (c) 2012 The Chromium Authors. All rights reserved.
5Use of this source code is governed by a BSD-style license that can be
6found in the LICENSE file.
7-->
8<head>
9<title>AsyncSliceGroup tests</title>
10<script src="/src/base.js"></script>
11</head>
12<body>
13  <script>
14    base.require('unittest');
15    base.require('test_utils');
16    base.require('model');
17  </script>
18  <script>
19    'use strict';
20
21  var Model = tracing.Model;
22  var Process = tracing.model.Process;
23  var Thread = tracing.model.Thread;
24  var AsyncSlice = tracing.model.AsyncSlice;
25  var AsyncSliceGroup = tracing.model.AsyncSliceGroup;
26  var newAsyncSlice = test_utils.newAsyncSlice;
27
28  function testAsyncSliceGroupBounds_Empty() {
29    var g = new AsyncSliceGroup();
30    g.updateBounds();
31    assertTrue(g.bounds.isEmpty);
32  }
33
34  function testAsyncSliceGroupBounds_Basic() {
35    var p1 = new Process(1);
36    var t1 = new Thread(p1, 1);
37    var g = new AsyncSliceGroup();
38    g.push(newAsyncSlice(0, 1, t1, t1));
39    g.push(newAsyncSlice(1, 1.5, t1, t1));
40    assertEquals(2, g.length);
41    g.updateBounds();
42    assertEquals(0, g.bounds.min);
43    assertEquals(2.5, g.bounds.max);
44  }
45
46  function testAsyncSlice_toJSON() {
47    var js = [
48      '{',
49      '  "category" : "",',
50      '  "title" : "a",',
51      '  "start" : 0,',
52      '  "colorId" : 0,',
53      '  "didNotFinish" : false,',
54      '  "duration" : 1,',
55      '  "startThread" : __T1_GUID__,',
56      '  "endThread" : __T1_GUID__,',
57      '  "subSlices" : [ {',
58      '        "category" : "",',
59      '        "title" : "a",',
60      '        "start" : 0,',
61      '        "colorId" : 0,',
62      '        "didNotFinish" : false,',
63      '        "duration" : 1,',
64      '        "startThread" : __T1_GUID__,',
65      '        "endThread" : __T1_GUID__',
66      '      } ]',
67      '}'].join('\n');
68
69    var p1 = new Process(1);
70    var t1 = new Thread(p1, 1);
71    var s = newAsyncSlice(0, 1, t1, t1);
72
73    // Replace __T1_GUID__ with t1's actual GUID
74    js = js.replace(/__T1_GUID__/g, t1.guid);
75
76    // Modify whitespace of "js" so that string compare with another
77    // JSON.stringified version can succeed.
78    js = JSON.stringify(JSON.parse(js));
79
80
81    assertEquals(js, JSON.stringify(s));
82  }
83
84</script>
85</body>
86</html>
87