Run clang-format on the whole tree
[lttng-tools.git] / tests / unit / test_unix_socket.cpp
index 2ff65a679749838586fb47846306a740cc0b3f0f..2c23b669c2d800bf35e7b528b0e346f3bc0ef1a5 100644 (file)
@@ -5,28 +5,30 @@
  *
  */
 
-#include <algorithm>
 #include <common/compat/fcntl.hpp>
-#include <common/sessiond-comm/sessiond-comm.hpp>
-#include <common/payload.hpp>
+#include <common/defaults.hpp>
+#include <common/error.hpp>
 #include <common/payload-view.hpp>
+#include <common/payload.hpp>
+#include <common/sessiond-comm/sessiond-comm.hpp>
 #include <common/unix.hpp>
 #include <common/utils.hpp>
-#include <common/defaults.hpp>
-#include <tap/tap.h>
-#include <stdbool.h>
-#include <common/error.hpp>
+
 #include <lttng/constant.h>
-#include <stdio.h>
+
+#include <algorithm>
 #include <pthread.h>
-#include <unistd.h>
-#include <sys/wait.h>
+#include <stdbool.h>
+#include <stdio.h>
 #include <stdlib.h>
+#include <sys/wait.h>
+#include <tap/tap.h>
+#include <unistd.h>
 
-#define HIGH_FD_COUNT LTTCOMM_MAX_SEND_FDS
-#define MESSAGE_COUNT 4
-#define LARGE_PAYLOAD_SIZE 4 * 1024
-#define LARGE_PAYLOAD_RECV_SIZE        100
+#define HIGH_FD_COUNT          LTTCOMM_MAX_SEND_FDS
+#define MESSAGE_COUNT          4
+#define LARGE_PAYLOAD_SIZE     4 * 1024
+#define LARGE_PAYLOAD_RECV_SIZE 100
 
 static const int TEST_COUNT = 37;
 
@@ -40,7 +42,7 @@ int lttng_opt_mi;
  */
 static void test_high_fd_count(unsigned int fd_count)
 {
-       int sockets[2] = {-1, -1};
+       int sockets[2] = { -1, -1 };
        int ret;
        unsigned int i;
        const unsigned int payload_content = 42;
@@ -59,8 +61,8 @@ static void test_high_fd_count(unsigned int fd_count)
        }
 
        /* Add dummy content to payload. */
-       ret = lttng_dynamic_buffer_append(&sent_payload.buffer,
-                       &payload_content, sizeof(payload_content));
+       ret = lttng_dynamic_buffer_append(
+               &sent_payload.buffer, &payload_content, sizeof(payload_content));
        if (ret) {
                PERROR("Failed to initialize test payload");
                goto error;
@@ -94,29 +96,30 @@ static void test_high_fd_count(unsigned int fd_count)
        /* Send payload. */
        {
                ssize_t sock_ret;
-               struct lttng_payload_view pv = lttng_payload_view_from_payload(
-                               &sent_payload, 0, -1);
+               struct lttng_payload_view pv =
+                       lttng_payload_view_from_payload(&sent_payload, 0, -1);
 
                /* Not expected to block considering the size of the payload. */
-               sock_ret = lttcomm_send_unix_sock(
-                               sockets[0], pv.buffer.data, pv.buffer.size);
+               sock_ret = lttcomm_send_unix_sock(sockets[0], pv.buffer.data, pv.buffer.size);
                ok(sock_ret == pv.buffer.size, "Sent complete test payload");
                if (sock_ret != pv.buffer.size) {
                        ERR("Failed to send test payload bytes: ret = %zd, expected = %zu",
-                                       sock_ret, pv.buffer.size);
+                           sock_ret,
+                           pv.buffer.size);
                        goto error;
                }
 
-               sock_ret = lttcomm_send_payload_view_fds_unix_sock(
-                               sockets[0], &pv);
+               sock_ret = lttcomm_send_payload_view_fds_unix_sock(sockets[0], &pv);
                ok(sock_ret == 1, "Sent test payload file descriptors");
                if (sock_ret != 1) {
                        if (sock_ret < 0) {
                                PERROR("Failed to send test payload file descriptors: ret = %zd, expected = %d",
-                                               sock_ret, 1);
+                                      sock_ret,
+                                      1);
                        } else {
                                diag("Failed to send test payload file descriptors: ret = %zd, expected = %d",
-                                               sock_ret, 1);
+                                    sock_ret,
+                                    1);
                        }
 
                        goto error;
