Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / trace-viewer / trace_viewer / tracing / importer / trace_event_importer_perf_test.html
1 <!DOCTYPE html>
2 <!--
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.
6 -->
7
8 <link rel="import" href="/tracing/test_utils.html">'
9 <link rel="import" href="/tracing/importer.html">
10
11 <script>
12 'use strict';
13
14 tvcm.unittest.testSuite(function() { // @suppress longLineCheck
15   var eventStrings = {};
16
17   // @const
18   var TEST_NAMES = ['simple_trace', 'lthi_cats'];
19   // @const
20   var TEST_FILES_PATHS = ['/test_data/simple_trace.json',
21                           '/test_data/lthi_cats.json.gz'];
22
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');
29     req.send(null);
30     return req.responseText;
31   }
32
33   function getEvents(url) {
34     if (url in eventStrings)
35       return eventStrings[url];
36     eventStrings[url] = getSynchronous(url);
37     return eventStrings[url];
38   }
39
40   function timedPerfTestWithEvents(name, testFn, initialOptions) {
41     if (initialOptions.setUp)
42       throw new Error(
43           'Per-test setUp not supported. Trivial to fix if needed.');
44
45     var options = {};
46     for (var k in initialOptions)
47       options[k] = initialOptions[k];
48     options.setUp = function() {
49       TEST_FILES_PATHS.forEach(
50           function warmup(url) {
51             getEvents(url);
52           });
53     };
54     timedPerfTest(name, testFn, options);
55   }
56
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});
64   });
65
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);
70   }, {iterations: 1});
71 });
72 </script>
73