diff options
Diffstat (limited to 'tests/utest_llist.c')
-rw-r--r-- | tests/utest_llist.c | 156 |
1 files changed, 86 insertions, 70 deletions
diff --git a/tests/utest_llist.c b/tests/utest_llist.c index b84134d..6ec1a70 100644 --- a/tests/utest_llist.c +++ b/tests/utest_llist.c @@ -17,24 +17,32 @@ void llist_free(llist_t *elm, void (*freeit)(void *data)); */ char *elem[] = { "Alpha", "Bravo", "Charlie", "Delta", "Echo", "Foxtrot", - "Golf", "Hotel", "India", "Juliet", "Kilo", NULL }; + "Golf", "Hotel", "India", "Juliet", "Kilo", NULL +}; char *freemelist = NULL; -void freeme ( void *elem) { - if (!freemelist) { - freemelist = xmalloc (strlen(elem)+1); - memcpy(freemelist,elem,strlen(elem)+1); - } else { - freemelist= xrealloc ( freemelist, strlen(freemelist) + - strlen(elem)+1); - memcpy(freemelist+strlen(freemelist),elem,strlen(elem)+1); - } +void +freeme (void *elem) +{ + if (!freemelist) + { + freemelist = xmalloc (strlen (elem) + 1); + memcpy (freemelist, elem, strlen (elem) + 1); + } + else + { + freemelist = xrealloc (freemelist, strlen (freemelist) + + strlen (elem) + 1); + memcpy (freemelist + strlen (freemelist), elem, strlen (elem) + 1); + } } -char *test_basic_api() { - int result,count; +char * +test_basic_api () +{ + int result, count; llist_t *my_list = NULL; llist_t *client_list = NULL; char *data; @@ -42,94 +50,102 @@ char *test_basic_api() { /* Check adding to a new list */ llist_add_to (&my_list, elem[2]); llist_add_to (&my_list, elem[1]); - - result=memcmp(elem[1], my_list->data, strlen(elem[1])); - mu_assert("add_to failed",result == 0); - - + + result = memcmp (elem[1], my_list->data, strlen (elem[1])); + mu_assert ("add_to failed", result == 0); + + /* Check adding to the end of an existing list */ llist_add_to_end (&my_list, elem[3]); - mu_assert("add_to_end failed",result == 0); - + mu_assert ("add_to_end (1) failed", + memcmp (elem[1], my_list->data, strlen (elem[1])) == 0); + client_list = my_list; - while ( client_list->link ) { - client_list = client_list->link; - } - result=memcmp(elem[3], client_list->data, strlen(elem[3])); - mu_assert("add_to_end failed",result == 0); - + while (client_list->link) + { + client_list = client_list->link; + } + result = memcmp (elem[3], client_list->data, strlen (elem[3])); + mu_assert ("add_to_end (2) failed", result == 0); + /* verify add_to on an existing list pushes to top */ llist_add_to (&my_list, elem[0]); - result=memcmp(elem[0], my_list->data, strlen(elem[0])); - mu_assert("add_to_end (pass 2) failed",result == 0); - + mu_assert ("add_to (pass 2) failed", + memcmp (elem[0], my_list->data, strlen (elem[0])) == 0); + /* check pop pops the top */ client_list = my_list->link; data = llist_pop (&my_list); - result=memcmp(elem[0], data, strlen(elem[0])); - mu_assert("llist pop failed",result == 0); - mu_assert("llist pop (2) failed", client_list == my_list); - result=memcmp(elem[1], my_list->data, strlen(elem[1])); - mu_assert("llist pop (3) failed",result == 0); + result = memcmp (elem[0], data, strlen (elem[0])); + mu_assert ("llist pop failed", result == 0); + mu_assert ("llist pop (2) failed", client_list == my_list); + result = memcmp (elem[1], my_list->data, strlen (elem[1])); + mu_assert ("llist pop (3) failed", result == 0); /* check unlinking */ llist_add_to (&my_list, elem[0]); client_list = my_list->link; - + llist_unlink (&my_list, my_list->link); - result=memcmp(elem[0], my_list->data, strlen(elem[0])); - mu_assert("llist unlink failed",result == 0); + result = memcmp (elem[0], my_list->data, strlen (elem[0])); + mu_assert ("llist unlink failed", result == 0); client_list = my_list->link; - result=memcmp(elem[2], client_list->data, strlen(elem[2])); - mu_assert("llist unlink (2) failed",result == 0); + result = memcmp (elem[2], client_list->data, strlen (elem[2])); + mu_assert ("llist unlink (2) failed", result == 0); llist_unlink (&my_list, my_list); - result=memcmp(elem[2], my_list->data, strlen(elem[2])); - mu_assert("llist unlink (3) failed",result == 0); + result = memcmp (elem[2], my_list->data, strlen (elem[2])); + mu_assert ("llist unlink (3) failed", result == 0); /* check freeing the entire list */ llist_add_to (&my_list, elem[1]); llist_add_to (&my_list, elem[0]); - result=1; + result = 1; client_list = my_list; - while (client_list->link) { - result++; - client_list = client_list->link; - } + while (client_list->link) + { + result++; + client_list = client_list->link; + } llist_free (my_list, &freeme); data = freemelist; freemelist = NULL; - for (count=0; count < result; count++) { - freeme(elem[count]); - } - result=memcmp(data, freemelist, strlen(freemelist)); - mu_assert("llist free failed",result == 0); + for (count = 0; count < result; count++) + { + freeme (elem[count]); + } + result = memcmp (data, freemelist, strlen (freemelist)); + mu_assert ("llist free failed", result == 0); free (data); free (freemelist); freemelist = NULL; data = NULL; return 0; - } - - -char *all_tests() { - mu_run_test(test_basic_api); - return 0; - } - -int main(int argc, char **argv) { - char *result = all_tests(); - // printf ("%d\n", (int) result); - if (result != 0) { - printf("%s\n", result); - } - /* +} + + +char * +all_tests () +{ + mu_run_test (test_basic_api); + return 0; +} + +int +main (int argc, char **argv) +{ + char *result = all_tests (); + // printf ("%d\n", (int) result); + if (result != 0) + { + printf ("%s\n", result); + } + /* else { - printf("ALL TESTS PASSED\n"); + printf("ALL TESTS PASSED\n"); } printf("Tests run: %d\n", tests_run); - */ - return result != 0; - } - + */ + return result != 0; +} |