@@ -128,45 +131,40 @@ static void test_high_fd_count(unsigned int fd_count)
                ssize_t sock_ret;
 
                ret = lttng_dynamic_buffer_set_size(&received_payload.buffer,
-                               sent_payload.buffer.size);
+                                                   sent_payload.buffer.size);
                if (ret) {
                        PERROR("Failed to pre-allocate reception buffer");
                        goto error;
                }
 
-               sock_ret = lttcomm_recv_unix_sock(sockets[1],
-                               received_payload.buffer.data,
-                               received_payload.buffer.size);
-               ok(sock_ret == received_payload.buffer.size,
-                               "Received payload bytes");
+               sock_ret = lttcomm_recv_unix_sock(
+                       sockets[1], received_payload.buffer.data, received_payload.buffer.size);
+               ok(sock_ret == received_payload.buffer.size, "Received payload bytes");
                if (sock_ret != received_payload.buffer.size) {
                        ERR("Failed to receive payload bytes: ret = %zd, expected = %zu",
-                                       sock_ret, received_payload.buffer.size);
+                           sock_ret,
+                           received_payload.buffer.size);
                        goto error;
                }
 
-               sock_ret = lttcomm_recv_payload_fds_unix_sock(
-                               sockets[1], fd_count, &received_payload);
+               sock_ret =
+                       lttcomm_recv_payload_fds_unix_sock(sockets[1], fd_count, &received_payload);
                ok(sock_ret == (int) (sizeof(int) * fd_count),
-                               "FD reception return value is number of fd * sizeof(int)");
+                  "FD reception return value is number of fd * sizeof(int)");
                if (sock_ret != (int) (sizeof(int) * fd_count)) {
                        ERR("Failed to receive test payload file descriptors: ret = %zd, expected = %d",
-                                       sock_ret,
-                                       (int) (fd_count * sizeof(int)));
+                           sock_ret,
+                           (int) (fd_count * sizeof(int)));
                        goto error;
                }
 
                {
                        const struct lttng_payload_view pv =
-                                       lttng_payload_view_from_payload(
-                                                       &received_payload, 0,
-                                                       -1);
-                       const int fd_handle_count =
-                                       lttng_payload_view_get_fd_handle_count(
-                                                       &pv);
+                               lttng_payload_view_from_payload(&received_payload, 0, -1);
+                       const int fd_handle_count = lttng_payload_view_get_fd_handle_count(&pv);
 
                        ok(fd_handle_count == fd_count,
-                                       "Received all test payload file descriptors in one invocation");
+                          "Received all test payload file descriptors in one invocation");
                }
        }
 
@@ -193,14 +191,13 @@ error:
 static void test_one_fd_per_message(unsigned int message_count)
 {
        const unsigned int payload_content = 42;
-       int sockets[2] = {-1, -1};
+       int sockets[2] = { -1, -1 };
        int ret;
        unsigned int i;
        struct lttng_payload sent_payload;
        struct lttng_payload received_payload;
 
-       diag("Send and receive small messages with one FD each (%u messages)",
-                       message_count);
+       diag("Send and receive small messages with one FD each (%u messages)", message_count);
        lttng_payload_init(&sent_payload);
        lttng_payload_init(&received_payload);
 
@@ -217,8 +214,8 @@ static void test_one_fd_per_message(unsigned int message_count)
                int fd;
 
                /* Add dummy content to payload. */
-               ret = lttng_dynamic_buffer_append(&sent_payload.buffer,
-                               &payload_content, sizeof(payload_content));
+               ret = lttng_dynamic_buffer_append(
+                       &sent_payload.buffer, &payload_content, sizeof(payload_content));
                if (ret) {
                        PERROR("Failed to initialize test payload");
                        goto error;
@@ -249,34 +246,31 @@ static void test_one_fd_per_message(unsigned int message_count)
                {
                        ssize_t sock_ret;
                        struct lttng_payload_view pv =
-                                       lttng_payload_view_from_payload(
-                                                       &sent_payload, 0, -1);
+                               lttng_payload_view_from_payload(&sent_payload, 0, -1);
 
                        /* Not expected to block considering the size of the
                         * payload. */
-                       sock_ret = lttcomm_send_unix_sock(sockets[0],
-                                       pv.buffer.data, pv.buffer.size);
-                       ok(sock_ret == pv.buffer.size,
-                                       "Sent binary payload for message %u",
-                                       i);
+                       sock_ret =
+                               lttcomm_send_unix_sock(sockets[0], pv.buffer.data, pv.buffer.size);
+                       ok(sock_ret == pv.buffer.size, "Sent binary payload for message %u", i);
                        if (sock_ret != pv.buffer.size) {
                                ERR("Failed to send test payload bytes: ret = %zd, expected = %zu",
-                                               sock_ret, pv.buffer.size);
+                                   sock_ret,
+                                   pv.buffer.size);
                                goto error;
                        }
 
-                       sock_ret = lttcomm_send_payload_view_fds_unix_sock(
-                                       sockets[0], &pv);
-                       ok(sock_ret == 1,
-                                       "Sent file descriptors payload for message %u",
-                                       i);
+                       sock_ret = lttcomm_send_payload_view_fds_unix_sock(sockets[0], &pv);
+                       ok(sock_ret == 1, "Sent file descriptors payload for message %u", i);
                        if (sock_ret != 1) {
                                if (sock_ret < 0) {
                                        PERROR("Failed to send test payload file descriptors: ret = %zd, expected = %d",
-                                                       sock_ret, 1);
+                                              sock_ret,
+                                              1);
                                } else {
                                        diag("Failed to send test payload file descriptors: ret = %zd, expected = %d",
-                                                       sock_ret, 1);
+                                            sock_ret,
+                                            1);
                                }
 
                                goto error;
@@ -291,45 +285,39 @@ static void test_one_fd_per_message(unsigned int message_count)
                ssize_t sock_ret;
 
                ret = lttng_dynamic_buffer_set_size(&received_payload.buffer,
-                               sizeof(payload_content));
+                                                   sizeof(payload_content));
                if (ret) {
                        PERROR("Failed to pre-allocate reception buffer");
                        goto error;
                }
 
