Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / third_party / trace-viewer / trace_viewer / tracing / time_summary_side_panel_test.js
index 3729aac..8808737 100644 (file)
 
 tvcm.require('tracing.time_summary_side_panel');
 tvcm.require('tracing.trace_model');
+tvcm.require('tracing.test_utils');
 
 tvcm.unittest.testSuite('tracing.time_summary_side_panel_test', function() {
-  test('basic', function() {
+  var newSliceNamed = tracing.test_utils.newSliceNamed;
+
+  function createModel() {
     var m = new tracing.TraceModel();
     m.importTraces([], false, false, function() {
       var browserProcess = m.getOrCreateProcess(1);
       var browserMain = browserProcess.getOrCreateThread(2);
       browserMain.name = 'CrBrowserMain';
-      browserMain.sliceGroup.beginSlice('cat', 'Task', 0);
-      browserMain.sliceGroup.endSlice(10);
-      browserMain.sliceGroup.beginSlice('cat', 'Task', 20);
-      browserMain.sliceGroup.endSlice(30);
+      browserMain.sliceGroup.beginSlice('cat', 'Task', 0, undefined, 0);
+      browserMain.sliceGroup.endSlice(10, 9);
+      browserMain.sliceGroup.beginSlice('cat', 'Task', 20, undefined, 10);
+      browserMain.sliceGroup.endSlice(30, 20);
 
       var rendererProcess = m.getOrCreateProcess(4);
       var rendererMain = rendererProcess.getOrCreateThread(5);
       rendererMain.name = 'CrRendererMain';
-      rendererMain.sliceGroup.beginSlice('cat', 'Task', 0);
-      rendererMain.sliceGroup.endSlice(30);
-      rendererMain.sliceGroup.beginSlice('cat', 'Task', 40);
-      rendererMain.sliceGroup.endSlice(60);
+      rendererMain.sliceGroup.beginSlice('cat', 'Task', 0, undefined, 0);
+      rendererMain.sliceGroup.endSlice(30, 25);
+      rendererMain.sliceGroup.beginSlice('cat', 'Task', 40, undefined, 40);
+      rendererMain.sliceGroup.endSlice(60, 50);
+    });
+    return m;
+  }
+
+  test('group', function() {
+    var m = createModel();
+    var group = new tracing.ResultsForGroup(m, 'foo');
+    group.appendThreadSlices(m.bounds, m.processes[1].threads[2]);
+    assertEquals(20, group.wallTime);
+    assertEquals(19, group.cpuTime);
+  });
+
+  test('trim', function() {
+    var groupData = [
+      {
+        value: 2.854999999999997,
+        label: '156959'
+      },
+      {
+        value: 9.948999999999998,
+        label: '16131'
+      },
+      {
+        value: 42.314000000000725,
+        label: '51511'
+      },
+      {
+        value: 31.06900000000028,
+        label: 'AudioOutputDevice'
+      },
+      {
+        value: 1.418,
+        label: 'BrowserBlockingWorker2/50951'
+      },
+      {
+        value: 0.044,
+        label: 'BrowserBlockingWorker3/50695'
+      },
+      {
+        value: 18.52599999999993,
+        label: 'Chrome_ChildIOThread'
+      },
+      {
+        value: 2.888,
+        label: 'Chrome_FileThread'
+      },
+      {
+        value: 0.067,
+        label: 'Chrome_HistoryThread'
+      },
+      {
+        value: 25.421000000000046,
+        label: 'Chrome_IOThread'
+      },
+      {
+        value: 0.019,
+        label: 'Chrome_ProcessLauncherThread'
+      },
+      {
+        value: 643.087999999995,
+        label: 'Compositor'
+      },
+      {
+        value: 4.049999999999973,
+        label: 'CompositorRasterWorker1/22031'
+      },
+      {
+        value: 50.040000000000106,
+        label: 'CrBrowserMain'
+      },
+      {
+        value: 1256.5130000000042,
+        label: 'CrGpuMain'
+      },
+      {
+        value: 5502.19499999999,
+        label: 'CrRendererMain'
+      },
+      {
+        value: 15.552999999999862,
+        label: 'FFmpegDemuxer'
+      },
+      {
+        value: 63.706000000001524,
+        label: 'Media'
+      },
+      {
+        value: 2.7419999999999987,
+        label: 'PowerSaveBlocker'
+      },
+      {
+        value: 0.11500000000000005,
+        label: 'Watchdog'
+      }
+    ];
+
+    var groups = [];
+    var m = new tracing.TraceModel();
+    m.importTraces([], false, false, function() {
+      var start = 0;
+      groupData.forEach(function(groupData) {
+        var group = new tracing.ResultsForGroup(m, groupData.label);
+
+        var slice = newSliceNamed(groupData.label, start, groupData.value);
+        start += groupData.value;
+        group.allSlices.push(slice);
+        group.topLevelSlices.push(slice);
+
+        groups.push(group);
+      });
     });
 
+
+    function getValueFromGroup(d) { return d.wallTime; }
+
+    var otherGroup = new tracing.ResultsForGroup(m, 'Other');
+    var newGroups = tracing.trimPieChartData(
+        groups, otherGroup, getValueFromGroup);
+
+    // Visualize the data once its trimmed.
+    var chart = tracing.createPieChartFromResultGroups(
+        newGroups, 'Trimmed', getValueFromGroup);
+    this.addHTMLOutput(chart);
+    chart.setSize(chart.getMinSize());
+  });
+
+
+  test('basic', function() {
+    var m = createModel();
     assertTrue(tracing.TimeSummarySidePanel.supportsModel(m).supported);
 
     var panel = new tracing.TimeSummarySidePanel();
+    this.addHTMLOutput(panel);
     panel.model = m;
     panel.style.border = '1px solid black';
-    this.addHTMLOutput(panel);
   });
 });