Upstream version 9.37.197.0
[platform/framework/web/crosswalk.git] / src / third_party / trace-viewer / trace_viewer / 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(thread, sampleName, lastFrameName, start) {
58     var f = new tracing.trace_model.StackFrame(undefined, tvcm.GUID.allocate(),
59                                                '', lastFrameName, 0);
60     thread.parent.model.addStackFrame(f);
61     var s = new tracing.trace_model.Sample(undefined, thread, sampleName,
62                                            0, f, 1);
63     return s;
64   }
65
66   function newSliceCategory(category, name, start, duration) {
67     var s = new tracing.trace_model.Slice(
68         category, name, 0, start, {}, duration);
69     return s;
70   }
71
72   function findSliceNamed(slices, name) {
73     if (slices instanceof tracing.trace_model.SliceGroup)
74       slices = slices.slices;
75     for (var i = 0; i < slices.length; i++)
76       if (slices[i].title == name)
77         return slices[i];
78       return undefined;
79   }
80
81   return {
82     newAsyncSlice: newAsyncSlice,
83     newAsyncSliceNamed: newAsyncSliceNamed,
84     newCounter: newCounter,
85     newCounterNamed: newCounterNamed,
86     newCounterCategory: newCounterCategory,
87     newSlice: newSlice,
88     newSliceNamed: newSliceNamed,
89     newSampleNamed: newSampleNamed,
90     newSliceCategory: newSliceCategory,
91     findSliceNamed: findSliceNamed
92   };
93 });