Message ID | 1478638646-5933-1-git-send-email-yauheni.kaliuta@redhat.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
On Tue, Nov 8, 2016 at 6:57 PM, Yauheni Kaliuta <yauheni.kaliuta@redhat.com> wrote: > 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> > --- Applied, thanks. Lucas De Marchi -- To unsubscribe from this list: send the line "unsubscribe linux-modules" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/testsuite/test-array.c b/testsuite/test-array.c index 3c72a8a109c5..ef1e1e9922c9 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);
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> --- testsuite/test-array.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)