mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 12:50:52 +07:00
c5adae9583
Along with the addition made to Kconfig.debug, the prior existing but permanently disabled test function has been slightly refactored. Patch has been tested using QEMU 2.1.2 with a .config obtained through 'make defconfig' (x86_64) and manually enabling the option. [arnd@arndb.de: move sort self-test into a separate file] Link: http://lkml.kernel.org/r/20170112110657.3123790-1-arnd@arndb.de Link: http://lkml.kernel.org/r/HE1PR09MB0394B0418D504DCD27167D4FD49B0@HE1PR09MB0394.eurprd09.prod.outlook.com Signed-off-by: Kostenzer Felix <fkostenzer@live.at> Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
44 lines
754 B
C
44 lines
754 B
C
#include <linux/sort.h>
|
|
#include <linux/slab.h>
|
|
#include <linux/module.h>
|
|
|
|
/* a simple boot-time regression test */
|
|
|
|
#define TEST_LEN 1000
|
|
|
|
static int __init cmpint(const void *a, const void *b)
|
|
{
|
|
return *(int *)a - *(int *)b;
|
|
}
|
|
|
|
static int __init test_sort_init(void)
|
|
{
|
|
int *a, i, r = 1, err = -ENOMEM;
|
|
|
|
a = kmalloc_array(TEST_LEN, sizeof(*a), GFP_KERNEL);
|
|
if (!a)
|
|
return err;
|
|
|
|
for (i = 0; i < TEST_LEN; i++) {
|
|
r = (r * 725861) % 6599;
|
|
a[i] = r;
|
|
}
|
|
|
|
sort(a, TEST_LEN, sizeof(*a), cmpint, NULL);
|
|
|
|
err = -EINVAL;
|
|
for (i = 0; i < TEST_LEN-1; i++)
|
|
if (a[i] > a[i+1]) {
|
|
pr_err("test has failed\n");
|
|
goto exit;
|
|
}
|
|
err = 0;
|
|
pr_info("test passed\n");
|
|
exit:
|
|
kfree(a);
|
|
return err;
|
|
}
|
|
|
|
module_init(test_sort_init);
|
|
MODULE_LICENSE("GPL");
|