]> git.ipfire.org Git - thirdparty/kmod.git/commitdiff
testsuite: fix test_array_sort pointers inderection
authorYauheni Kaliuta <yauheni.kaliuta@redhat.com>
Tue, 8 Nov 2016 20:57:26 +0000 (22:57 +0200)
committerLucas De Marchi <lucas.demarchi@intel.com>
Wed, 9 Nov 2016 00:21:13 +0000 (22:21 -0200)
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

index 3c72a8a109c58b0d5b5450da6523175f5fd626a3..ef1e1e9922c9b7c558363c8a328fa479e9028641 100644 (file)
@@ -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);