changeset 40000:5361c721aa56

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.
author Bruno Haible <bruno@clisp.org>
date Tue, 11 Dec 2018 20:36:35 +0100
parents d8b00b7465aa
children a8842ede7b0d
files ChangeLog tests/test-array_set.c tests/test-hash_set.c tests/test-linkedhash_set.c
diffstat 4 files changed, 38 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Sat Dec 08 15:25:51 2018 +0100
+++ b/ChangeLog	Tue Dec 11 20:36:35 2018 +0100
@@ -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.
--- a/tests/test-array_set.c	Sat Dec 08 15:25:51 2018 +0100
+++ b/tests/test-array_set.c	Tue Dec 11 20:36:35 2018 +0100
@@ -36,6 +36,14 @@
 #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 @@
 
   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]);
--- a/tests/test-hash_set.c	Sat Dec 08 15:25:51 2018 +0100
+++ b/tests/test-hash_set.c	Tue Dec 11 20:36:35 2018 +0100
@@ -35,6 +35,14 @@
 #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 @@
 
   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]);
--- a/tests/test-linkedhash_set.c	Sat Dec 08 15:25:51 2018 +0100
+++ b/tests/test-linkedhash_set.c	Tue Dec 11 20:36:35 2018 +0100
@@ -35,6 +35,14 @@
 #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 @@
 
   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]);