summaryrefslogtreecommitdiff
path: root/test/test-utils.c
diff options
context:
space:
mode:
authorSimon McVittie <smcv@collabora.com>2017-11-27 19:26:03 +0000
committerSimon McVittie <smcv@collabora.com>2017-12-04 11:52:52 +0000
commitf59b4f9226c0134f91fc1eefebef6e7a816f85cd (patch)
treebeda5c6503d7bb010ee42abf15ea9a23466140a8 /test/test-utils.c
parent38ff6bd20d58b57a5dd0eab1b1c09c5c43b61d26 (diff)
downloaddbus-f59b4f9226c0134f91fc1eefebef6e7a816f85cd.tar.gz
test-utils: Separate failable and non-failable functions
test_object_try_whatever() now has libdbus-like OOM handling, while test_object_whatever() has GLib-like OOM handling. This is because an overwhelming majority of the callers of these functions either didn't check for OOM anyway, or checked for it but then aborted. In the uncommon case where we do care, we can use the _try_ version. Bug: https://bugs.freedesktop.org/show_bug.cgi?id=100317 Reviewed-by: Philip Withnall <withnall@endlessm.com> Signed-off-by: Simon McVittie <smcv@collabora.com>
Diffstat (limited to 'test/test-utils.c')
-rw-r--r--test/test-utils.c35
1 files changed, 31 insertions, 4 deletions
diff --git a/test/test-utils.c b/test/test-utils.c
index 53ad4a4e..99560523 100644
--- a/test/test-utils.c
+++ b/test/test-utils.c
@@ -98,8 +98,8 @@ cdata_new (DBusLoop *loop,
}
dbus_bool_t
-test_connection_setup (TestMainContext *ctx,
- DBusConnection *connection)
+test_connection_try_setup (TestMainContext *ctx,
+ DBusConnection *connection)
{
DBusLoop *loop = ctx;
CData *cd;
@@ -166,6 +166,14 @@ die (const char *message)
}
void
+test_connection_setup (TestMainContext *ctx,
+ DBusConnection *connection)
+{
+ if (!test_connection_try_setup (ctx, connection))
+ die ("Not enough memory to set up connection");
+}
+
+void
test_connection_shutdown (TestMainContext *ctx,
DBusConnection *connection)
{
@@ -268,8 +276,8 @@ remove_server_timeout (DBusTimeout *timeout,
}
dbus_bool_t
-test_server_setup (TestMainContext *ctx,
- DBusServer *server)
+test_server_try_setup (TestMainContext *ctx,
+ DBusServer *server)
{
DBusLoop *loop = ctx;
ServerData *sd;
@@ -312,6 +320,14 @@ test_server_setup (TestMainContext *ctx,
}
void
+test_server_setup (TestMainContext *ctx,
+ DBusServer *server)
+{
+ if (!test_server_try_setup (ctx, server))
+ die ("Not enough memory to set up server");
+}
+
+void
test_server_shutdown (TestMainContext *ctx,
DBusServer *server)
{
@@ -333,6 +349,17 @@ test_server_shutdown (TestMainContext *ctx,
TestMainContext *
test_main_context_get (void)
{
+ TestMainContext *ret = _dbus_loop_new ();
+
+ if (ret == NULL)
+ die ("Out of memory");
+
+ return ret;
+}
+
+TestMainContext *
+test_main_context_try_get (void)
+{
return _dbus_loop_new ();
}