|
1 /* Any copyright is dedicated to the Public Domain. |
|
2 http://creativecommons.org/publicdomain/zero/1.0/ */ |
|
3 |
|
4 "use strict"; |
|
5 |
|
6 function test() { |
|
7 runTests(); |
|
8 } |
|
9 |
|
10 var EchoServer = { |
|
11 _deferred: null, |
|
12 _stopwatch: null, |
|
13 _browser: null, |
|
14 |
|
15 timeAsyncMessage: function timeAsyncMessage(aJson) { |
|
16 if (this._stopwatch == null) { |
|
17 this._stopwatch = new StopWatch(false); |
|
18 } |
|
19 this._deferred = Promise.defer(); |
|
20 messageManager.addMessageListener("Test:EchoResponse", this); |
|
21 this._stopwatch.start(); |
|
22 this._browser.messageManager.sendAsyncMessage("Test:EchoRequest", aJson); |
|
23 return this._deferred.promise; |
|
24 }, |
|
25 |
|
26 receiveMessage: function receiveMessage(aMessage) { |
|
27 let json = aMessage.json; |
|
28 switch (aMessage.name) { |
|
29 case "Test:EchoResponse": |
|
30 let msec = this._stopwatch.stop(); |
|
31 messageManager.removeMessageListener("Test:EchoResponse", this); |
|
32 this._deferred.resolve(msec); |
|
33 break; |
|
34 } |
|
35 }, |
|
36 }; |
|
37 |
|
38 |
|
39 gTests.push({ |
|
40 desc: "msg manager 1", |
|
41 run: function run() { |
|
42 yield addTab("about:blank"); |
|
43 yield hideContextUI(); |
|
44 |
|
45 let browser = Browser.selectedTab.browser; |
|
46 EchoServer._browser = browser; |
|
47 |
|
48 browser.messageManager.loadFrameScript(chromeRoot + "msgmanagerecho.js", true); |
|
49 |
|
50 yield waitForMs(1000); |
|
51 |
|
52 let openDataSet = new Array(); |
|
53 |
|
54 for (let idx = 0; idx < 100; idx++) { |
|
55 let msec = yield EchoServer.timeAsyncMessage({}); |
|
56 openDataSet.push(msec); |
|
57 } |
|
58 |
|
59 PerfTest.declareTest("A4354ACB-34DE-4796-914F-FD01EF298B1D", |
|
60 "msg manager 01", "platform", "", |
|
61 "Measures the time it takes to send/recv 100 message manager messages with an empty payload. " + |
|
62 "Browser displays about:blank during the test."); |
|
63 let result = PerfTest.computeAverage(openDataSet, { stripOutliers: false }); |
|
64 PerfTest.declareNumericalResult(result, "msec"); |
|
65 } |
|
66 }); |
|
67 |
|
68 gTests.push({ |
|
69 desc: "msg manager 1", |
|
70 run: function run() { |
|
71 yield addTab("about:blank"); |
|
72 yield hideContextUI(); |
|
73 |
|
74 let browser = Browser.selectedTab.browser; |
|
75 EchoServer._browser = browser; |
|
76 |
|
77 browser.messageManager.loadFrameScript(chromeRoot + "msgmanagerecho.js", true); |
|
78 |
|
79 let ds = {}; |
|
80 |
|
81 for (let i = 0; i < 100; i++) { |
|
82 ds["i" + i] = { idx: i }; |
|
83 let table = ds["i" + i]; |
|
84 for (let j = 0; j < 100; j++) { |
|
85 table["j" + i] = { rnd: Math.random() }; |
|
86 } |
|
87 } |
|
88 |
|
89 yield waitForMs(1000); |
|
90 |
|
91 let openDataSet = new Array(); |
|
92 |
|
93 for (let idx = 0; idx < 100; idx++) { |
|
94 let msec = yield EchoServer.timeAsyncMessage(ds); |
|
95 openDataSet.push(msec); |
|
96 } |
|
97 |
|
98 PerfTest.declareTest("B4354ACB-34DE-4796-914F-FD01EF298B1D", |
|
99 "msg manager 02", "platform", "", |
|
100 "Measures the time it takes to send/recv 100 message manager messages with a heavy payload. " + |
|
101 "Browser displays about:blank during the test."); |
|
102 let result = PerfTest.computeAverage(openDataSet, { stripOutliers: false }); |
|
103 PerfTest.declareNumericalResult(result, "msec"); |
|
104 } |
|
105 }); |
|
106 |
|
107 gTests.push({ |
|
108 desc: "msg manager 3", |
|
109 run: function run() { |
|
110 yield addTab(chromeRoot + "res/ripples.html"); |
|
111 yield hideContextUI(); |
|
112 |
|
113 let browser = Browser.selectedTab.browser; |
|
114 EchoServer._browser = browser; |
|
115 |
|
116 browser.messageManager.loadFrameScript(chromeRoot + "msgmanagerecho.js", true); |
|
117 |
|
118 let ds = {}; |
|
119 |
|
120 for (let i = 0; i < 100; i++) { |
|
121 ds["i" + i] = { idx: i }; |
|
122 let table = ds["i" + i]; |
|
123 for (let j = 0; j < 100; j++) { |
|
124 table["j" + i] = { rnd: Math.random() }; |
|
125 } |
|
126 } |
|
127 |
|
128 yield waitForMs(1000); |
|
129 |
|
130 let openDataSet = new Array(); |
|
131 |
|
132 for (let idx = 0; idx < 100; idx++) { |
|
133 let msec = yield EchoServer.timeAsyncMessage(ds); |
|
134 openDataSet.push(msec); |
|
135 } |
|
136 |
|
137 PerfTest.declareTest("C4354ACB-34DE-4796-914F-FD01EF298B1D", |
|
138 "msg manager 03", "platform", "", |
|
139 "Measures the time it takes to send/recv 100 message manager messages with a heavy payload. " + |
|
140 "Browser displays ripples during the test."); |
|
141 let result = PerfTest.computeAverage(openDataSet, { stripOutliers: false }); |
|
142 PerfTest.declareNumericalResult(result, "msec"); |
|
143 } |
|
144 }); |