diff --git a/include/nm-test-utils.h b/include/nm-test-utils.h index e76496d023..d829e6d52e 100644 --- a/include/nm-test-utils.h +++ b/include/nm-test-utils.h @@ -129,6 +129,18 @@ nmtst_assert_error (GError *error, } } +#define NMTST_BUSY_WAIT(max_wait_ms, condition, wait) \ + G_STMT_START { \ + gint64 _nmtst_end, _nmtst_max_wait_us = (max_wait_ms) * 1000L; \ + \ + _nmtst_end = g_get_monotonic_time () + _nmtst_max_wait_us; \ + while (!(condition)) { \ + { wait }; \ + if (g_get_monotonic_time () > _nmtst_end) \ + g_assert_not_reached (); \ + } \ + } G_STMT_END + inline static void _nmtst_assert_success (gboolean success, GError *error, const char *file, int line) {