testsuite: fix test_array_sort pointers inderection
The array elements in the tests are strings, what means "char *"
in ะก. The comparation funtion takes pointers to the elements, so
the arguments become "char **". It means, that strcmp() cannot be
used directrly.
The patch creates a wrapper on strcmp() which perfoms
dereferencing of the "char **" to supply the actual strings to
strcmp(), and uses the wrapper as a comparation function for the
qsort() call.
Signed-off-by: Yauheni Kaliuta <yauheni.kaliuta@redhat.com>
diff --git a/testsuite/test-array.c b/testsuite/test-array.c
index 3c72a8a..ef1e1e9 100644
--- a/testsuite/test-array.c
+++ b/testsuite/test-array.c
@@ -90,6 +90,13 @@
DEFINE_TEST(test_array_append_unique,
.description = "test array append unique");
+static int strptrcmp(const void *pa, const void *pb) {
+ const char *a = *(const char **)pa;
+ const char *b = *(const char **)pb;
+
+ return strcmp(a, b);
+}
+
static int test_array_sort(const struct test *t)
{
struct array array;
@@ -104,7 +111,7 @@
array_append(&array, c2);
array_append(&array, c3);
array_append(&array, c1);
- array_sort(&array, (int (*)(const void *a, const void *b)) strcmp);
+ array_sort(&array, strptrcmp);
assert_return(array.count == 6, EXIT_FAILURE);
assert_return(array.array[0] == c1, EXIT_FAILURE);
assert_return(array.array[1] == c1, EXIT_FAILURE);