]> Savannah Git Hosting - gnulib.git/commitdiff
array-set, linkedhash-set, hash-set: Fix tests.
authorBruno Haible <bruno@clisp.org>
Tue, 11 Dec 2018 19:36:35 +0000 (20:36 +0100)
committerBruno Haible <bruno@clisp.org>
Tue, 11 Dec 2018 19:37:17 +0000 (20:37 +0100)
* tests/test-array_set.c (cmp_objects_in_array): New function.
(check_equals): Use it.
* tests/test-hash_set.c: Likewise.
* tests/test-linkedhash_set.c: Likewise.

ChangeLog
tests/test-array_set.c
tests/test-hash_set.c
tests/test-linkedhash_set.c

index 70e269d88494d4852e811c53ead5f45e4bae932b..019b8252e10158d13048d93c359b5f94bb3722ec 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2018-12-11  Bruno Haible  <bruno@clisp.org>
+
+       array-set, linkedhash-set, hash-set: Fix tests.
+       * tests/test-array_set.c (cmp_objects_in_array): New function.
+       (check_equals): Use it.
+       * tests/test-hash_set.c: Likewise.
+       * tests/test-linkedhash_set.c: Likewise.
+
 2018-12-08  Bruno Haible  <bruno@clisp.org>
 
        Fix comments.
index 35465ac2a70317109781e3f732d57c4b5f8f5de2..91f12943b9b05f98b235d522b16a9c6c2fb94735 100644 (file)
@@ -36,6 +36,14 @@ static const char *objects[30] =
 #define RANDOM(n) (rand () % (n))
 #define RANDOM_OBJECT() objects[RANDOM (SIZEOF (objects))]
 
+static int
+cmp_objects_in_array (const void *objptr1, const void *objptr2)
+{
+  const void *obj1 = *(const void * const *)objptr1;
+  const void *obj2 = *(const void * const *)objptr2;
+  return strcmp ((const char *) obj1, (const char *) obj2);
+}
+
 static void
 check_equals (gl_set_t set1, gl_oset_t set2)
 {
@@ -65,10 +73,8 @@ check_equals (gl_set_t set1, gl_oset_t set2)
 
   if (n > 0)
     {
-      qsort (elements_of_set1, n, sizeof (const void *),
-             (int (*) (const void *, const void *)) strcmp);
-      qsort (elements_of_set2, n, sizeof (const void *),
-             (int (*) (const void *, const void *)) strcmp);
+      qsort (elements_of_set1, n, sizeof (const void *), cmp_objects_in_array);
+      qsort (elements_of_set2, n, sizeof (const void *), cmp_objects_in_array);
     }
   for (i = 0; i < n; i++)
     ASSERT (elements_of_set1[i] == elements_of_set2[i]);
index d791074f4b185845501526f1bb13b58591f47916..a2138effd4e438e930fbfefd6bf922879ab2eed1 100644 (file)
@@ -35,6 +35,14 @@ static const char *objects[30] =
 #define RANDOM(n) (rand () % (n))
 #define RANDOM_OBJECT() objects[RANDOM (SIZEOF (objects))]
 
+static int
+cmp_objects_in_array (const void *objptr1, const void *objptr2)
+{
+  const void *obj1 = *(const void * const *)objptr1;
+  const void *obj2 = *(const void * const *)objptr2;
+  return strcmp ((const char *) obj1, (const char *) obj2);
+}
+
 static void
 check_equals (gl_set_t set1, gl_set_t set2)
 {
@@ -64,10 +72,8 @@ check_equals (gl_set_t set1, gl_set_t set2)
 
   if (n > 0)
     {
-      qsort (elements_of_set1, n, sizeof (const void *),
-             (int (*) (const void *, const void *)) strcmp);
-      qsort (elements_of_set2, n, sizeof (const void *),
-             (int (*) (const void *, const void *)) strcmp);
+      qsort (elements_of_set1, n, sizeof (const void *), cmp_objects_in_array);
+      qsort (elements_of_set2, n, sizeof (const void *), cmp_objects_in_array);
     }
   for (i = 0; i < n; i++)
     ASSERT (elements_of_set1[i] == elements_of_set2[i]);
index 7ff92e8aaf1ffe1d53c29418d5f51a9a60738452..6ad33a52a53d3bf1069c33f8cf61d093ade69fac 100644 (file)
@@ -35,6 +35,14 @@ static const char *objects[30] =
 #define RANDOM(n) (rand () % (n))
 #define RANDOM_OBJECT() objects[RANDOM (SIZEOF (objects))]
 
+static int
+cmp_objects_in_array (const void *objptr1, const void *objptr2)
+{
+  const void *obj1 = *(const void * const *)objptr1;
+  const void *obj2 = *(const void * const *)objptr2;
+  return strcmp ((const char *) obj1, (const char *) obj2);
+}
+
 static void
 check_equals (gl_set_t set1, gl_set_t set2)
 {
@@ -64,10 +72,8 @@ check_equals (gl_set_t set1, gl_set_t set2)
 
   if (n > 0)
     {
-      qsort (elements_of_set1, n, sizeof (const void *),
-             (int (*) (const void *, const void *)) strcmp);
-      qsort (elements_of_set2, n, sizeof (const void *),
-             (int (*) (const void *, const void *)) strcmp);
+      qsort (elements_of_set1, n, sizeof (const void *), cmp_objects_in_array);
+      qsort (elements_of_set2, n, sizeof (const void *), cmp_objects_in_array);
     }
   for (i = 0; i < n; i++)
     ASSERT (elements_of_set1[i] == elements_of_set2[i]);