mirror of
https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git
synced 2024-12-03 00:33:43 +08:00
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>
This commit is contained in:
parent
cb51a641d6
commit
d242703211
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user