Imported Upstream version 1.0.0
[platform/upstream/js.git] / js / src / jit-test / tests / basic / perf-smoketest.js
1 function spin_loop()
2 {
3     for (let i = 0; i < 10000; i++) ;
4 }
5
6 function check_timing(label, count) {
7     if (count == -1) {
8         print("TEST-UNEXPECTED-FAIL | TestPerf | " + label);
9         throwError();
10     } else {
11         print("TEST-PASS | TestPerf | " + label + " = " + count);
12     }
13 }
14
15 var pm = new PerfMeasurement(PerfMeasurement.ALL);
16 if (pm.eventsMeasured == 0) {
17     print("TEST-KNOWN-FAIL | perf-smoketest | stub, skipping test");
18 } else {
19     pm.start();
20     spin_loop();
21     pm.stop();
22
23     check_timing("cpu_cycles", pm.cpu_cycles);
24     check_timing("instructions", pm.instructions);
25     check_timing("cache_references", pm.cache_references);
26     check_timing("cache_misses", pm.cache_misses);
27     check_timing("branch_instructions", pm.branch_instructions);
28     check_timing("branch_misses", pm.branch_misses);
29     check_timing("bus_cycles", pm.bus_cycles);
30     check_timing("page_faults", pm.page_faults);
31     check_timing("major_page_faults", pm.major_page_faults);
32     check_timing("context_switches", pm.context_switches);
33     check_timing("cpu_migrations", pm.cpu_migrations);
34 }