3 Copyright (c) 2013 The Chromium Authors. All rights reserved.
4 Use of this source code is governed by a BSD-style license that can be
5 found in the LICENSE file.
8 <link rel="import" href="/tracing/test_utils.html">'
9 <link rel="import" href="/tracing/importer.html">
14 tvcm.unittest.testSuite(function() { // @suppress longLineCheck
15 var eventStrings = {};
18 var TEST_NAMES = ['simple_trace', 'lthi_cats'];
20 var TEST_FILES_PATHS = ['/test_data/simple_trace.json',
21 '/test_data/lthi_cats.json.gz'];
23 function getSynchronous(url) {
24 var req = new XMLHttpRequest();
25 req.open('GET', url, false);
26 // Without the mime type specified like this, the file's bytes are not
27 // retrieved correctly.
28 req.overrideMimeType('text/plain; charset=x-user-defined');
30 return req.responseText;
33 function getEvents(url) {
34 if (url in eventStrings)
35 return eventStrings[url];
36 eventStrings[url] = getSynchronous(url);
37 return eventStrings[url];
40 function timedPerfTestWithEvents(name, testFn, initialOptions) {
41 if (initialOptions.setUp)
43 'Per-test setUp not supported. Trivial to fix if needed.');
46 for (var k in initialOptions)
47 options[k] = initialOptions[k];
48 options.setUp = function() {
49 TEST_FILES_PATHS.forEach(
50 function warmup(url) {
54 timedPerfTest(name, testFn, options);
57 var n110100 = [1, 10, 100];
58 n110100.forEach(function(val) {
59 timedPerfTestWithEvents(TEST_NAMES[0] + '_' + val, function() {
60 var events = getEvents(TEST_FILES_PATHS[0]);
61 var m = new tracing.TraceModel();
62 m.importTraces([events], false, false);
63 }, {iterations: val});
66 timedPerfTestWithEvents(TEST_NAMES[1] + '_1', function() {
67 var events = getEvents(TEST_FILES_PATHS[1]);
68 var m = new tracing.TraceModel();
69 m.importTraces([events], false, false);