summaryrefslogtreecommitdiff
path: root/toolkit/components/perf/test_pm.xul
blob: 7dbf27b92470c04ca2fec3b4bfbec4a48ed6f672 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?xml version="1.0"?>
<!-- This Source Code Form is subject to the terms of the Mozilla Public
   - License, v. 2.0. If a copy of the MPL was not distributed with this
   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->

<window title="Performance measurement tests"
        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
        onload="test()">

  <script type="application/javascript"
          src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
  <script type="application/javascript"
          src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"/>

  <script type="application/javascript"><![CDATA[
function test()
{
  SimpleTest.waitForExplicitFinish();

  Components.utils.import("resource://gre/modules/PerfMeasurement.jsm");
  let pm = new PerfMeasurement(PerfMeasurement.ALL);
  if (pm.eventsMeasured == 0) {
    todo(false, "stub, skipping test");
  } else {
    pm.start();
    for (let i = 0; i < 10000; i++) ;
      pm.stop();

    events = ["cpu_cycles", "instructions", "cache_references", "cache_misses",
              "branch_instructions", "branch_misses", "bus_cycles", "page_faults",
              "major_page_faults", "context_switches", "cpu_migrations"];

    for (var i = 0; i < events.length; i++) {
        var e = events[i];
        ((pm.eventsMeasured & PerfMeasurement[e.toUpperCase()]) ? isnot : todo_is)(pm[e], -1, e);
    }
  }
  SimpleTest.finish();
}
]]></script>

  <body xmlns="http://www.w3.org/1999/xhtml">
    <p id="display"></p>
    <div id="content" style="display:none;"></div>
    <pre id="test"></pre>
  </body>
  <label id="test-result"/>
</window>