#include "util/CallWithTimeout.hpp" #include #include #include #include #include #include namespace tests::common::util { void callWithTimeout(std::chrono::steady_clock::duration timeout, std::function function) { std::promise promise; auto future = promise.get_future(); std::thread t([&promise, &function] { function(); promise.set_value(); }); if (future.wait_for(timeout) == std::future_status::timeout) { FAIL() << "Timeout " << std::chrono::duration_cast(timeout).count() << "ms exceeded"; } t.join(); } } // namespace tests::common::util