1010583560e0e6db74fe50b840bce46ba6537de63Jamie Gennis// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2010583560e0e6db74fe50b840bce46ba6537de63Jamie Gennis// Use of this source code is governed by a BSD-style license that can be 3010583560e0e6db74fe50b840bce46ba6537de63Jamie Gennis// found in the LICENSE file. 4010583560e0e6db74fe50b840bce46ba6537de63Jamie Gennis 566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis'use strict'; 666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 7010583560e0e6db74fe50b840bce46ba6537de63Jamie Gennis/** 8010583560e0e6db74fe50b840bce46ba6537de63Jamie Gennis * @fileoverview Helper functions for use in tracing tests. 9010583560e0e6db74fe50b840bce46ba6537de63Jamie Gennis */ 1066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis'use strict'; 1166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 1266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennisbase.require('tracing.trace_model.counter'); 1366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennisbase.require('tracing.trace_model.slice'); 1466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennisbase.require('tracing.trace_model.slice_group'); 15010583560e0e6db74fe50b840bce46ba6537de63Jamie Gennis 1666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennisbase.exportTo('tracing.test_utils', function() { 17010583560e0e6db74fe50b840bce46ba6537de63Jamie Gennis function newAsyncSlice(start, duration, startThread, endThread) { 18010583560e0e6db74fe50b840bce46ba6537de63Jamie Gennis return newAsyncSliceNamed('a', start, duration, startThread, endThread); 19010583560e0e6db74fe50b840bce46ba6537de63Jamie Gennis } 20010583560e0e6db74fe50b840bce46ba6537de63Jamie Gennis 21010583560e0e6db74fe50b840bce46ba6537de63Jamie Gennis function newAsyncSliceNamed(name, start, duration, startThread, endThread) { 2266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var s = new tracing.trace_model.AsyncSlice('', name, 0, start); 23010583560e0e6db74fe50b840bce46ba6537de63Jamie Gennis s.duration = duration; 24010583560e0e6db74fe50b840bce46ba6537de63Jamie Gennis s.startThread = startThread; 25010583560e0e6db74fe50b840bce46ba6537de63Jamie Gennis s.endThread = endThread; 2666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var subSlice = new tracing.trace_model.AsyncSlice('', name, 0, start); 27010583560e0e6db74fe50b840bce46ba6537de63Jamie Gennis subSlice.duration = duration; 28010583560e0e6db74fe50b840bce46ba6537de63Jamie Gennis subSlice.startThread = startThread; 29010583560e0e6db74fe50b840bce46ba6537de63Jamie Gennis subSlice.endThread = endThread; 30010583560e0e6db74fe50b840bce46ba6537de63Jamie Gennis s.subSlices = [subSlice]; 31010583560e0e6db74fe50b840bce46ba6537de63Jamie Gennis return s; 32010583560e0e6db74fe50b840bce46ba6537de63Jamie Gennis } 33010583560e0e6db74fe50b840bce46ba6537de63Jamie Gennis 3488448d9ae4dfff1805045790ef5f32495d62abccJeff Brown function newCounter(parent) { 3588448d9ae4dfff1805045790ef5f32495d62abccJeff Brown return newCounterNamed(parent, 'a'); 3688448d9ae4dfff1805045790ef5f32495d62abccJeff Brown } 3788448d9ae4dfff1805045790ef5f32495d62abccJeff Brown 3888448d9ae4dfff1805045790ef5f32495d62abccJeff Brown function newCounterNamed(parent, name) { 3966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var s = new tracing.trace_model.Counter(parent, name, null, name); 4088448d9ae4dfff1805045790ef5f32495d62abccJeff Brown return s; 4188448d9ae4dfff1805045790ef5f32495d62abccJeff Brown } 4288448d9ae4dfff1805045790ef5f32495d62abccJeff Brown 4388448d9ae4dfff1805045790ef5f32495d62abccJeff Brown function newCounterCategory(parent, category, name) { 4466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var s = new tracing.trace_model.Counter(parent, name, category, name); 4588448d9ae4dfff1805045790ef5f32495d62abccJeff Brown return s; 4688448d9ae4dfff1805045790ef5f32495d62abccJeff Brown } 4788448d9ae4dfff1805045790ef5f32495d62abccJeff Brown 482da489cd246702bee5938545b18a6f710ed214bcJamie Gennis function newSlice(start, duration) { 492da489cd246702bee5938545b18a6f710ed214bcJamie Gennis return newSliceNamed('a', start, duration); 502da489cd246702bee5938545b18a6f710ed214bcJamie Gennis } 512da489cd246702bee5938545b18a6f710ed214bcJamie Gennis 522da489cd246702bee5938545b18a6f710ed214bcJamie Gennis function newSliceNamed(name, start, duration) { 5366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var s = new tracing.trace_model.Slice('', name, 0, start, {}, duration); 542da489cd246702bee5938545b18a6f710ed214bcJamie Gennis return s; 552da489cd246702bee5938545b18a6f710ed214bcJamie Gennis } 562da489cd246702bee5938545b18a6f710ed214bcJamie Gennis 572da489cd246702bee5938545b18a6f710ed214bcJamie Gennis function newSliceCategory(category, name, start, duration) { 5866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var s = new tracing.trace_model.Slice( 5966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis category, name, 0, start, {}, duration); 602da489cd246702bee5938545b18a6f710ed214bcJamie Gennis return s; 61010583560e0e6db74fe50b840bce46ba6537de63Jamie Gennis } 62010583560e0e6db74fe50b840bce46ba6537de63Jamie Gennis 632da489cd246702bee5938545b18a6f710ed214bcJamie Gennis function findSliceNamed(slices, name) { 6466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis if (slices instanceof tracing.trace_model.SliceGroup) 6566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis slices = slices.slices; 662da489cd246702bee5938545b18a6f710ed214bcJamie Gennis for (var i = 0; i < slices.length; i++) 672da489cd246702bee5938545b18a6f710ed214bcJamie Gennis if (slices[i].title == name) 682da489cd246702bee5938545b18a6f710ed214bcJamie Gennis return slices[i]; 692da489cd246702bee5938545b18a6f710ed214bcJamie Gennis return undefined; 702da489cd246702bee5938545b18a6f710ed214bcJamie Gennis } 71010583560e0e6db74fe50b840bce46ba6537de63Jamie Gennis 72010583560e0e6db74fe50b840bce46ba6537de63Jamie Gennis return { 73010583560e0e6db74fe50b840bce46ba6537de63Jamie Gennis newAsyncSlice: newAsyncSlice, 74010583560e0e6db74fe50b840bce46ba6537de63Jamie Gennis newAsyncSliceNamed: newAsyncSliceNamed, 7588448d9ae4dfff1805045790ef5f32495d62abccJeff Brown newCounter: newCounter, 7688448d9ae4dfff1805045790ef5f32495d62abccJeff Brown newCounterNamed: newCounterNamed, 7788448d9ae4dfff1805045790ef5f32495d62abccJeff Brown newCounterCategory: newCounterCategory, 782da489cd246702bee5938545b18a6f710ed214bcJamie Gennis newSlice: newSlice, 792da489cd246702bee5938545b18a6f710ed214bcJamie Gennis newSliceNamed: newSliceNamed, 802da489cd246702bee5938545b18a6f710ed214bcJamie Gennis newSliceCategory: newSliceCategory, 812da489cd246702bee5938545b18a6f710ed214bcJamie Gennis findSliceNamed: findSliceNamed 82010583560e0e6db74fe50b840bce46ba6537de63Jamie Gennis }; 83010583560e0e6db74fe50b840bce46ba6537de63Jamie Gennis}); 84