[kdbus] KDBUS_ITEM_PAYLOAD_OFF items are (once again) relative to msg header
[platform/upstream/glib.git] / gio / tests / socket-address.c
1 #include <gio/gunixsocketaddress.h>
2
3 static void
4 test_unix_socket_address_construct (void)
5 {
6   GUnixSocketAddress *a;
7
8   a = g_object_new (G_TYPE_UNIX_SOCKET_ADDRESS, NULL);
9   g_assert_cmpint (g_unix_socket_address_get_address_type (a), ==, G_UNIX_SOCKET_ADDRESS_PATH);
10   g_object_unref (a);
11
12   /* Try passing some default values for the arguments explicitly and
13    * make sure it makes no difference.
14    */
15   a = g_object_new (G_TYPE_UNIX_SOCKET_ADDRESS, "address-type", G_UNIX_SOCKET_ADDRESS_PATH, NULL);
16   g_assert_cmpint (g_unix_socket_address_get_address_type (a), ==, G_UNIX_SOCKET_ADDRESS_PATH);
17   g_object_unref (a);
18
19   a = g_object_new (G_TYPE_UNIX_SOCKET_ADDRESS, "abstract", FALSE, NULL);
20   g_assert_cmpint (g_unix_socket_address_get_address_type (a), ==, G_UNIX_SOCKET_ADDRESS_PATH);
21   g_object_unref (a);
22
23   a = g_object_new (G_TYPE_UNIX_SOCKET_ADDRESS,
24                     "abstract", FALSE,
25                     "address-type", G_UNIX_SOCKET_ADDRESS_PATH,
26                     NULL);
27   g_assert_cmpint (g_unix_socket_address_get_address_type (a), ==, G_UNIX_SOCKET_ADDRESS_PATH);
28   g_object_unref (a);
29
30   a = g_object_new (G_TYPE_UNIX_SOCKET_ADDRESS,
31                     "address-type", G_UNIX_SOCKET_ADDRESS_PATH,
32                     "abstract", FALSE,
33                     NULL);
34   g_assert_cmpint (g_unix_socket_address_get_address_type (a), ==, G_UNIX_SOCKET_ADDRESS_PATH);
35   g_object_unref (a);
36
37   /* Try explicitly setting abstract to TRUE */
38   a = g_object_new (G_TYPE_UNIX_SOCKET_ADDRESS,
39                     "abstract", TRUE,
40                     NULL);
41   g_assert_cmpint (g_unix_socket_address_get_address_type (a), ==, G_UNIX_SOCKET_ADDRESS_ABSTRACT_PADDED);
42   g_object_unref (a);
43
44   /* Try explicitly setting a different kind of address */
45   a = g_object_new (G_TYPE_UNIX_SOCKET_ADDRESS,
46                     "address-type", G_UNIX_SOCKET_ADDRESS_ANONYMOUS,
47                     NULL);
48   g_assert_cmpint (g_unix_socket_address_get_address_type (a), ==, G_UNIX_SOCKET_ADDRESS_ANONYMOUS);
49   g_object_unref (a);
50
51   /* Now try explicitly setting a different type of address after
52    * setting abstract to FALSE.
53    */
54   a = g_object_new (G_TYPE_UNIX_SOCKET_ADDRESS,
55                     "abstract", FALSE,
56                     "address-type", G_UNIX_SOCKET_ADDRESS_ANONYMOUS,
57                     NULL);
58   g_assert_cmpint (g_unix_socket_address_get_address_type (a), ==, G_UNIX_SOCKET_ADDRESS_ANONYMOUS);
59   g_object_unref (a);
60
61   /* And the other way around */
62   a = g_object_new (G_TYPE_UNIX_SOCKET_ADDRESS,
63                     "address-type", G_UNIX_SOCKET_ADDRESS_ANONYMOUS,
64                     "abstract", FALSE,
65                     NULL);
66   g_assert_cmpint (g_unix_socket_address_get_address_type (a), ==, G_UNIX_SOCKET_ADDRESS_ANONYMOUS);
67   g_object_unref (a);
68 }
69
70 int
71 main (int    argc,
72       char **argv)
73 {
74   g_test_init (&argc, &argv, NULL);
75
76   g_test_add_func ("/socket/address/unix/construct", test_unix_socket_address_construct);
77
78   return g_test_run ();
79 }