| // Copyright 2018 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include <perftest/perftest.h> |
| #include <zircon/syscalls.h> |
| |
| namespace { |
| |
| // Performance test for zx_clock_get_monotonic(). This is worth |
| // testing because it is a very commonly called syscall. The kernel's |
| // implementation of the syscall is non-trivial and can be rather slow on |
| // some machines/VMs. |
| bool ClockGetMonotonicTest() { |
| zx_clock_get_monotonic(); |
| return true; |
| } |
| |
| bool ClockGetUtcTest() { |
| zx_time_t now = 0; |
| zx_clock_get(ZX_CLOCK_UTC, &now); |
| return true; |
| } |
| |
| bool ClockGetThreadTest() { |
| zx_time_t now = 0; |
| zx_clock_get(ZX_CLOCK_THREAD, &now); |
| return true; |
| } |
| |
| bool TicksGetTest() { |
| zx_ticks_get(); |
| return true; |
| } |
| |
| void RegisterTests() { |
| perftest::RegisterSimpleTest<ClockGetMonotonicTest>("ClockGetMonotonic"); |
| perftest::RegisterSimpleTest<ClockGetUtcTest>("ClockGetUtc"); |
| perftest::RegisterSimpleTest<ClockGetThreadTest>("ClockGetThread"); |
| perftest::RegisterSimpleTest<TicksGetTest>("TicksGet"); |
| } |
| PERFTEST_CTOR(RegisterTests) |
| |
| } // namespace |