-               sock_ret = lttcomm_recv_unix_sock(sockets[1],
-                               received_payload.buffer.data,
-                               received_payload.buffer.size);
+               sock_ret = lttcomm_recv_unix_sock(
+                       sockets[1], received_payload.buffer.data, received_payload.buffer.size);
                ok(sock_ret == received_payload.buffer.size,
-                               "Received payload bytes for message %u", i);
+                  "Received payload bytes for message %u",
+                  i);
                if (sock_ret != received_payload.buffer.size) {
                        ERR("Failed to receive payload bytes: ret = %zd, expected = %zu",
-                                       sock_ret, received_payload.buffer.size);
+                           sock_ret,
+                           received_payload.buffer.size);
                        goto error;
                }
 
-               sock_ret = lttcomm_recv_payload_fds_unix_sock(
-                               sockets[1], 1, &received_payload);
-               ok(sock_ret == (int) sizeof(int), "Received fd for message %u",
-                               i);
+               sock_ret = lttcomm_recv_payload_fds_unix_sock(sockets[1], 1, &received_payload);
+               ok(sock_ret == (int) sizeof(int), "Received fd for message %u", i);
                if (sock_ret != (int) sizeof(int)) {
                        ERR("Failed to receive test payload file descriptors: ret = %zd, expected = %u",
-                                       sock_ret, (int) sizeof(int));
+                           sock_ret,
+                           (int) sizeof(int));
                        goto error;
                }
 
                {
                        const struct lttng_payload_view pv =
-                                       lttng_payload_view_from_payload(
-                                                       &received_payload, 0,
-                                                       -1);
-                       const int fd_handle_count =
-                                       lttng_payload_view_get_fd_handle_count(
-                                                       &pv);
+                               lttng_payload_view_from_payload(&received_payload, 0, -1);
+                       const int fd_handle_count = lttng_payload_view_get_fd_handle_count(&pv);
 
-                       ok(fd_handle_count == 1,
-                                       "Payload contains 1 fd for message %u",
-                                       i);
+                       ok(fd_handle_count == 1, "Payload contains 1 fd for message %u", i);
                }
 
                lttng_payload_clear(&received_payload);
@@ -353,10 +341,9 @@ error:
 /*
  * Validate that a large message can be received in multiple chunks.
  */
