Code

t/unit/: Create one test binary for each *_test.c file.
[sysdb.git] / t / unit / frontend / connection_test.c
index 13ae221a0f509e6f8402c2c5c10e838f4df8b2ef..b4cc1878555198425a44e7b3bb4abe9acd691de5 100644 (file)
@@ -31,9 +31,8 @@
 
 #include "frontend/connection.h"
 #include "frontend/connection-private.h"
-#include "utils/proto.h"
 #include "utils/os.h"
-#include "libsysdb_test.h"
+#include "testutils.h"
 
 #include "utils/strbuf.h"
 
@@ -70,6 +69,18 @@ mock_conn_destroy(sdb_conn_t *conn)
        free(conn);
 } /* mock_conn_destroy */
 
+static ssize_t
+mock_conn_read(sdb_conn_t *conn, size_t len)
+{
+       return sdb_strbuf_read(conn->buf, conn->fd, len);
+} /* conn_read */
+
+static ssize_t
+mock_conn_write(sdb_conn_t *conn, const void *buf, size_t len)
+{
+       return sdb_write(conn->fd, len, buf);
+} /* conn_write */
+
 static sdb_conn_t *
 mock_conn_create(void)
 {
@@ -103,6 +114,9 @@ mock_conn_create(void)
 
        unlink(tmp_file);
 
+       conn->read = mock_conn_read;
+       conn->write = mock_conn_write;
+
        conn->username = strdup(username);
        assert(conn->username);
 
@@ -189,13 +203,13 @@ connection_startup(sdb_conn_t *conn)
                        username, check, expected);
 
        mock_conn_rewind(conn);
-       check = sdb_connection_read(conn);
+       check = sdb_connection_handle(conn);
        fail_unless(check == expected,
-                       "On startup: sdb_connection_read() = %zi; expected: %zi",
+                       "On startup: sdb_connection_handle() = %zi; expected: %zi",
                        check, expected);
 
        fail_unless(sdb_strbuf_len(conn->errbuf) == 0,
-                       "sdb_connection_read() left %zu bytes in the error "
+                       "sdb_connection_handle() left %zu bytes in the error "
                        "buffer (%s); expected: 0", sdb_strbuf_len(conn->errbuf),
                        sdb_strbuf_string(conn->errbuf));
 
@@ -215,7 +229,7 @@ START_TEST(test_conn_accept)
 
        pthread_t thr;
 
-       conn = sdb_connection_accept(-1);
+       conn = sdb_connection_accept(-1, NULL, NULL);
        fail_unless(conn == NULL,
                        "sdb_connection_accept(-1) = %p; expected: NULL", conn);
 
@@ -228,12 +242,13 @@ START_TEST(test_conn_accept)
        fail_unless(check == 0,
                        "INTERNAL ERROR: pthread_create() = %i; expected: 0", check);
 
-       conn = sdb_connection_accept(fd);
+       conn = sdb_connection_accept(fd, NULL, NULL);
        fail_unless(conn != NULL,
                        "sdb_connection_accept(%d) = %p; expected: <conn>", fd, conn);
 
        unlink(socket_path);
        sdb_connection_close(conn);
+       sdb_object_deref(SDB_OBJ(conn));
        pthread_join(thr, NULL);
 }
 END_TEST
@@ -282,24 +297,24 @@ START_TEST(test_conn_setup)
                }
 
                mock_conn_rewind(conn);
-               check = sdb_connection_read(conn);
+               check = sdb_connection_handle(conn);
                fail_unless(check == expected,
-                               "sdb_connection_read() = %zi; expected: %zi",
+                               "sdb_connection_handle() = %zi; expected: %zi",
                                check, expected);
 
                fail_unless(sdb_strbuf_len(conn->buf) == 0,
-                               "sdb_connection_read() left %zu bytes in the buffer; "
+                               "sdb_connection_handle() left %zu bytes in the buffer; "
                                "expected: 0", sdb_strbuf_len(conn->buf));
 
                if (golden_data[i].err) {
                        const char *err = sdb_strbuf_string(conn->errbuf);
                        fail_unless(strcmp(err, golden_data[i].err) == 0,
-                                       "sdb_connection_read(): got error '%s'; "
+                                       "sdb_connection_handle(): got error '%s'; "
                                        "expected: '%s'", err, golden_data[i].err);
                }
                else
                        fail_unless(sdb_strbuf_len(conn->errbuf) == 0,
-                                       "sdb_connection_read() left %zu bytes in the error "
+                                       "sdb_connection_handle() left %zu bytes in the error "
                                        "buffer (%s); expected: 0", sdb_strbuf_len(conn->errbuf),
                                        sdb_strbuf_string(conn->errbuf));
        }
