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); }