// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. 'use strict'; base.require('test_utils'); base.require('model'); base.require('selection'); base.require('tracks.thread_track'); base.require('tracks.counter_track'); /** * @fileoverview Helper functions for use in analysis tests. */ base.exportTo('tracing.analysis.test', function() { var newSliceNamed = test_utils.newSliceNamed; var newSliceCategory = test_utils.newSliceCategory; function createReferenceData(withCategory) { var model = new tracing.Model(); var p1 = model.getOrCreateProcess(1); var t1 = p1.getOrCreateThread(1); if (withCategory) t1.pushSlice(newSliceCategory('foo', 'b', 0, 0.002)); else t1.pushSlice(newSliceNamed('b', 0, 0.002)); t1.pushSlice(newSliceNamed('b', 0, 0.002)); t1.pushSlice(newSliceNamed('c', 0, 0.002)); t1.pushSlice(newSliceNamed('c', .01, 0.003)); t1.pushSlice(newSliceNamed('c', .01, 0.001)); t1.pushSlice(newSliceNamed('c', .02, 0.004)); t1.pushSlice(newSliceNamed('d', 0, 0.002)); t1.pushSlice(newSliceNamed('d', .01, 0.003)); t1.pushSlice(newSliceNamed('d', .01, 0.001)); t1.pushSlice(newSliceNamed('d', .02, 0.004)); t1.pushSlice(newSliceNamed('e', 0, 0.002)); t1.pushSlice(newSliceNamed('e', .01, 0.003)); t1.pushSlice(newSliceNamed('e', .01, 0.001)); t1.pushSlice(newSliceNamed('e', .02, 0.004)); t1.pushSlice(newSliceNamed('f', 0, 0.002)); t1.pushSlice(newSliceNamed('Slice with a really, really long name.', 0, 0.005)); t1.slices.push(new tracing.model.Slice('category', 'D', 0, 1.15, {src_file: 'Arg D src_file', src_func: 'Arg D src_func'}, .5)); t1.slices.push(new tracing.model.Slice('cat', 'E', 0, 1, {src_file: 'Arg E src_file', src_func: 'Arg E src_func'}, .4)); t1.slices.push(new tracing.model.Slice('cat', 'F', 0, 1, {src_file: '0', src_func: 'false'}, .4)); var ctr1 = p1.getOrCreateCounter('foo', 'ctr1'); ctr1.seriesNames.push('bytesallocated', 'bytesfree'); ctr1.seriesColors.push(0, 1); ctr1.timestamps.push(0, 10, 20); ctr1.samples.push(0, 25, 10, 15, 20, 5); var ctr2 = p1.getOrCreateCounter('foo', 'ctr2'); ctr2.seriesNames.push('bytesallocated', 'bytesfree'); ctr2.seriesColors.push(0, 1); ctr2.timestamps.push(0, 10, 20); ctr2.samples.push(0, 25, 10, 15, 20, 5); var t1track = new tracing.tracks.ThreadTrack(); t1track.thread = t1; var ctr1track = new tracing.tracks.CounterTrack(); ctr1track.counter = ctr1; var ctr2track = new tracing.tracks.CounterTrack(); ctr2track.counter = ctr2; t1track.selectByTitle = function(title, selection) { t1track.addAllObjectsMatchingFilterToSelection( new tracing.TitleFilter(title), selection); } return {model: model, t1track: t1track, ctr1track: ctr1track, ctr2track: ctr2track}; } return { createReferenceData: createReferenceData }; });