17738db2cSMark de Wever //===----------------------------------------------------------------------===//
27738db2cSMark de Wever //
37738db2cSMark de Wever // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
47738db2cSMark de Wever // See https://llvm.org/LICENSE.txt for license information.
57738db2cSMark de Wever // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
67738db2cSMark de Wever //
77738db2cSMark de Wever //===----------------------------------------------------------------------===//
87738db2cSMark de Wever //
9*a7f9895cSLouis Dionne // UNSUPPORTED: no-monotonic-clock
107738db2cSMark de Wever 
117738db2cSMark de Wever // <chrono>
127738db2cSMark de Wever 
137738db2cSMark de Wever // steady_clock
147738db2cSMark de Wever 
157738db2cSMark de Wever // static time_point now();
167738db2cSMark de Wever 
177738db2cSMark de Wever #include <chrono>
187738db2cSMark de Wever #include <cassert>
197738db2cSMark de Wever 
207738db2cSMark de Wever #include "test_macros.h"
217738db2cSMark de Wever 
main(int,char **)227738db2cSMark de Wever int main(int, char**)
237738db2cSMark de Wever {
247738db2cSMark de Wever     typedef std::chrono::steady_clock C;
257738db2cSMark de Wever     C::time_point t1 = C::now();
267738db2cSMark de Wever     C::time_point t2 = C::now();
277738db2cSMark de Wever     assert(t2 >= t1);
287738db2cSMark de Wever     // make sure t2 didn't wrap around
297738db2cSMark de Wever     assert(t2 > std::chrono::time_point<C>());
307738db2cSMark de Wever 
317738db2cSMark de Wever   return 0;
327738db2cSMark de Wever }
33