mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-04 20:19:47 +08:00
The Kconfig currently controlling compilation of this code is:
lib/Kconfig.debug:config TEST_SORT
lib/Kconfig.debug: bool "Array-based sort test"
...meaning that it currently is not being built as a module by anyone.
Lets remove the couple traces of modular infrastructure use, so that
when reading the code there is no doubt it is builtin-only.
Since module_init translates to device_initcall in the non-modular case,
the init ordering becomes slightly earlier when we change it to use
subsys_initcall as done here. However, since it is a self contained
test, this shouldn't be an issue and subsys_initcall seems like a better
fit for this particular case.
We also delete the MODULE_LICENSE tag since that information is now
contained at the top of the file in the comments.
Link: http://lkml.kernel.org/r/20170124225608.7319-1-paul.gortmaker@windriver.com
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Cc: Kostenzer Felix <fkostenzer@live.at>
Cc: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
45 lines
752 B
C
45 lines
752 B
C
#include <linux/sort.h>
|
|
#include <linux/slab.h>
|
|
#include <linux/init.h>
|
|
|
|
/*
|
|
* A simple boot-time regression test
|
|
* License: GPL
|
|
*/
|
|
|
|
#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;
|
|
}
|
|
subsys_initcall(test_sort_init);
|