-static void test_receive_in_chunks(
-               unsigned int payload_size, unsigned int max_recv_size)
+static void test_receive_in_chunks(unsigned int payload_size, unsigned int max_recv_size)
 {
-       int sockets[2] = {-1, -1};
+       int sockets[2] = { -1, -1 };
        int ret;
        unsigned int i;
        struct lttng_payload sent_payload;
@@ -406,29 +393,30 @@ static void test_receive_in_chunks(
 
        /* Send payload. */
        {
-               struct lttng_payload_view pv = lttng_payload_view_from_payload(
-                               &sent_payload, 0, -1);
+               struct lttng_payload_view pv =
+                       lttng_payload_view_from_payload(&sent_payload, 0, -1);
 
                /* Not expected to block considering the size of the payload. */
-               sock_ret = lttcomm_send_unix_sock(
-                               sockets[0], pv.buffer.data, pv.buffer.size);
+               sock_ret = lttcomm_send_unix_sock(sockets[0], pv.buffer.data, pv.buffer.size);
                ok(sock_ret == pv.buffer.size, "Sent complete test payload");
                if (sock_ret != pv.buffer.size) {
                        ERR("Failed to send test payload bytes: ret = %zd, expected = %zu",
-                                       sock_ret, pv.buffer.size);
+                           sock_ret,
+                           pv.buffer.size);
                        goto error;
                }
 
-               sock_ret = lttcomm_send_payload_view_fds_unix_sock(
-                               sockets[0], &pv);
+               sock_ret = lttcomm_send_payload_view_fds_unix_sock(sockets[0], &pv);
                ok(sock_ret == 1, "Sent test payload file descriptors");
                if (sock_ret != 1) {
                        if (sock_ret < 0) {
                                PERROR("Failed to send test payload file descriptors: ret = %zd, expected = %d",
-                                               sock_ret, 1);
+                                      sock_ret,
+                                      1);
                        } else {
                                diag("Failed to send test payload file descriptors: ret = %zd, expected = %d",
-                                               sock_ret, 1);
+                                    sock_ret,
+                                    1);
                        }
 
                        goto error;
@@ -436,8 +424,7 @@ static void test_receive_in_chunks(
        }
 
        /* Receive payload */
-       ret = lttng_dynamic_buffer_set_size(
-                       &received_payload.buffer, sent_payload.buffer.size);
+       ret = lttng_dynamic_buffer_set_size(&received_payload.buffer, sent_payload.buffer.size);
        if (ret) {
                PERROR("Failed to pre-allocate reception buffer");
                goto error;
@@ -445,15 +432,14 @@ static void test_receive_in_chunks(
 
        do {
                const ssize_t to_receive_this_pass =
-                       std::min<ssize_t>(max_recv_size,
-                               sent_payload.buffer.size - received);
+                       std::min<ssize_t>(max_recv_size, sent_payload.buffer.size - received);
 
-               sock_ret = lttcomm_recv_unix_sock(sockets[1],
-                               received_payload.buffer.data + received,
-                               to_receive_this_pass);
+               sock_ret = lttcomm_recv_unix_sock(
+                       sockets[1], received_payload.buffer.data + received, to_receive_this_pass);
                if (sock_ret != to_receive_this_pass) {
                        ERR("Failed to receive payload bytes: ret = %zd, expected = %zu",
-                                       sock_ret, to_receive_this_pass);
+                           sock_ret,
+                           to_receive_this_pass);
                        break;
                }
 
@@ -461,31 +447,28 @@ static void test_receive_in_chunks(
        } while (received < sent_payload.buffer.size);
 
        ok(received == sent_payload.buffer.size,
-                       "Received complete payload in chunks of %u bytes",
-                       max_recv_size);
+          "Received complete payload in chunks of %u bytes",
+          max_recv_size);
        if (received != sent_payload.buffer.size) {
                goto error;
        }
 
-       sock_ret = lttcomm_recv_payload_fds_unix_sock(
-                       sockets[1], 1, &received_payload);
+       sock_ret = lttcomm_recv_payload_fds_unix_sock(sockets[1], 1, &received_payload);
        ok(sock_ret == (int) sizeof(int),
-                       "Received file descriptor after receiving payload in chunks");
+          "Received file descriptor after receiving payload in chunks");
        if (sock_ret != (int) sizeof(int)) {
                ERR("Failed to receive test payload file descriptors: ret = %zd, expected = %d",
-                               sock_ret, (int) sizeof(int));
+                   sock_ret,
+                   (int) sizeof(int));
                goto error;
        }
 
        {
                const struct lttng_payload_view pv =
-                               lttng_payload_view_from_payload(
-                                               &received_payload, 0, -1);
-               const int fd_handle_count =
-                               lttng_payload_view_get_fd_handle_count(&pv);
+                       lttng_payload_view_from_payload(&received_payload, 0, -1);
+               const int fd_handle_count = lttng_payload_view_get_fd_handle_count(&pv);
 
-               ok(fd_handle_count == 1,
-                               "Payload contains 1 fd after receiving payload in chunks");
+               ok(fd_handle_count == 1, "Payload contains 1 fd after receiving payload in chunks");
        }
 
 error:
