Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / third_party / trace-viewer / src / tracing / test_utils.js
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 'use strict';
6
7 /**
8  * @fileoverview Helper functions for use in tracing tests.
9  */
10 'use strict';
11
12 tvcm.require('tracing.trace_model.counter');
13 tvcm.require('tracing.trace_model.slice');
14 tvcm.require('tracing.trace_model.slice_group');
15
16 tvcm.exportTo('tracing.test_utils', function() {
17   function newAsyncSlice(start, duration, startThread, endThread) {
18     return newAsyncSliceNamed('a', start, duration, startThread, endThread);
19   }
20
21   function newAsyncSliceNamed(name, start, duration, startThread, endThread) {
22     var s = new tracing.trace_model.AsyncSlice('', name, 0, start);
23     s.duration = duration;
24     s.startThread = startThread;
25     s.endThread = endThread;
26     var subSlice = new tracing.trace_model.AsyncSlice('', name, 0, start);
27     subSlice.duration = duration;
28     subSlice.startThread = startThread;
29     subSlice.endThread = endThread;
30     s.subSlices = [subSlice];
31     return s;
32   }
33
34   function newCounter(parent) {
35     return newCounterNamed(parent, 'a');
36   }
37
38   function newCounterNamed(parent, name) {
39     var s = new tracing.trace_model.Counter(parent, name, null, name);
40     return s;
41   }
42
43   function newCounterCategory(parent, category, name) {
44     var s = new tracing.trace_model.Counter(parent, name, category, name);
45     return s;
46   }
47
48   function newSlice(start, duration) {
49     return newSliceNamed('a', start, duration);
50   }
51
52   function newSliceNamed(name, start, duration) {
53     var s = new tracing.trace_model.Slice('', name, 0, start, {}, duration);
54     return s;
55   }
56
57   function newSampleNamed(name, start) {
58     var s = new tracing.trace_model.Sample('', name, 0, start, {});
59     return s;
60   }
61
62   function newSliceCategory(category, name, start, duration) {
63     var s = new tracing.trace_model.Slice(
64         category, name, 0, start, {}, duration);
65     return s;
66   }
67
68   function findSliceNamed(slices, name) {
69     if (slices instanceof tracing.trace_model.SliceGroup)
70       slices = slices.slices;
71     for (var i = 0; i < slices.length; i++)
72       if (slices[i].title == name)
73         return slices[i];
74       return undefined;
75   }
76
77   return {
78     newAsyncSlice: newAsyncSlice,
79     newAsyncSliceNamed: newAsyncSliceNamed,
80     newCounter: newCounter,
81     newCounterNamed: newCounterNamed,
82     newCounterCategory: newCounterCategory,
83     newSlice: newSlice,
84     newSliceNamed: newSliceNamed,
85     newSampleNamed: newSampleNamed,
86     newSliceCategory: newSliceCategory,
87     findSliceNamed: findSliceNamed
88   };
89 });