gettimeofday: port recent C++ fix to Emacs
[gnulib.git] / tests / test-array_oset.c
index 5aba7e0..1892032 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of ordered set data type implementation.
-   Copyright (C) 2006-2008 Free Software Foundation, Inc.
+   Copyright (C) 2006-2013 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2007.
 
    This program is free software: you can redistribute it and/or modify
 
 #include "gl_array_oset.h"
 
-#include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 
+#include "gl_xlist.h"
 #include "gl_array_list.h"
 #include "progname.h"
+#include "macros.h"
 
 static const char *objects[30] =
   {
@@ -32,18 +33,6 @@ static const char *objects[30] =
     "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "<", ">", "[", "]"
   };
 
-#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
-#define ASSERT(expr) \
-  do                                                                        \
-    {                                                                       \
-      if (!(expr))                                                          \
-        {                                                                   \
-          fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
-          fflush (stderr);                                                  \
-          abort ();                                                         \
-        }                                                                   \
-    }                                                                       \
-  while (0)
 #define RANDOM(n) (rand () % (n))
 #define RANDOM_OBJECT() objects[RANDOM (SIZEOF (objects))]
 
@@ -96,7 +85,8 @@ main (int argc, char *argv[])
     unsigned int repeat;
 
     /* Create set1.  */
-    set1 = gl_oset_create_empty (GL_ARRAY_OSET, (gl_setelement_compar_fn) strcmp, NULL);
+    set1 = gl_oset_nx_create_empty (GL_ARRAY_OSET, (gl_setelement_compar_fn) strcmp, NULL);
+    ASSERT (set1 != NULL);
 
     /* Create set2.  */
     set2 = gl_list_create_empty (GL_ARRAY_LIST, NULL, NULL, NULL, false);
@@ -107,10 +97,10 @@ main (int argc, char *argv[])
     for (i = 0; i < initial_size; i++)
       {
         const char *obj = RANDOM_OBJECT ();
-        ASSERT (gl_oset_add (set1, obj)
-               == (gl_sortedlist_search (set2, (gl_listelement_compar_fn)strcmp, obj) != NULL
-                   ? false
-                   : (gl_sortedlist_add (set2, (gl_listelement_compar_fn)strcmp, obj), true)));
+        ASSERT (gl_oset_nx_add (set1, obj)
+                == (gl_sortedlist_search (set2, (gl_listelement_compar_fn)strcmp, obj) != NULL
+                    ? false
+                    : (gl_sortedlist_add (set2, (gl_listelement_compar_fn)strcmp, obj), true)));
         check_all (set1, set2);
       }
 
@@ -123,23 +113,23 @@ main (int argc, char *argv[])
             {
               const char *obj = RANDOM_OBJECT ();
               ASSERT (gl_oset_search (set1, obj)
-                     == (gl_sortedlist_search (set2, (gl_listelement_compar_fn)strcmp, obj) != NULL));
+                      == (gl_sortedlist_search (set2, (gl_listelement_compar_fn)strcmp, obj) != NULL));
             }
             break;
           case 1:
             {
               const char *obj = RANDOM_OBJECT ();
-              ASSERT (gl_oset_add (set1, obj)
-                     == (gl_sortedlist_search (set2, (gl_listelement_compar_fn)strcmp, obj) != NULL
-                         ? false
-                         : (gl_sortedlist_add (set2, (gl_listelement_compar_fn)strcmp, obj), true)));
+              ASSERT (gl_oset_nx_add (set1, obj)
+                      == (gl_sortedlist_search (set2, (gl_listelement_compar_fn)strcmp, obj) != NULL
+                          ? false
+                          : (gl_sortedlist_add (set2, (gl_listelement_compar_fn)strcmp, obj), true)));
             }
             break;
           case 2:
             {
               const char *obj = RANDOM_OBJECT ();
               ASSERT (gl_oset_remove (set1, obj)
-                     == gl_sortedlist_remove (set2, (gl_listelement_compar_fn)strcmp, obj));
+                      == gl_sortedlist_remove (set2, (gl_listelement_compar_fn)strcmp, obj));
             }
             break;
           }