X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=tests%2Ftest-avltree_list.c;h=0cd19c2c5973e83eb92909462edbcb72ffc16369;hb=712cf13da004184edfac5a715118fe77bd257f1c;hp=9cf71c369e224e3a1fa3fc9f9407a3e76b762a91;hpb=c0fea97ccf33a4e6b6f9116216b1634663f29474;p=gnulib.git diff --git a/tests/test-avltree_list.c b/tests/test-avltree_list.c index 9cf71c369..0cd19c2c5 100644 --- a/tests/test-avltree_list.c +++ b/tests/test-avltree_list.c @@ -1,11 +1,11 @@ /* Test of sequential list data type implementation. - Copyright (C) 2006-2007 Free Software Foundation, Inc. + Copyright (C) 2006-2011 Free Software Foundation, Inc. Written by Bruno Haible , 2006. - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -13,18 +13,17 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ #include #include "gl_avltree_list.h" -#include #include #include "gl_array_list.h" #include "progname.h" +#include "macros.h" extern void gl_avltree_list_check_invariants (gl_list_t list); @@ -33,17 +32,6 @@ static const char *objects[15] = "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o" }; -#define SIZEOF(array) (sizeof (array) / sizeof (array[0])) -#define ASSERT(expr) \ - do \ - { \ - if (!(expr)) \ - { \ - fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \ - abort (); \ - } \ - } \ - while (0) #define RANDOM(n) (rand () % (n)) #define RANDOM_OBJECT() objects[RANDOM (SIZEOF (objects))] @@ -74,6 +62,8 @@ main (int argc, char *argv[]) { gl_list_t list1, list2, list3; + set_program_name (argv[0]); + /* Allow the user to provide a non-default random seed on the command line. */ if (argc > 1) srand (atoi (argv[1])); @@ -89,16 +79,19 @@ main (int argc, char *argv[]) contents[i] = RANDOM_OBJECT (); /* Create list1. */ - list1 = gl_list_create (GL_ARRAY_LIST, NULL, NULL, NULL, true, - initial_size, contents); + list1 = gl_list_nx_create (GL_ARRAY_LIST, NULL, NULL, NULL, true, + initial_size, contents); + ASSERT (list1 != NULL); /* Create list2. */ - list2 = gl_list_create_empty (GL_AVLTREE_LIST, NULL, NULL, NULL, true); + list2 = gl_list_nx_create_empty (GL_AVLTREE_LIST, NULL, NULL, NULL, true); + ASSERT (list2 != NULL); for (i = 0; i < initial_size; i++) - gl_list_add_last (list2, contents[i]); + ASSERT (gl_list_nx_add_last (list2, contents[i]) != NULL); /* Create list3. */ - list3 = gl_list_create (GL_AVLTREE_LIST, NULL, NULL, NULL, true, - initial_size, contents); + list3 = gl_list_nx_create (GL_AVLTREE_LIST, NULL, NULL, NULL, true, + initial_size, contents); + ASSERT (list3 != NULL); check_all (list1, list2, list3); @@ -114,15 +107,18 @@ main (int argc, char *argv[]) const char *obj = RANDOM_OBJECT (); gl_list_node_t node1, node2, node3; - node1 = gl_list_set_at (list1, index, obj); + node1 = gl_list_nx_set_at (list1, index, obj); + ASSERT (node1 != NULL); ASSERT (gl_list_get_at (list1, index) == obj); ASSERT (gl_list_node_value (list1, node1) == obj); - node2 = gl_list_set_at (list2, index, obj); + node2 = gl_list_nx_set_at (list2, index, obj); + ASSERT (node2 != NULL); ASSERT (gl_list_get_at (list2, index) == obj); ASSERT (gl_list_node_value (list2, node2) == obj); - node3 = gl_list_set_at (list3, index, obj); + node3 = gl_list_nx_set_at (list3, index, obj); + ASSERT (node3 != NULL); ASSERT (gl_list_get_at (list3, index) == obj); ASSERT (gl_list_node_value (list3, node3) == obj); @@ -196,9 +192,12 @@ main (int argc, char *argv[]) { const char *obj = RANDOM_OBJECT (); gl_list_node_t node1, node2, node3; - node1 = gl_list_add_first (list1, obj); - node2 = gl_list_add_first (list2, obj); - node3 = gl_list_add_first (list3, obj); + node1 = gl_list_nx_add_first (list1, obj); + ASSERT (node1 != NULL); + node2 = gl_list_nx_add_first (list2, obj); + ASSERT (node2 != NULL); + node3 = gl_list_nx_add_first (list3, obj); + ASSERT (node3 != NULL); ASSERT (gl_list_node_value (list1, node1) == obj); ASSERT (gl_list_node_value (list2, node2) == obj); ASSERT (gl_list_node_value (list3, node3) == obj); @@ -211,9 +210,12 @@ main (int argc, char *argv[]) { const char *obj = RANDOM_OBJECT (); gl_list_node_t node1, node2, node3; - node1 = gl_list_add_last (list1, obj); - node2 = gl_list_add_last (list2, obj); - node3 = gl_list_add_last (list3, obj); + node1 = gl_list_nx_add_last (list1, obj); + ASSERT (node1 != NULL); + node2 = gl_list_nx_add_last (list2, obj); + ASSERT (node2 != NULL); + node3 = gl_list_nx_add_last (list3, obj); + ASSERT (node3 != NULL); ASSERT (gl_list_node_value (list1, node1) == obj); ASSERT (gl_list_node_value (list2, node2) == obj); ASSERT (gl_list_node_value (list3, node3) == obj); @@ -228,15 +230,24 @@ main (int argc, char *argv[]) const char *obj1 = RANDOM_OBJECT (); const char *obj2 = RANDOM_OBJECT (); gl_list_node_t node1, node2, node3; - node1 = gl_list_add_first (list1, obj2); - node1 = gl_list_add_before (list1, node1, obj0); - node1 = gl_list_add_after (list1, node1, obj1); - node2 = gl_list_add_first (list2, obj2); - node2 = gl_list_add_before (list2, node2, obj0); - node2 = gl_list_add_after (list2, node2, obj1); - node3 = gl_list_add_first (list3, obj2); - node3 = gl_list_add_before (list3, node3, obj0); - node3 = gl_list_add_after (list3, node3, obj1); + node1 = gl_list_nx_add_first (list1, obj2); + ASSERT (node1 != NULL); + node1 = gl_list_nx_add_before (list1, node1, obj0); + ASSERT (node1 != NULL); + node1 = gl_list_nx_add_after (list1, node1, obj1); + ASSERT (node1 != NULL); + node2 = gl_list_nx_add_first (list2, obj2); + ASSERT (node2 != NULL); + node2 = gl_list_nx_add_before (list2, node2, obj0); + ASSERT (node2 != NULL); + node2 = gl_list_nx_add_after (list2, node2, obj1); + ASSERT (node2 != NULL); + node3 = gl_list_nx_add_first (list3, obj2); + ASSERT (node3 != NULL); + node3 = gl_list_nx_add_before (list3, node3, obj0); + ASSERT (node3 != NULL); + node3 = gl_list_nx_add_after (list3, node3, obj1); + ASSERT (node3 != NULL); ASSERT (gl_list_node_value (list1, node1) == obj1); ASSERT (gl_list_node_value (list2, node2) == obj1); ASSERT (gl_list_node_value (list3, node3) == obj1); @@ -256,9 +267,12 @@ main (int argc, char *argv[]) size_t index = RANDOM (gl_list_size (list1) + 1); const char *obj = RANDOM_OBJECT (); gl_list_node_t node1, node2, node3; - node1 = gl_list_add_at (list1, index, obj); - node2 = gl_list_add_at (list2, index, obj); - node3 = gl_list_add_at (list3, index, obj); + node1 = gl_list_nx_add_at (list1, index, obj); + ASSERT (node1 != NULL); + node2 = gl_list_nx_add_at (list2, index, obj); + ASSERT (node2 != NULL); + node3 = gl_list_nx_add_at (list3, index, obj); + ASSERT (node3 != NULL); ASSERT (gl_list_get_at (list1, index) == obj); ASSERT (gl_list_node_value (list1, node1) == obj); ASSERT (gl_list_get_at (list2, index) == obj);