xref: /openbmc/pldm/platform-mc/test/utils_test.hpp (revision fdf61cc310dfe7bb56d007bf1026635081f44aca)
1 #include <systemd/sd-event.h>
2 
3 #include <sdeventplus/event.hpp>
4 
5 namespace utils
6 {
runEventLoopForSeconds(sdeventplus::Event & event,uint64_t sec)7 void runEventLoopForSeconds(sdeventplus::Event& event, uint64_t sec)
8 {
9     uint64_t t0 = 0;
10     uint64_t t1 = 0;
11     uint64_t usec = sec * 1000000;
12     uint64_t elapsed = 0;
13     sd_event_now(event.get(), CLOCK_MONOTONIC, &t0);
14     do
15     {
16         if (!sd_event_run(event.get(), usec - elapsed))
17         {
18             break;
19         }
20         sd_event_now(event.get(), CLOCK_MONOTONIC, &t1);
21         elapsed = t1 - t0;
22     } while (elapsed < usec);
23 }
24 } // namespace utils
25