diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | ChangeLog.pre-2-0 | 4 | ||||
-rw-r--r-- | ChangeLog.pre-2-10 | 4 | ||||
-rw-r--r-- | ChangeLog.pre-2-12 | 4 | ||||
-rw-r--r-- | ChangeLog.pre-2-2 | 4 | ||||
-rw-r--r-- | ChangeLog.pre-2-4 | 4 | ||||
-rw-r--r-- | ChangeLog.pre-2-6 | 4 | ||||
-rw-r--r-- | ChangeLog.pre-2-8 | 4 | ||||
-rw-r--r-- | tests/.cvsignore | 1 | ||||
-rw-r--r-- | tests/Makefile.am | 4 | ||||
-rw-r--r-- | tests/tree-test.c | 108 |
11 files changed, 128 insertions, 17 deletions
@@ -1,9 +1,9 @@ Sun Jan 3 01:38:14 EST 1999 Jeff Garzik <jgarzik@pobox.com> * tests/Makefile.am: - add array-test.c + add array-test.c, tree-test.c - * tests/array-test.c: + * tests/array-test.c, tests/tree-test.c: New module, tests array family * tests/hash-test.c, tests/list-test.c, tests/slist-test.c, diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index c31a4bd34..d78920d2d 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,9 +1,9 @@ Sun Jan 3 01:38:14 EST 1999 Jeff Garzik <jgarzik@pobox.com> * tests/Makefile.am: - add array-test.c + add array-test.c, tree-test.c - * tests/array-test.c: + * tests/array-test.c, tests/tree-test.c: New module, tests array family * tests/hash-test.c, tests/list-test.c, tests/slist-test.c, diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index c31a4bd34..d78920d2d 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,9 +1,9 @@ Sun Jan 3 01:38:14 EST 1999 Jeff Garzik <jgarzik@pobox.com> * tests/Makefile.am: - add array-test.c + add array-test.c, tree-test.c - * tests/array-test.c: + * tests/array-test.c, tests/tree-test.c: New module, tests array family * tests/hash-test.c, tests/list-test.c, tests/slist-test.c, diff --git a/ChangeLog.pre-2-12 b/ChangeLog.pre-2-12 index c31a4bd34..d78920d2d 100644 --- a/ChangeLog.pre-2-12 +++ b/ChangeLog.pre-2-12 @@ -1,9 +1,9 @@ Sun Jan 3 01:38:14 EST 1999 Jeff Garzik <jgarzik@pobox.com> * tests/Makefile.am: - add array-test.c + add array-test.c, tree-test.c - * tests/array-test.c: + * tests/array-test.c, tests/tree-test.c: New module, tests array family * tests/hash-test.c, tests/list-test.c, tests/slist-test.c, diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index c31a4bd34..d78920d2d 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,9 +1,9 @@ Sun Jan 3 01:38:14 EST 1999 Jeff Garzik <jgarzik@pobox.com> * tests/Makefile.am: - add array-test.c + add array-test.c, tree-test.c - * tests/array-test.c: + * tests/array-test.c, tests/tree-test.c: New module, tests array family * tests/hash-test.c, tests/list-test.c, tests/slist-test.c, diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index c31a4bd34..d78920d2d 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,9 +1,9 @@ Sun Jan 3 01:38:14 EST 1999 Jeff Garzik <jgarzik@pobox.com> * tests/Makefile.am: - add array-test.c + add array-test.c, tree-test.c - * tests/array-test.c: + * tests/array-test.c, tests/tree-test.c: New module, tests array family * tests/hash-test.c, tests/list-test.c, tests/slist-test.c, diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index c31a4bd34..d78920d2d 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,9 +1,9 @@ Sun Jan 3 01:38:14 EST 1999 Jeff Garzik <jgarzik@pobox.com> * tests/Makefile.am: - add array-test.c + add array-test.c, tree-test.c - * tests/array-test.c: + * tests/array-test.c, tests/tree-test.c: New module, tests array family * tests/hash-test.c, tests/list-test.c, tests/slist-test.c, diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index c31a4bd34..d78920d2d 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,9 +1,9 @@ Sun Jan 3 01:38:14 EST 1999 Jeff Garzik <jgarzik@pobox.com> * tests/Makefile.am: - add array-test.c + add array-test.c, tree-test.c - * tests/array-test.c: + * tests/array-test.c, tests/tree-test.c: New module, tests array family * tests/hash-test.c, tests/list-test.c, tests/slist-test.c, diff --git a/tests/.cvsignore b/tests/.cvsignore index 160f859e3..007e6463f 100644 --- a/tests/.cvsignore +++ b/tests/.cvsignore @@ -30,3 +30,4 @@ relation-test slist-test string-test array-test +tree-test diff --git a/tests/Makefile.am b/tests/Makefile.am index b942c89c3..863119639 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -9,7 +9,8 @@ TESTS = \ node-test \ relation-test \ slist-test \ - string-test + string-test \ + tree-test noinst_PROGRAMS = $(TESTS) @@ -21,4 +22,5 @@ node_test_LDADD = ../libglib.la relation_test_LDADD = ../libglib.la slist_test_LDADD = ../libglib.la string_test_LDADD = ../libglib.la +tree_test_LDADD = ../libglib.la diff --git a/tests/tree-test.c b/tests/tree-test.c new file mode 100644 index 000000000..3b8d45e53 --- /dev/null +++ b/tests/tree-test.c @@ -0,0 +1,108 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ +#undef G_LOG_DOMAIN + +#include <stdio.h> +#include <string.h> +#include "glib.h" + +int array[10000]; +gboolean failed = FALSE; + +#define TEST(m,cond) G_STMT_START { failed = !(cond); \ +if (failed) \ + { if (!m) \ + g_print ("\n(%s:%d) failed for: %s\n", __FILE__, __LINE__, ( # cond )); \ + else \ + g_print ("\n(%s:%d) failed for: %s: (%s)\n", __FILE__, __LINE__, ( # cond ), (gchar*)m); \ + } \ +else \ + g_print ("."); fflush (stdout); \ +} G_STMT_END + +#define C2P(c) ((gpointer) ((long) (c))) +#define P2C(p) ((gchar) ((long) (p))) + +#define GLIB_TEST_STRING "el dorado " +#define GLIB_TEST_STRING_5 "el do" + +typedef struct { + guint age; + gchar name[40]; +} GlibTestInfo; + + +static gint +my_compare (gconstpointer a, + gconstpointer b) +{ + const char *cha = a; + const char *chb = b; + + return *cha - *chb; +} + +static gint +my_traverse (gpointer key, + gpointer value, + gpointer data) +{ + char *ch = key; + g_assert ((*ch) > 0); + return FALSE; +} + +int +main (int argc, + char *argv[]) +{ + gint i, j; + GTree *tree; + char chars[62]; + + tree = g_tree_new (my_compare); + i = 0; + for (j = 0; j < 10; j++, i++) + { + chars[i] = '0' + j; + g_tree_insert (tree, &chars[i], &chars[i]); + } + for (j = 0; j < 26; j++, i++) + { + chars[i] = 'A' + j; + g_tree_insert (tree, &chars[i], &chars[i]); + } + for (j = 0; j < 26; j++, i++) + { + chars[i] = 'a' + j; + g_tree_insert (tree, &chars[i], &chars[i]); + } + + g_tree_traverse (tree, my_traverse, G_IN_ORDER, NULL); + + g_assert (g_tree_nnodes (tree) == (10 + 26 + 26)); + + for (i = 0; i < 10; i++) + g_tree_remove (tree, &chars[i]); + + g_tree_traverse (tree, my_traverse, G_IN_ORDER, NULL); + + return 0; +} + |