Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / third_party / trace-viewer / src / tracing / importer / trace_event_importer_perf_test.js
index 85ddafa..e97afde 100644 (file)
@@ -4,10 +4,10 @@
 
 'use strict';
 
-base.require('tracing.test_utils');
-base.require('tracing.importer.trace_event_importer');
+tvcm.require('tracing.test_utils');
+tvcm.require('tracing.importer.trace_event_importer');
 
-base.unittest.perfTestSuite('tracing.importer.trace_event_importer_perf', function() { // @suppress longLineCheck
+tvcm.unittest.testSuite('tracing.importer.trace_event_importer_perf_test', function() { // @suppress longLineCheck
   var eventStrings = {};
 
   function getSynchronous(url) {
@@ -18,30 +18,41 @@ base.unittest.perfTestSuite('tracing.importer.trace_event_importer_perf', functi
   }
 
   function getEvents(url) {
-    if (!(url in eventStrings))
-      throw new Error('Missing events for given URL: ' + url);
+    if (url in eventStrings)
+      return eventStrings[url];
+    eventStrings[url] = getSynchronous(url);
     return eventStrings[url];
   }
 
-  setupOnce(function() {
-    var urls = ['/test_data/simple_trace.json', '/test_data/lthi_cats.json'];
-    for (var i = 0; i < urls.length; ++i)
-      eventStrings[urls[i]] = getSynchronous(urls[i]);
-  });
+  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_data/simple_trace.json', '/test_data/lthi_cats.json'].forEach(
+          function warmup(url) {
+            getEvents(url);
+          });
+    };
+    timedPerfTest(name, testFn, options);
+  }
 
-  [1, 10, 100].forEach(function(val) {
-    timedPerfTest('simple_trace', function() {
+  var n110100 = [1, 10, 100];
+  n110100.forEach(function(val) {
+    timedPerfTestWithEvents('simple_trace_' + val, function() {
       var events = getEvents('/test_data/simple_trace.json');
       var m = new tracing.TraceModel();
       m.importTraces([events], false, false);
     }, {iterations: val});
   });
 
-  [1, 10].forEach(function(val) {
-    timedPerfTest('lthi_cats', function() {
-      var events = getEvents('/test_data/lthi_cats.json');
-      var m = new tracing.TraceModel();
-      m.importTraces([events], false, false);
-    }, {iterations: val});
-  });
+  timedPerfTestWithEvents('lthi_cats_1', function() {
+    var events = getEvents('/test_data/lthi_cats.json');
+    var m = new tracing.TraceModel();
+    m.importTraces([events], false, false);
+  }, {iterations: 1});
 });