summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2020-01-04 08:40:19 +0100
committerThomas Haller <thaller@redhat.com>2021-06-10 16:59:15 +0200
commit3e41eb83f755d1cb3c144c8d05ef0224062909f0 (patch)
treecc13f39871934e0a513e01949486ab1355a88031
parent68800febf16a09051dd800b14f6fd4cf38347ad8 (diff)
downloadNetworkManager-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.h15
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
/*****************************************************************************/