Newer
Older
libkc / modules / test / src / test_socket.c
Nomura Kei on 29 May 1 KB update
#include <stdio.h>
#include <errno.h>

#include <kc.h>
#include <kc_ut.h>
#include <kc_assert.h>
#include <kc_memory.h>
#include <kc_threads.h>
#include <kc_socket.h>

#include "ut.h"

// プロトタイプ宣言
static void test_socket_new(void);

/**
 * KcSocket 単体テストスイート
 */
void suite_socket(void)
{
    KcUt *ut = KcUt_get_instance();
    ut->add(ut, UT_TESTCASE, "socket new/delete", test_socket_new);
}

/**
 * Socket 生成/破棄。
 *
 * @process KcSocket_new を実行する。。
 * @result KcSocket が生成されること。
 *
 * @process KcSocket_delete にて Queue を破棄する。
 * @result Socket が破棄されること。
 */
static void test_socket_new(void)
{
    KcSocket *server = KcSocket_new(SOCK_STREAM, AF_UNSPEC);
    assert_not_null(server);

    KcSocket *client = KcSocket_new(SOCK_STREAM, AF_UNSPEC);
    assert_not_null(server);

    bool ret = server->bind(server, "127.0.0.1", "5000");
    assert_true(ret);
    ret = server->listen(server, 1);
    assert_true(ret);

    ret = client->connect(client, "127.0.0.1", "5000", NULL, NULL);
    assert_true(ret);

    KcSocket_delete(server);
    KcSocket_delete(client);
}