diff options
author | Thomas Haller <thaller@redhat.com> | 2020-01-04 08:40:19 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2021-06-10 16:59:15 +0200 |
commit | 3e41eb83f755d1cb3c144c8d05ef0224062909f0 (patch) | |
tree | cc13f39871934e0a513e01949486ab1355a88031 | |
parent | 68800febf16a09051dd800b14f6fd4cf38347ad8 (diff) | |
download | NetworkManager-3e41eb83f755d1cb3c144c8d05ef0224062909f0.tar.gz |
shared/tests: add nmtst_main_context_iterate_until() helper
Like nmtst_main_context_iterate_until_assert(), but allows to
run into timeout.
(cherry picked from commit f2baa10bb8b0f7d4a00312bf6fa55f9bab027a14)
-rw-r--r-- | shared/nm-utils/nm-test-utils.h | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/shared/nm-utils/nm-test-utils.h b/shared/nm-utils/nm-test-utils.h index bcd8fb6a66..fc46d480cf 100644 --- a/shared/nm-utils/nm-test-utils.h +++ b/shared/nm-utils/nm-test-utils.h @@ -1030,8 +1030,8 @@ _nmtst_main_loop_quit_on_notify (GObject *object, GParamSpec *pspec, gpointer us } #define nmtst_main_loop_quit_on_notify ((GCallback) _nmtst_main_loop_quit_on_notify) -#define nmtst_main_context_iterate_until_assert(context, timeout_msec, condition) \ - G_STMT_START { \ +#define nmtst_main_context_iterate_until(context, timeout_msec, condition) \ + ({ \ nm_auto_destroy_and_unref_gsource GSource *_source = NULL; \ GMainContext *_context = (context); \ gboolean _had_timeout = FALSE; \ @@ -1044,8 +1044,17 @@ _nmtst_main_loop_quit_on_notify (GObject *object, GParamSpec *pspec, gpointer us if (condition) \ break; \ g_main_context_iteration (_context, TRUE); \ - g_assert (!_had_timeout && #condition); \ + if (_had_timeout) \ + break; \ } \ + \ + !_had_timeout; \ + }) + +#define nmtst_main_context_iterate_until_assert(context, timeout_msec, condition) \ + G_STMT_START { \ + if (!nmtst_main_context_iterate_until (context, timeout_msec, condition)) \ + g_assert (FALSE && #condition); \ } G_STMT_END /*****************************************************************************/ |