#ifndef TEST_CLOCK_H #define TEST_CLOCK_H #include "../lib/u_async.h" /* Linux: часы продвигаются при пустом I/O до ближайшего таймера, с сохранением реальных сокетов. * UTUN_TEST_REAL_TIME=1 и остальные платформы используют обычные часы/ожидание. * init — до создания uasync; finish — после уничтожения. Вызовы только из потока теста, не из callbacks. */ void test_clock_init(int max_step_tb); // Та же прибавка для календарных часов (TTL и durable retry_at); до создания инстансов. void test_clock_sync_wall_time(void); void test_clock_poll(struct UASYNC* ua, int timeout_tb); void test_clock_mainloop(struct UASYNC* ua); void test_clock_run_for(struct UASYNC* ua, int duration_tb); // Дождаться ближайшего неотменённого таймера; требуется хотя бы один таймер, callbacks выполняет uasync. void test_clock_next_timer(struct UASYNC* ua); void test_clock_finish(void); #endif