X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcutil%2Ftests%2Ftest_silclist.c;h=70c1cb0eb167fc98b756c51cfb65f02f2f55cf58;hb=480c4f6e83cbdec38af98419430450b9fd8600f8;hp=3b0ad86dbce02400f4de60000e5f6e14f873dd02;hpb=40f8443d8d3a6577336ee66d18e04d9ac4d956bb;p=runtime.git diff --git a/lib/silcutil/tests/test_silclist.c b/lib/silcutil/tests/test_silclist.c index 3b0ad86d..70c1cb0e 100644 --- a/lib/silcutil/tests/test_silclist.c +++ b/lib/silcutil/tests/test_silclist.c @@ -1,6 +1,6 @@ /* SilcList tests */ -#include "silc.h" +#include "silcruntime.h" struct foo { int i; @@ -17,7 +17,7 @@ int main(int argc, char **argv) if (argc > 1 && !strcmp(argv[1], "-d")) { silc_log_debug(TRUE); silc_log_debug_hexdump(TRUE); - silc_log_set_debug_string("*list*"); + silc_log_set_debug_string("*list*,*errno*"); } silc_list_init_prev(list, struct foo, next, prev); @@ -38,11 +38,37 @@ int main(int argc, char **argv) goto err; f4->i = 4; + SILC_LOG_DEBUG(("Add one entry")); + silc_list_add(list, f1); + silc_list_start(list); + while ((f = silc_list_get(list)) != SILC_LIST_END) { + SILC_LOG_DEBUG(("entry %d, %p, next=%p, prev=%p", f->i, f, f->next, + f->prev)); + } + SILC_LOG_DEBUG(("Delete the entry")); + silc_list_del(list, f1); + silc_list_start(list); + while ((f = silc_list_get(list)) != SILC_LIST_END) + goto err; + SILC_LOG_DEBUG(("head=%p", list.head)); + SILC_LOG_DEBUG(("Re-add the entry")); + silc_list_add(list, f1); + silc_list_start(list); + while ((f = silc_list_get(list)) != SILC_LIST_END) { + SILC_LOG_DEBUG(("entry %d, %p, next=%p, prev=%p", f->i, f, f->next, + f->prev)); + } + SILC_LOG_DEBUG(("Delete the entry")); + silc_list_del(list, f1); + silc_list_start(list); + while ((f = silc_list_get(list)) != SILC_LIST_END) + goto err; + SILC_LOG_DEBUG(("insert f4=%p at head")); silc_list_insert(list, NULL, f4); silc_list_start(list); while ((f = silc_list_get(list)) != SILC_LIST_END) { - SILC_LOG_DEBUG(("entry %d, %p, next=%p, prev=%p", f->i, f, f->next, + SILC_LOG_DEBUG(("entry %d, %p, next=%p, prev=%p", f->i, f, f->next, f->prev)); } @@ -60,7 +86,7 @@ int main(int argc, char **argv) silc_list_start(list); while ((f = silc_list_get(list)) != SILC_LIST_END) { - SILC_LOG_DEBUG(("entry %d, %p, next=%p, prev=%p", f->i, f, f->next, + SILC_LOG_DEBUG(("entry %d, %p, next=%p, prev=%p", f->i, f, f->next, f->prev)); } @@ -68,7 +94,7 @@ int main(int argc, char **argv) silc_list_insert(list, f1, f4); silc_list_start(list); while ((f = silc_list_get(list)) != SILC_LIST_END) { - SILC_LOG_DEBUG(("entry %d, %p, next=%p, prev=%p", f->i, f, f->next, + SILC_LOG_DEBUG(("entry %d, %p, next=%p, prev=%p", f->i, f, f->next, f->prev)); } @@ -79,7 +105,7 @@ int main(int argc, char **argv) silc_list_insert(list, f3, f4); silc_list_start(list); while ((f = silc_list_get(list)) != SILC_LIST_END) { - SILC_LOG_DEBUG(("entry %d, %p, next=%p, prev=%p", f->i, f, f->next, + SILC_LOG_DEBUG(("entry %d, %p, next=%p, prev=%p", f->i, f, f->next, f->prev)); } @@ -90,24 +116,24 @@ int main(int argc, char **argv) silc_list_insert(list, NULL, f4); silc_list_start(list); while ((f = silc_list_get(list)) != SILC_LIST_END) { - SILC_LOG_DEBUG(("entry %d, %p, next=%p, prev=%p", f->i, f, f->next, + SILC_LOG_DEBUG(("entry %d, %p, next=%p, prev=%p", f->i, f, f->next, f->prev)); } silc_list_start(list); silc_list_del(list, f1); while ((f = silc_list_get(list)) != SILC_LIST_END) { - SILC_LOG_DEBUG(("entry %d, %p, next=%p, prev=%p", f->i, f, f->next, + SILC_LOG_DEBUG(("entry %d, %p, next=%p, prev=%p", f->i, f, f->next, f->prev)); } silc_list_del(list, f3); while ((f = silc_list_get(list)) != SILC_LIST_END) { - SILC_LOG_DEBUG(("entry %d, %p, next=%p, prev=%p", f->i, f, f->next, + SILC_LOG_DEBUG(("entry %d, %p, next=%p, prev=%p", f->i, f, f->next, f->prev)); } silc_list_del(list, f2); while ((f = silc_list_get(list)) != SILC_LIST_END) { - SILC_LOG_DEBUG(("entry %d, %p, next=%p, prev=%p", f->i, f, f->next, + SILC_LOG_DEBUG(("entry %d, %p, next=%p, prev=%p", f->i, f, f->next, f->prev)); } @@ -117,7 +143,7 @@ int main(int argc, char **argv) silc_list_start(list); while ((f = silc_list_get(list)) != SILC_LIST_END) { - SILC_LOG_DEBUG(("entry %d, %p, next=%p, prev=%p", f->i, f, f->next, + SILC_LOG_DEBUG(("entry %d, %p, next=%p, prev=%p", f->i, f, f->next, f->prev)); } @@ -125,15 +151,22 @@ int main(int argc, char **argv) silc_list_start(list); while ((f = silc_list_get(list)) != SILC_LIST_END) { - SILC_LOG_DEBUG(("entry %d, %p, next=%p, prev=%p", f->i, f, f->next, + SILC_LOG_DEBUG(("entry %d, %p, next=%p, prev=%p", f->i, f, f->next, f->prev)); } + while ((f = silc_list_pop(list)) != SILC_LIST_END) { + SILC_LOG_DEBUG(("POPPED entry %d, %p, next=%p, prev=%p", f->i, f, f->next, + f->prev)); + } + if (silc_list_count(list)) + goto err; + success = TRUE; err: SILC_LOG_DEBUG(("Testing was %s", success ? "SUCCESS" : "FAILURE")); fprintf(stderr, "Testing was %s\n", success ? "SUCCESS" : "FAILURE"); - return success; + return !success; }