cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

test_sort.c (907B)


      1// SPDX-License-Identifier: GPL-2.0-only
      2
      3#include <kunit/test.h>
      4
      5#include <linux/sort.h>
      6#include <linux/slab.h>
      7#include <linux/module.h>
      8
      9/* a simple boot-time regression test */
     10
     11#define TEST_LEN 1000
     12
     13static int cmpint(const void *a, const void *b)
     14{
     15	return *(int *)a - *(int *)b;
     16}
     17
     18static void test_sort(struct kunit *test)
     19{
     20	int *a, i, r = 1;
     21
     22	a = kunit_kmalloc_array(test, TEST_LEN, sizeof(*a), GFP_KERNEL);
     23	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, a);
     24
     25	for (i = 0; i < TEST_LEN; i++) {
     26		r = (r * 725861) % 6599;
     27		a[i] = r;
     28	}
     29
     30	sort(a, TEST_LEN, sizeof(*a), cmpint, NULL);
     31
     32	for (i = 0; i < TEST_LEN-1; i++)
     33		KUNIT_ASSERT_LE(test, a[i], a[i + 1]);
     34}
     35
     36static struct kunit_case sort_test_cases[] = {
     37	KUNIT_CASE(test_sort),
     38	{}
     39};
     40
     41static struct kunit_suite sort_test_suite = {
     42	.name = "lib_sort",
     43	.test_cases = sort_test_cases,
     44};
     45
     46kunit_test_suites(&sort_test_suite);
     47
     48MODULE_LICENSE("GPL");