index 13ae221a0f509e6f8402c2c5c10e838f4df8b2ef..11a93a24fbafeb8b495549a9a89b4c56c7aecc2e 100644 (file)
#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"
-#include <assert.h>
#include <check.h>
#include <stdlib.h>
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)
{
unlink(tmp_file);
+ conn->read = mock_conn_read;
+ conn->write = mock_conn_write;
+
conn->username = strdup(username);
- assert(conn->username);
+ ck_assert(conn->username != NULL);
conn->cmd = SDB_CONNECTION_IDLE;
conn->cmd_len = 0;
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));
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);
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
}
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));
}
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));
}
}
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();
- assert(tmp);
strcpy(username, tmp);
free(tmp);
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 : */