Blame tests/unittests/torture_list.c

Packit Service 31306d
#include "config.h"
Packit Service 31306d
Packit Service 31306d
#define LIBSSH_STATIC
Packit Service 31306d
Packit Service 31306d
#include "torture.h"
Packit Service 31306d
#include "error.c"
Packit Service 31306d
#include "misc.c"
Packit Service 31306d
Packit Service 31306d
static void torture_ssh_list_new(void **state) {
Packit Service 31306d
    struct ssh_list *xlist;
Packit Service 31306d
Packit Service 31306d
    (void) state;
Packit Service 31306d
Packit Service 31306d
    xlist = ssh_list_new();
Packit Service 31306d
Packit Service 31306d
    assert_non_null(xlist);
Packit Service 31306d
    assert_null(xlist->root);
Packit Service 31306d
    assert_null(xlist->end);
Packit Service 31306d
Packit Service 31306d
    assert_int_equal(ssh_list_count(xlist), 0);
Packit Service 31306d
Packit Service 31306d
    ssh_list_free(xlist);
Packit Service 31306d
}
Packit Service 31306d
Packit Service 31306d
static void torture_ssh_list_append(void **state) {
Packit Service 31306d
    struct ssh_list *xlist;
Packit Service 31306d
    int rc;
Packit Service 31306d
Packit Service 31306d
    (void) state;
Packit Service 31306d
Packit Service 31306d
    xlist = ssh_list_new();
Packit Service 31306d
    assert_non_null(xlist);
Packit Service 31306d
Packit Service 31306d
    rc = ssh_list_append(xlist, "item1");
Packit Service 31306d
    assert_true(rc == 0);
Packit Service 31306d
    assert_non_null(xlist->root);
Packit Service 31306d
    assert_non_null(xlist->root->data);
Packit Service 31306d
    assert_non_null(xlist->end);
Packit Service 31306d
    assert_non_null(xlist->end->data);
Packit Service 31306d
    assert_string_equal((const char *) xlist->root->data, "item1");
Packit Service 31306d
    assert_string_equal((const char *) xlist->end->data, "item1");
Packit Service 31306d
Packit Service 31306d
    rc = ssh_list_append(xlist, "item2");
Packit Service 31306d
    assert_true(rc == 0);
Packit Service 31306d
    assert_non_null(xlist->root);
Packit Service 31306d
    assert_non_null(xlist->root->data);
Packit Service 31306d
    assert_non_null(xlist->end);
Packit Service 31306d
    assert_non_null(xlist->end->data);
Packit Service 31306d
    assert_string_equal((const char *) xlist->root->data, "item1");
Packit Service 31306d
    assert_string_equal((const char *) xlist->end->data, "item2");
Packit Service 31306d
Packit Service 31306d
    rc = ssh_list_append(xlist, "item3");
Packit Service 31306d
    assert_true(rc == 0);
Packit Service 31306d
    assert_non_null(xlist->root);
Packit Service 31306d
    assert_non_null(xlist->root->data);
Packit Service 31306d
    assert_non_null(xlist->root->next);
Packit Service 31306d
    assert_non_null(xlist->root->next->data);
Packit Service 31306d
    assert_non_null(xlist->root->next->next);
Packit Service 31306d
    assert_non_null(xlist->root->next->next->data);
Packit Service 31306d
    assert_non_null(xlist->end);
Packit Service 31306d
    assert_non_null(xlist->end->data);
Packit Service 31306d
    assert_string_equal((const char *) xlist->root->data, "item1");
Packit Service 31306d
    assert_string_equal((const char *) xlist->root->next->data, "item2");
Packit Service 31306d
    assert_string_equal((const char *) xlist->root->next->next->data, "item3");
Packit Service 31306d
    assert_string_equal((const char *) xlist->end->data, "item3");
Packit Service 31306d
Packit Service 31306d
    assert_int_equal(ssh_list_count(xlist), 3);
Packit Service 31306d
Packit Service 31306d
    ssh_list_free(xlist);
Packit Service 31306d
}
Packit Service 31306d
Packit Service 31306d
static void torture_ssh_list_prepend(void **state) {
Packit Service 31306d
    struct ssh_list *xlist;
Packit Service 31306d
    int rc;
Packit Service 31306d
Packit Service 31306d
    (void) state;
Packit Service 31306d
Packit Service 31306d
    xlist = ssh_list_new();
Packit Service 31306d
    assert_non_null(xlist);
Packit Service 31306d
Packit Service 31306d
    rc = ssh_list_prepend(xlist, "item1");
Packit Service 31306d
    assert_true(rc == 0);
Packit Service 31306d
    assert_non_null(xlist->root);
Packit Service 31306d
    assert_non_null(xlist->root->data);
Packit Service 31306d
    assert_non_null(xlist->end);
Packit Service 31306d
    assert_non_null(xlist->end->data);
Packit Service 31306d
    assert_string_equal((const char *) xlist->root->data, "item1");
Packit Service 31306d
    assert_string_equal((const char *) xlist->end->data, "item1");
Packit Service 31306d
Packit Service 31306d
    rc = ssh_list_append(xlist, "item2");
Packit Service 31306d
    assert_true(rc == 0);
Packit Service 31306d
    assert_non_null(xlist->root);
Packit Service 31306d
    assert_non_null(xlist->root->data);
Packit Service 31306d
    assert_non_null(xlist->end);
Packit Service 31306d
    assert_non_null(xlist->end->data);
Packit Service 31306d
    assert_string_equal((const char *) xlist->root->data, "item1");
Packit Service 31306d
    assert_string_equal((const char *) xlist->end->data, "item2");
Packit Service 31306d
Packit Service 31306d
    rc = ssh_list_prepend(xlist, "item3");
Packit Service 31306d
    assert_true(rc == 0);
Packit Service 31306d
    assert_non_null(xlist->root);
Packit Service 31306d
    assert_non_null(xlist->root->data);
Packit Service 31306d
    assert_non_null(xlist->root->next);
Packit Service 31306d
    assert_non_null(xlist->root->next->data);
Packit Service 31306d
    assert_non_null(xlist->root->next->next);
Packit Service 31306d
    assert_non_null(xlist->end);
Packit Service 31306d
    assert_non_null(xlist->end->data);
Packit Service 31306d
    assert_string_equal((const char *) xlist->root->data, "item3");
Packit Service 31306d
    assert_string_equal((const char *) xlist->root->next->data, "item1");
Packit Service 31306d
    assert_string_equal((const char *) xlist->root->next->next->data, "item2");
Packit Service 31306d
    assert_string_equal((const char *) xlist->end->data, "item2");
Packit Service 31306d
Packit Service 31306d
    assert_int_equal(ssh_list_count(xlist), 3);
Packit Service 31306d
Packit Service 31306d
    ssh_list_free(xlist);
Packit Service 31306d
}
Packit Service 31306d
Packit Service 31306d
int torture_run_tests(void) {
Packit Service 31306d
    int rc;
Packit Service 31306d
    struct CMUnitTest tests[] = {
Packit Service 31306d
        cmocka_unit_test(torture_ssh_list_new),
Packit Service 31306d
        cmocka_unit_test(torture_ssh_list_append),
Packit Service 31306d
        cmocka_unit_test(torture_ssh_list_prepend),
Packit Service 31306d
    };
Packit Service 31306d
Packit Service 31306d
    ssh_init();
Packit Service 31306d
    torture_filter_tests(tests);
Packit Service 31306d
    rc = cmocka_run_group_tests(tests, NULL, NULL);
Packit Service 31306d
    ssh_finalize();
Packit Service 31306d
    return rc;
Packit Service 31306d
}