summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/basic/perf-smoketest.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/basic/perf-smoketest.js')
-rw-r--r--js/src/jit-test/tests/basic/perf-smoketest.js34
1 files changed, 34 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/basic/perf-smoketest.js b/js/src/jit-test/tests/basic/perf-smoketest.js
new file mode 100644
index 000000000..7c442caee
--- /dev/null
+++ b/js/src/jit-test/tests/basic/perf-smoketest.js
@@ -0,0 +1,34 @@
+function spin_loop()
+{
+ for (let i = 0; i < 10000; i++) ;
+}
+
+function check_timing(label, count) {
+ if (count == -1) {
+ print("TEST-UNEXPECTED-FAIL | TestPerf | " + label);
+ throwError();
+ } else {
+ print("TEST-PASS | TestPerf | " + label + " = " + count);
+ }
+}
+
+var pm = new PerfMeasurement(PerfMeasurement.ALL);
+if (pm.eventsMeasured == 0) {
+ print("TEST-KNOWN-FAIL | perf-smoketest | stub, skipping test");
+} else {
+ pm.start();
+ spin_loop();
+ pm.stop();
+
+ check_timing("cpu_cycles", pm.cpu_cycles);
+ check_timing("instructions", pm.instructions);
+ check_timing("cache_references", pm.cache_references);
+ check_timing("cache_misses", pm.cache_misses);
+ check_timing("branch_instructions", pm.branch_instructions);
+ check_timing("branch_misses", pm.branch_misses);
+ check_timing("bus_cycles", pm.bus_cycles);
+ check_timing("page_faults", pm.page_faults);
+ check_timing("major_page_faults", pm.major_page_faults);
+ check_timing("context_switches", pm.context_switches);
+ check_timing("cpu_migrations", pm.cpu_migrations);
+}