Commit 25c54a79 authored by Simon McVittie's avatar Simon McVittie

test-utils-glib: Add function to connect with GDBus as another uid

This will be used in a test for connecting to container servers
as the wrong uid.
Signed-off-by: Simon McVittie's avatarSimon McVittie <smcv@collabora.com>
Reviewed-by: Philip Withnall's avatarPhilip Withnall <withnall@endlessm.com>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=101354
parent 2a729036
......@@ -473,6 +473,30 @@ test_try_connect_to_bus_as_user (TestMainContext *ctx,
return conn;
}
/*
* Raise G_IO_ERROR_NOT_SUPPORTED if the requested user is impossible.
*/
GDBusConnection *
test_try_connect_gdbus_as_user (const char *address,
TestUser user,
GError **error)
{
GDBusConnection *conn;
if (user != TEST_USER_ME && !become_other_user (user, error))
return NULL;
conn = g_dbus_connection_new_for_address_sync (address,
(G_DBUS_CONNECTION_FLAGS_MESSAGE_BUS_CONNECTION |
G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_CLIENT),
NULL, NULL, error);
if (user != TEST_USER_ME)
back_to_root ();
return conn;
}
static void
pid_died (GPid pid,
gint status,
......
......@@ -29,6 +29,7 @@
#include <dbus/dbus.h>
#include <gio/gio.h>
#include <glib.h>
#include "test-utils.h"
......@@ -81,6 +82,9 @@ DBusConnection *test_try_connect_to_bus_as_user (TestMainContext *ctx,
const char *address,
TestUser user,
GError **error);
GDBusConnection *test_try_connect_gdbus_as_user (const char *address,
TestUser user,
GError **error);
void test_kill_pid (GPid pid);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment