1*435eb1bdSPatrick Williams #include <sdbusplus/async.hpp> 2*435eb1bdSPatrick Williams 3*435eb1bdSPatrick Williams #include <chrono> 4*435eb1bdSPatrick Williams 5*435eb1bdSPatrick Williams #include <gtest/gtest.h> 6*435eb1bdSPatrick Williams 7*435eb1bdSPatrick Williams using namespace std::literals; 8*435eb1bdSPatrick Williams 9*435eb1bdSPatrick Williams TEST(Timer, DelaySome) 10*435eb1bdSPatrick Williams { 11*435eb1bdSPatrick Williams static constexpr auto timeout = 500ms; 12*435eb1bdSPatrick Williams 13*435eb1bdSPatrick Williams sdbusplus::async::context ctx; 14*435eb1bdSPatrick Williams 15*435eb1bdSPatrick Williams auto start = std::chrono::steady_clock::now(); 16*435eb1bdSPatrick Williams 17*435eb1bdSPatrick Williams ctx.run(sdbusplus::async::sleep_for(ctx, timeout) | 18*435eb1bdSPatrick Williams std::execution::then([&ctx]() { ctx.request_stop(); })); 19*435eb1bdSPatrick Williams 20*435eb1bdSPatrick Williams auto stop = std::chrono::steady_clock::now(); 21*435eb1bdSPatrick Williams 22*435eb1bdSPatrick Williams EXPECT_GT(stop - start, timeout); 23*435eb1bdSPatrick Williams EXPECT_LT(stop - start, timeout * 2); 24*435eb1bdSPatrick Williams } 25