summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorSimon McVittie <simon.mcvittie@collabora.co.uk>2015-02-11 13:19:43 +0000
committerSimon McVittie <simon.mcvittie@collabora.co.uk>2015-02-18 10:35:05 +0000
commit2e6879bc1b399c982a6d8599a641196fd4d46c0a (patch)
treeb2d3b16b08dd6e92724393790f232a3415341377 /test
parent96c3bcec776f932fa1883f6a2597991d138e6925 (diff)
downloaddbus-2e6879bc1b399c982a6d8599a641196fd4d46c0a.tar.gz
Add regression test for LinuxSecurityLabel credential
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=89041 Reviewed-by: Philip Withnall <philip.withnall@collabora.co.uk>
Diffstat (limited to 'test')
-rw-r--r--test/dbus-daemon.c26
1 files changed, 25 insertions, 1 deletions
diff --git a/test/dbus-daemon.c b/test/dbus-daemon.c
index 45160910..26786fc2 100644
--- a/test/dbus-daemon.c
+++ b/test/dbus-daemon.c
@@ -28,6 +28,8 @@
#include "test-utils-glib.h"
+#include <string.h>
+
#ifdef DBUS_UNIX
# include <unistd.h>
# include <sys/types.h>
@@ -305,7 +307,8 @@ test_creds (Fixture *f,
enum {
SEEN_UNIX_USER = 1,
SEEN_PID = 2,
- SEEN_WINDOWS_SID = 4
+ SEEN_WINDOWS_SID = 4,
+ SEEN_LINUX_SECURITY_LABEL = 8
} seen = 0;
if (m == NULL)
@@ -411,6 +414,27 @@ test_creds (Fixture *f,
#endif
seen |= SEEN_PID;
}
+ else if (g_strcmp0 (name, "LinuxSecurityLabel") == 0)
+ {
+#ifdef __linux__
+ gchar *label;
+ int len;
+ DBusMessageIter ay_iter;
+
+ g_assert (!(seen & SEEN_LINUX_SECURITY_LABEL));
+ g_assert_cmpuint (dbus_message_iter_get_arg_type (&var_iter), ==,
+ DBUS_TYPE_ARRAY);
+ dbus_message_iter_recurse (&var_iter, &ay_iter);
+ g_assert_cmpuint (dbus_message_iter_get_arg_type (&ay_iter), ==,
+ DBUS_TYPE_BYTE);
+ dbus_message_iter_get_fixed_array (&ay_iter, &label, &len);
+ g_message ("%s of this process is %s", name, label);
+ g_assert_cmpuint (strlen (label) + 1, ==, len);
+ seen |= SEEN_LINUX_SECURITY_LABEL;
+#else
+ g_assert_not_reached ();
+#endif
+ }
dbus_message_iter_next (&arr_iter);
}