From d24270321142baead92285e2637f09da71992868 Mon Sep 17 00:00:00 2001 From: Yauheni Kaliuta Date: Tue, 8 Nov 2016 22:57:26 +0200 Subject: [PATCH] testsuite: fix test_array_sort pointers inderection MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 --- testsuite/test-array.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/testsuite/test-array.c b/testsuite/test-array.c index 3c72a8a1..ef1e1e99 100644 --- a/testsuite/test-array.c +++ b/testsuite/test-array.c @@ -90,6 +90,13 @@ static int test_array_append_unique(const struct test *t) 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 @@ static int test_array_sort(const struct test *t) 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); -- 2.47.2