summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/catapult/tracing/tracing/extras/importer/trace_event_importer_perf_test.html
blob: b7a7c57b3ae3e094ae0366eb83569b37a3f1c8ab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<!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="/tracing/base/xhr.html">
<link rel="import" href="/tracing/core/test_utils.html">
<link rel="import" href="/tracing/extras/importer/trace_event_importer.html">
<link rel="import" href="/tracing/model/model.html">

<script>
'use strict';

tr.b.unittest.testSuite(function() {
  var eventStrings = {};

  // @const
  var TEST_NAMES = ['simple_trace', 'lthi_cats'];
  // @const
  var TEST_FILES_PATHS = ['/test_data/simple_trace.json',
                          '/test_data/lthi_cats.json.gz'];

  function getEvents(url) {
    if (url in eventStrings)
      return eventStrings[url];
    eventStrings[url] = tr.b.getSync(url);
    return eventStrings[url];
  }

  function timedPerfTestWithEvents(name, testFn, initialOptions) {
    if (initialOptions.setUp)
      throw new Error(
          'Per-test setUp not supported. Trivial to fix if needed.');

    var options = {};
    for (var k in initialOptions)
      options[k] = initialOptions[k];
    options.setUp = function() {
      TEST_FILES_PATHS.forEach(
          function warmup(url) {
            getEvents(url);
          });
    };
    timedPerfTest(name, testFn, options);
  }

  var n110100 = [1, 10, 100];
  n110100.forEach(function(val) {
    timedPerfTestWithEvents(TEST_NAMES[0] + '_' + val, function() {
      var events = getEvents(TEST_FILES_PATHS[0]);
      var m = tr.c.TestUtils.newModelWithEvents([events], {
        shiftWorldToZero: false,
        pruneContainers: false
      });
    }, {iterations: val});
  });

  timedPerfTestWithEvents(TEST_NAMES[1] + '_1', function() {
    var events = getEvents(TEST_FILES_PATHS[1]);
    var m = tr.c.TestUtils.newModelWithEvents([events], {
      shiftWorldToZero: false,
      pruneContainers: false
    });
  }, {iterations: 1});
});
</script>