1 // SPDX-License-Identifier: GPL-2.0-only
3 #include <kunit/test.h>
5 #include <linux/sort.h>
6 #include <linux/slab.h>
7 #include <linux/module.h>
9 /* a simple boot-time regression test */
13 static int cmpint(const void *a
, const void *b
)
15 return *(int *)a
- *(int *)b
;
18 static void test_sort(struct kunit
*test
)
22 a
= kunit_kmalloc_array(test
, TEST_LEN
, sizeof(*a
), GFP_KERNEL
);
23 KUNIT_ASSERT_NOT_ERR_OR_NULL(test
, a
);
25 for (i
= 0; i
< TEST_LEN
; i
++) {
26 r
= (r
* 725861) % 6599;
30 sort(a
, TEST_LEN
, sizeof(*a
), cmpint
, NULL
);
32 for (i
= 0; i
< TEST_LEN
- 1; i
++)
33 KUNIT_ASSERT_LE(test
, a
[i
], a
[i
+ 1]);
37 for (i
= 0; i
< TEST_LEN
- 1; i
++) {
38 r
= (r
* 725861) % 6599;
42 sort(a
, TEST_LEN
- 1, sizeof(*a
), cmpint
, NULL
);
44 for (i
= 0; i
< TEST_LEN
- 2; i
++)
45 KUNIT_ASSERT_LE(test
, a
[i
], a
[i
+ 1]);
48 static struct kunit_case sort_test_cases
[] = {
49 KUNIT_CASE(test_sort
),
53 static struct kunit_suite sort_test_suite
= {
55 .test_cases
= sort_test_cases
,
58 kunit_test_suites(&sort_test_suite
);
60 MODULE_DESCRIPTION("sort() KUnit test suite");
61 MODULE_LICENSE("GPL");