1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/browser/metro/base/tests/mochiperf/browser_msgmgr_01.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,144 @@ 1.4 +/* Any copyright is dedicated to the Public Domain. 1.5 + http://creativecommons.org/publicdomain/zero/1.0/ */ 1.6 + 1.7 +"use strict"; 1.8 + 1.9 +function test() { 1.10 + runTests(); 1.11 +} 1.12 + 1.13 +var EchoServer = { 1.14 + _deferred: null, 1.15 + _stopwatch: null, 1.16 + _browser: null, 1.17 + 1.18 + timeAsyncMessage: function timeAsyncMessage(aJson) { 1.19 + if (this._stopwatch == null) { 1.20 + this._stopwatch = new StopWatch(false); 1.21 + } 1.22 + this._deferred = Promise.defer(); 1.23 + messageManager.addMessageListener("Test:EchoResponse", this); 1.24 + this._stopwatch.start(); 1.25 + this._browser.messageManager.sendAsyncMessage("Test:EchoRequest", aJson); 1.26 + return this._deferred.promise; 1.27 + }, 1.28 + 1.29 + receiveMessage: function receiveMessage(aMessage) { 1.30 + let json = aMessage.json; 1.31 + switch (aMessage.name) { 1.32 + case "Test:EchoResponse": 1.33 + let msec = this._stopwatch.stop(); 1.34 + messageManager.removeMessageListener("Test:EchoResponse", this); 1.35 + this._deferred.resolve(msec); 1.36 + break; 1.37 + } 1.38 + }, 1.39 +}; 1.40 + 1.41 + 1.42 +gTests.push({ 1.43 + desc: "msg manager 1", 1.44 + run: function run() { 1.45 + yield addTab("about:blank"); 1.46 + yield hideContextUI(); 1.47 + 1.48 + let browser = Browser.selectedTab.browser; 1.49 + EchoServer._browser = browser; 1.50 + 1.51 + browser.messageManager.loadFrameScript(chromeRoot + "msgmanagerecho.js", true); 1.52 + 1.53 + yield waitForMs(1000); 1.54 + 1.55 + let openDataSet = new Array(); 1.56 + 1.57 + for (let idx = 0; idx < 100; idx++) { 1.58 + let msec = yield EchoServer.timeAsyncMessage({}); 1.59 + openDataSet.push(msec); 1.60 + } 1.61 + 1.62 + PerfTest.declareTest("A4354ACB-34DE-4796-914F-FD01EF298B1D", 1.63 + "msg manager 01", "platform", "", 1.64 + "Measures the time it takes to send/recv 100 message manager messages with an empty payload. " + 1.65 + "Browser displays about:blank during the test."); 1.66 + let result = PerfTest.computeAverage(openDataSet, { stripOutliers: false }); 1.67 + PerfTest.declareNumericalResult(result, "msec"); 1.68 + } 1.69 +}); 1.70 + 1.71 +gTests.push({ 1.72 + desc: "msg manager 1", 1.73 + run: function run() { 1.74 + yield addTab("about:blank"); 1.75 + yield hideContextUI(); 1.76 + 1.77 + let browser = Browser.selectedTab.browser; 1.78 + EchoServer._browser = browser; 1.79 + 1.80 + browser.messageManager.loadFrameScript(chromeRoot + "msgmanagerecho.js", true); 1.81 + 1.82 + let ds = {}; 1.83 + 1.84 + for (let i = 0; i < 100; i++) { 1.85 + ds["i" + i] = { idx: i }; 1.86 + let table = ds["i" + i]; 1.87 + for (let j = 0; j < 100; j++) { 1.88 + table["j" + i] = { rnd: Math.random() }; 1.89 + } 1.90 + } 1.91 + 1.92 + yield waitForMs(1000); 1.93 + 1.94 + let openDataSet = new Array(); 1.95 + 1.96 + for (let idx = 0; idx < 100; idx++) { 1.97 + let msec = yield EchoServer.timeAsyncMessage(ds); 1.98 + openDataSet.push(msec); 1.99 + } 1.100 + 1.101 + PerfTest.declareTest("B4354ACB-34DE-4796-914F-FD01EF298B1D", 1.102 + "msg manager 02", "platform", "", 1.103 + "Measures the time it takes to send/recv 100 message manager messages with a heavy payload. " + 1.104 + "Browser displays about:blank during the test."); 1.105 + let result = PerfTest.computeAverage(openDataSet, { stripOutliers: false }); 1.106 + PerfTest.declareNumericalResult(result, "msec"); 1.107 + } 1.108 +}); 1.109 + 1.110 +gTests.push({ 1.111 + desc: "msg manager 3", 1.112 + run: function run() { 1.113 + yield addTab(chromeRoot + "res/ripples.html"); 1.114 + yield hideContextUI(); 1.115 + 1.116 + let browser = Browser.selectedTab.browser; 1.117 + EchoServer._browser = browser; 1.118 + 1.119 + browser.messageManager.loadFrameScript(chromeRoot + "msgmanagerecho.js", true); 1.120 + 1.121 + let ds = {}; 1.122 + 1.123 + for (let i = 0; i < 100; i++) { 1.124 + ds["i" + i] = { idx: i }; 1.125 + let table = ds["i" + i]; 1.126 + for (let j = 0; j < 100; j++) { 1.127 + table["j" + i] = { rnd: Math.random() }; 1.128 + } 1.129 + } 1.130 + 1.131 + yield waitForMs(1000); 1.132 + 1.133 + let openDataSet = new Array(); 1.134 + 1.135 + for (let idx = 0; idx < 100; idx++) { 1.136 + let msec = yield EchoServer.timeAsyncMessage(ds); 1.137 + openDataSet.push(msec); 1.138 + } 1.139 + 1.140 + PerfTest.declareTest("C4354ACB-34DE-4796-914F-FD01EF298B1D", 1.141 + "msg manager 03", "platform", "", 1.142 + "Measures the time it takes to send/recv 100 message manager messages with a heavy payload. " + 1.143 + "Browser displays ripples during the test."); 1.144 + let result = PerfTest.computeAverage(openDataSet, { stripOutliers: false }); 1.145 + PerfTest.declareNumericalResult(result, "msec"); 1.146 + } 1.147 +});