Code

Renamed CONNECTION_* constants to SDB_CONNECTION_*.
[sysdb.git] / t / unit / frontend / connection_test.c
index 9e9461453cff6204611bcd74192e94569d9ec3f0..77828e6a8c4220d482a1eaaf69c6ec03b142fca0 100644 (file)
@@ -99,7 +99,7 @@ mock_conn_create(void)
 
        unlink(tmp_file);
 
-       conn->cmd = CONNECTION_IDLE;
+       conn->cmd = SDB_CONNECTION_IDLE;
        conn->cmd_len = 0;
        return conn;
 } /* mock_conn_create */
@@ -113,28 +113,27 @@ mock_conn_rewind(sdb_conn_t *conn)
 static void
 mock_conn_truncate(sdb_conn_t *conn)
 {
+       int status;
        lseek(conn->fd, 0, SEEK_SET);
-       ftruncate(conn->fd, 0);
+       status = ftruncate(conn->fd, 0);
+       fail_unless(status == 0,
+                       "INTERNAL ERROR: ftruncate(%d, 0) = %d; expected: 0",
+                       conn->fd, status);
 } /* mock_conn_truncate */
 
 static int
-mock_unixsock_listener(char *sock_path)
+mock_unixsock_listener(char *socket_path)
 {
        struct sockaddr_un sa;
-       char *filename;
        int fd, status;
 
-       filename = tmpnam(sock_path);
-       fail_unless(filename != NULL,
-                       "INTERNAL ERROR: tmpnam() = NULL; expected: a string");
-
        fd = socket(AF_UNIX, SOCK_STREAM, 0);
        fail_unless(fd >= 0,
                        "INTERNAL ERROR: socket() = %d; expected: >=0", fd);
 
        memset(&sa, 0, sizeof(sa));
        sa.sun_family = AF_UNIX;
-       strncpy(sa.sun_path, filename, sizeof(sa.sun_path));
+       strncpy(sa.sun_path, socket_path, sizeof(sa.sun_path));
 
        status = bind(fd, (struct sockaddr *)&sa, sizeof(sa));
        fail_unless(status == 0,
@@ -176,7 +175,7 @@ connection_startup(sdb_conn_t *conn)
        ssize_t check, expected;
 
        expected = 2 * sizeof(uint32_t) + strlen("fakeuser");
-       check = sdb_connection_send(conn, CONNECTION_STARTUP,
+       check = sdb_connection_send(conn, SDB_CONNECTION_STARTUP,
                        (uint32_t)strlen("fakeuser"), "fakeuser");
        fail_unless(check == expected,
                        "sdb_connection_send(STARTUP, fakeuser) = %zi; expected: %zi",
@@ -201,7 +200,7 @@ connection_startup(sdb_conn_t *conn)
 
 START_TEST(test_conn_accept)
 {
-       char socket_path[L_tmpnam];
+       char socket_path[] = "connection_test_socket.XXXXXX";
        int fd, check;
 
        sdb_conn_t *conn;
@@ -212,7 +211,10 @@ START_TEST(test_conn_accept)
        fail_unless(conn == NULL,
                        "sdb_connection_accept(-1) = %p; expected: NULL", conn);
 
-       memset(&socket_path, 0, sizeof(socket_path));
+       fd = mkstemp(socket_path);
+       unlink(socket_path);
+       close(fd);
+
        fd = mock_unixsock_listener(socket_path);
        check = pthread_create(&thr, /* attr = */ NULL, mock_client, socket_path);
        fail_unless(check == 0,
@@ -239,14 +241,14 @@ START_TEST(test_conn_setup)
                const char *err;
        } golden_data[] = {
                /* code == UINT32_MAX => no data will be sent */
-               { UINT32_MAX,         NULL,       NULL },
-               { CONNECTION_IDLE,    "fakedata", "Authentication required" },
-               { CONNECTION_PING,    NULL,       "Authentication required" },
-               { CONNECTION_STARTUP, "fakeuser", NULL },
-               { CONNECTION_PING,    NULL,       NULL },
-               { CONNECTION_IDLE,    NULL,       "Invalid command 0" },
-               { CONNECTION_PING,    "fakedata", NULL },
-               { CONNECTION_IDLE,    NULL,       "Invalid command 0" },
+               { UINT32_MAX,             NULL,       NULL },
+               { SDB_CONNECTION_IDLE,    "fakedata", "Authentication required" },
+               { SDB_CONNECTION_PING,    NULL,       "Authentication required" },
+               { SDB_CONNECTION_STARTUP, "fakeuser", NULL },
+               { SDB_CONNECTION_PING,    NULL,       NULL },
+               { SDB_CONNECTION_IDLE,    NULL,       "Invalid command 0" },
+               { SDB_CONNECTION_PING,    "fakedata", NULL },
+               { SDB_CONNECTION_IDLE,    NULL,       "Invalid command 0" },
        };
 
        size_t i;
@@ -310,22 +312,22 @@ START_TEST(test_conn_io)
                const char *err;
        } golden_data[] = {
                /* code == UINT32_MAX => this is a follow-up package */
-               { CONNECTION_PING,    20, "9876543210",  0, "Authentication required" },
-               { UINT32_MAX,         -1, "9876543210",  0, "Authentication required" },
-               { CONNECTION_PING,    10, "9876543210",  0, "Authentication required" },
-               { CONNECTION_IDLE,    10, "9876543210",  0, "Authentication required" },
-               { CONNECTION_IDLE,    20, "9876543210",  0, "Authentication required" },
-               { UINT32_MAX,         -1, "9876543210",  0, "Authentication required" },
-               { CONNECTION_STARTUP, -1, NULL,          0, NULL },
-               { CONNECTION_PING,    20, "9876543210", 10, NULL },
-               { UINT32_MAX,         -1, "9876543210",  0, NULL },
-               { CONNECTION_IDLE,    20, "9876543210",  0, "Invalid command 0" },
-               { UINT32_MAX,         -1, "9876543210",  0, "Invalid command 0" },
-               { CONNECTION_IDLE,    20, "9876543210",  0, "Invalid command 0" },
-               { UINT32_MAX,         -1, "9876543210",  0, "Invalid command 0" },
-               { CONNECTION_PING,    10, "9876543210",  0, NULL },
-               { CONNECTION_PING,    20, "9876543210", 10, NULL },
-               { UINT32_MAX,         -1, "9876543210",  0, NULL },
+               { SDB_CONNECTION_PING,    20, "9876543210",  0, "Authentication required" },
+               { UINT32_MAX,             -1, "9876543210",  0, "Authentication required" },
+               { SDB_CONNECTION_PING,    10, "9876543210",  0, "Authentication required" },
+               { SDB_CONNECTION_IDLE,    10, "9876543210",  0, "Authentication required" },
+               { SDB_CONNECTION_IDLE,    20, "9876543210",  0, "Authentication required" },
+               { UINT32_MAX,             -1, "9876543210",  0, "Authentication required" },
+               { SDB_CONNECTION_STARTUP, -1, NULL,          0, NULL },
+               { SDB_CONNECTION_PING,    20, "9876543210", 10, NULL },
+               { UINT32_MAX,             -1, "9876543210",  0, NULL },
+               { SDB_CONNECTION_IDLE,    20, "9876543210",  0, "Invalid command 0" },
+               { UINT32_MAX,             -1, "9876543210",  0, "Invalid command 0" },
+               { SDB_CONNECTION_IDLE,    20, "9876543210",  0, "Invalid command 0" },
+               { UINT32_MAX,             -1, "9876543210",  0, "Invalid command 0" },
+               { SDB_CONNECTION_PING,    10, "9876543210",  0, NULL },
+               { SDB_CONNECTION_PING,    20, "9876543210", 10, NULL },
+               { UINT32_MAX,             -1, "9876543210",  0, NULL },
        };
 
        size_t i;
@@ -339,7 +341,7 @@ START_TEST(test_conn_io)
 
                mock_conn_truncate(conn);
 
-               if (golden_data[i].code == CONNECTION_STARTUP) {
+               if (golden_data[i].code == SDB_CONNECTION_STARTUP) {
                        connection_startup(conn);
                        continue;
                }
@@ -381,9 +383,9 @@ START_TEST(test_conn_io)
                                        golden_data[i].buf_len);
                }
                else {
-                       fail_unless(conn->cmd == CONNECTION_IDLE,
+                       fail_unless(conn->cmd == SDB_CONNECTION_IDLE,
                                        "sdb_connection_read() did not reset command; "
-                                       "got %u; expected: %u", conn->cmd, CONNECTION_IDLE);
+                                       "got %u; expected: %u", conn->cmd, SDB_CONNECTION_IDLE);
                        fail_unless(conn->cmd_len == 0,
                                        "sdb_connection_read() did not reset command length; "
                                        "got %u; expected: 0", conn->cmd_len);