From 2c310c6425105cf620b627545ccde0baf117c31d Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Wed, 4 May 2005 13:18:31 +0000 Subject: [PATCH] Added. --- lib/silcutil/tests/Makefile.am | 4 +- lib/silcutil/tests/test_silclist.c | 86 ++++++++++++++++++++++++++++++ 2 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 lib/silcutil/tests/test_silclist.c diff --git a/lib/silcutil/tests/Makefile.am b/lib/silcutil/tests/Makefile.am index e0025733..8462ffbd 100644 --- a/lib/silcutil/tests/Makefile.am +++ b/lib/silcutil/tests/Makefile.am @@ -17,11 +17,13 @@ AUTOMAKE_OPTIONS = 1.0 no-dependencies foreign -bin_PROGRAMS = test_silcstrutil test_silcstringprep test_silchashtable +bin_PROGRAMS = test_silcstrutil test_silcstringprep test_silchashtable \ + test_silclist test_silcstrutil_SOURCES = test_silcstrutil.c test_silcstringprep_SOURCES = test_silcstringprep.c test_silchashtable_SOURCES = test_silchashtable.c +test_silclist_SOURCES = test_silclist.c LIBS = $(SILC_COMMON_LIBS) LDADD = -L.. -L../.. -lsilc diff --git a/lib/silcutil/tests/test_silclist.c b/lib/silcutil/tests/test_silclist.c new file mode 100644 index 00000000..93aad06e --- /dev/null +++ b/lib/silcutil/tests/test_silclist.c @@ -0,0 +1,86 @@ +/* SilcList tests */ + +#include "silcincludes.h" + +struct foo { + int i; + struct foo *next; +}; + +int main(int argc, char **argv) +{ + bool success = FALSE; + SilcList list; + struct foo *f, *f1, *f2, *f3; + + if (argc > 1 && !strcmp(argv[1], "-d")) { + silc_debug = 1; + silc_debug_hexdump = 1; + silc_log_set_debug_string("*list*"); + } + + silc_list_init(list, struct foo, next); + f1 = silc_calloc(1, sizeof(*f1)); + if (!f1) + goto err; + f1->i = 1; + f2 = silc_calloc(1, sizeof(*f2)); + if (!f2) + goto err; + f2->i = 2; + f3 = silc_calloc(1, sizeof(*f3)); + if (!f3) + goto err; + f3->i = 3; + + silc_list_add(list, f1); + silc_list_add(list, f2); + silc_list_add(list, f3); + + SILC_LOG_DEBUG(("f1=%p", f1)); + SILC_LOG_DEBUG(("f2=%p", f2)); + SILC_LOG_DEBUG(("f3=%p", f3)); + + silc_list_start(list); + while ((f = silc_list_get(list)) != SILC_LIST_END) { + SILC_LOG_DEBUG(("entry %d, %p, next=%p", f->i, f, f->next)); + } + + 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", f->i, f, f->next)); + } + silc_list_del(list, f3); + while ((f = silc_list_get(list)) != SILC_LIST_END) { + SILC_LOG_DEBUG(("entry %d, %p, next=%p", f->i, f, f->next)); + } + silc_list_del(list, f2); + while ((f = silc_list_get(list)) != SILC_LIST_END) { + SILC_LOG_DEBUG(("entry %d, %p, next=%p", f->i, f, f->next)); + } + + silc_list_add(list, f1); + silc_list_add(list, f2); + silc_list_add(list, f3); + + silc_list_start(list); + while ((f = silc_list_get(list)) != SILC_LIST_END) { + SILC_LOG_DEBUG(("entry %d, %p, next=%p", f->i, f, f->next)); + } + + silc_list_del(list, f2); + + silc_list_start(list); + while ((f = silc_list_get(list)) != SILC_LIST_END) { + SILC_LOG_DEBUG(("entry %d, %p, next=%p", f->i, f, f->next)); + } + + success = TRUE; + + err: + SILC_LOG_DEBUG(("Testing was %s", success ? "SUCCESS" : "FAILURE")); + fprintf(stderr, "Testing was %s\n", success ? "SUCCESS" : "FAILURE"); + + return success; +} -- 2.43.0