blob: c71a2d4258d0281d4629c4af1b89d3d7bede59f2 [file] [log] [blame]
<!DOCTYPE html>
<!--
Copyright (c) 2013 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.
-->
<link rel="import" href="/perf_insights/results/results.html">
<link rel="import" href="/perf_insights/value/run_info.html">
<link rel="import" href="/perf_insights/value/value.html">
<link rel="import" href="/perf_insights/mappers/weather_report_map_function.html">
<link rel="import" href="/tracing/core/test_utils.html">
<link rel="import" href="/tracing/extras/rail/idle_interaction_record.html">
<script>
'use strict';
tr.b.unittest.testSuite(function() {
var test_utils = tr.c.TestUtils;
var ThreadSlice = tr.model.ThreadSlice;
test('basicModelTest', function() {
var m = test_utils.newModel(function(m) {
var p1 = m.getOrCreateProcess(1);
var t2 = p1.getOrCreateThread(2);
t2.sliceGroup.pushSlice(test_utils.newSliceEx({
name: 'some_slice',
start: 0, duration: 10
}));
});
var results = new pi.r.Results();
var runInfo = new pi.v.RunInfo('my_test.json');
pi.m.weatherReportMapFunction(results, runInfo, m);
assert.equal(results.allValues.length, 1);
assert.isTrue(results.allValues[0] instanceof pi.v.DictValue);
});
test('basicWrTest', function() {
var m = test_utils.newModel(function(m) {
var p1 = m.getOrCreateProcess(1);
var t2 = p1.getOrCreateThread(2);
var t2_s1 = t2.sliceGroup.pushSlice(test_utils.newSliceEx({
type: ThreadSlice,
name: 'some_slice',
start: 0, end: 10
}));
var t2_s2 = t2.sliceGroup.pushSlice(test_utils.newSliceEx({
type: ThreadSlice,
name: 'some_slice',
start: 20, end: 30
}));
var idleIr = new tr.e.rail.IdleInteractionRecord(m, 0, 10);
m.interactionRecords.push(idleIr);
idleIr.associatedEvents.push(t2_s2);
});
var wr = pi.m.getWeatherReportFromModel(m);
assert.isDefined(wr.sliceCosts);
assert.equal(wr.sliceCosts.length, 2);
});
});
</script>