@@ -370,50 +385,50 @@ START_TEST(test_conn_io)
                memcpy(buffer + offset, golden_data[i].msg,
                                strlen(golden_data[i].msg));
 
-               check = sdb_proto_send(conn->fd, msg_len, buffer);
+               check = sdb_write(conn->fd, msg_len, buffer);
                fail_unless(check == (ssize_t)msg_len,
-                               "sdb_proto_send(%s) = %zi; expected: %zu",
+                               "sdb_write(%s) = %zi; expected: %zu",
                                check, msg_len);
 
                mock_conn_rewind(conn);
-               check = sdb_connection_read(conn);
+               check = sdb_connection_handle(conn);
                fail_unless(check == (ssize_t)msg_len,
-                               "sdb_connection_read() = %zi; expected: %zu",
+                               "sdb_connection_handle() = %zi; expected: %zu",
                                check, msg_len);
 
                if (golden_data[i].buf_len) {
                        /* partial commands need to be stored in the object */
                        fail_unless(conn->cmd == golden_data[i].code,
-                                       "sdb_connection_read() set partial command "
+                                       "sdb_connection_handle() set partial command "
                                        "to %u; expected: %u", conn->cmd, golden_data[i].code);
                        fail_unless(conn->cmd_len > golden_data[i].buf_len,
-                                       "sdb_connection_read() set partial command length "
+                                       "sdb_connection_handle() set partial command length "
                                        "to %u; expected: > %u", conn->cmd_len,
                                        golden_data[i].buf_len);
                }
                else {
                        fail_unless(conn->cmd == SDB_CONNECTION_IDLE,
-                                       "sdb_connection_read() did not reset command; "
+                                       "sdb_connection_handle() did not reset command; "
                                        "got %u; expected: %u", conn->cmd, SDB_CONNECTION_IDLE);
                        fail_unless(conn->cmd_len == 0,
-                                       "sdb_connection_read() did not reset command length; "
+                                       "sdb_connection_handle() did not reset command length; "
                                        "got %u; expected: 0", conn->cmd_len);
                }
 
                fail_unless(sdb_strbuf_len(conn->buf) == golden_data[i].buf_len,
-                               "sdb_connection_read() left %zu bytes in the buffer; "
+                               "sdb_connection_handle() left %zu bytes in the buffer; "
                                "expected: %zu", sdb_strbuf_len(conn->buf),
                                golden_data[i].buf_len);
 
                if (golden_data[i].err) {
                        const char *err = sdb_strbuf_string(conn->errbuf);
                        fail_unless(strcmp(err, golden_data[i].err) == 0,
-                                       "sdb_connection_read(): got error '%s'; "
+                                       "sdb_connection_handle(): got error '%s'; "
                                        "expected: '%s'", err, golden_data[i].err);
                }
                else
                        fail_unless(sdb_strbuf_len(conn->errbuf) == 0,
-                                       "sdb_connection_read() left %zu bytes in the error "
+                                       "sdb_connection_handle() left %zu bytes in the error "
                                        "buffer; expected: 0", sdb_strbuf_len(conn->errbuf));
        }
 
@@ -421,10 +436,8 @@ START_TEST(test_conn_io)
 }
 END_TEST
 
-Suite *
-fe_conn_suite(void)
+TEST_MAIN("frontend::connection")
 {
-       Suite *s = suite_create("frontend::connection");
        TCase *tc;
 
        char *tmp = sdb_get_current_user();
@@ -436,10 +449,9 @@ fe_conn_suite(void)
        tcase_add_test(tc, test_conn_accept);
        tcase_add_test(tc, test_conn_setup);
        tcase_add_test(tc, test_conn_io);
-       suite_add_tcase(s, tc);
-
-       return s;
-} /* fe_conn_suite */
+       ADD_TCASE(tc);
+}
+TEST_MAIN_END
 
 /* vim: set tw=78 sw=4 ts=4 noexpandtab : */