@@ -503,8 +486,7 @@ error:
        lttng_payload_reset(&received_payload);
 }
 
-static
-void test_creds_passing(void)
+static void test_creds_passing(void)
 {
        pid_t fork_ret = -1;
        int ret, parent_socket = -1, child_connection_socket = -1;
@@ -524,10 +506,8 @@ void test_creds_passing(void)
                goto error;
        }
 
-       strncat(socket_path, socket_dir_path,
-                       sizeof(socket_path) - strlen(socket_path) - 1);
-       strncat(socket_path, "/test_unix_socket",
-                       sizeof(socket_path) - strlen(socket_path) - 1);
+       strncat(socket_path, socket_dir_path, sizeof(socket_path) - strlen(socket_path) - 1);
+       strncat(socket_path, "/test_unix_socket", sizeof(socket_path) - strlen(socket_path) - 1);
 
        parent_socket = lttcomm_create_unix_sock(socket_path);
        ok(parent_socket >= 0, "Created unix socket at path `%s`", socket_path);
@@ -575,8 +555,8 @@ void test_creds_passing(void)
                        PERROR("Failed to set SO_PASSCRED on child socket");
                }
 
-               sock_ret = lttcomm_send_creds_unix_sock(child_socket, &expected_creds,
-                               sizeof(expected_creds));
+               sock_ret = lttcomm_send_creds_unix_sock(
+                       child_socket, &expected_creds, sizeof(expected_creds));
                if (sock_ret < 0) {
                        PERROR("Failed to send expected credentials");
                }
@@ -591,23 +571,22 @@ void test_creds_passing(void)
                pid_t wait_pid_ret;
                lttng_sock_cred received_creds = {};
 
-               child_connection_socket =
-                               lttcomm_accept_unix_sock(parent_socket);
+               child_connection_socket = lttcomm_accept_unix_sock(parent_socket);
                if (child_connection_socket < 0) {
                        PERROR();
                        goto error;
                }
 
-               ret = lttcomm_setsockopt_creds_unix_sock(
-                               child_connection_socket);
+               ret = lttcomm_setsockopt_creds_unix_sock(child_connection_socket);
                if (ret) {
                        PERROR("Failed to set SO_PASSCRED on child connection socket");
                        goto error;
                }
 
                sock_ret = lttcomm_recv_creds_unix_sock(child_connection_socket,
-                               &expected_creds, sizeof(expected_creds),
-                               &received_creds);
+                                                       &expected_creds,
+                                                       sizeof(expected_creds),
+                                                       &received_creds);
                if (sock_ret < 0) {
                        PERROR("Failed to receive credentials");
                        goto error;
@@ -624,14 +603,17 @@ void test_creds_passing(void)
                }
 
                ok(expected_creds.euid == received_creds.uid,
-                               "Received the expected effective uid (%d == %d)",
-                               expected_creds.euid, received_creds.uid);
+                  "Received the expected effective uid (%d == %d)",
+                  expected_creds.euid,
+                  received_creds.uid);
                ok(expected_creds.egid == received_creds.gid,
-                               "Received the expected effective gid (%d == %d)",
-                               expected_creds.egid, received_creds.gid);
+                  "Received the expected effective gid (%d == %d)",
+                  expected_creds.egid,
+                  received_creds.gid);
                ok(expected_creds.pid == received_creds.pid,
-                               "Received the expected pid (%d == %d)",
-                               expected_creds.pid, received_creds.pid);
+                  "Received the expected pid (%d == %d)",
+                  expected_creds.pid,
+                  received_creds.pid);
        }
 
 error:
@@ -659,14 +641,12 @@ error:
 
                ret = unlink(socket_path);
                if (ret) {
-                       PERROR("Failed to unlink socket at path `%s`",
-                                       socket_path);
+                       PERROR("Failed to unlink socket at path `%s`", socket_path);
                }
 
                ret = rmdir(socket_dir_path);
                if (ret) {
-                       PERROR("Failed to remove test directory at `%s`",
-                                       socket_dir_path);
+                       PERROR("Failed to remove test directory at `%s`", socket_dir_path);
                }
        }
 }
This page took 0.030062 seconds and 4 git commands to generate.