diff options
author | Matthew Wilcox <willy@infradead.org> | 2018-06-18 16:59:29 -0400 |
---|---|---|
committer | Matthew Wilcox <willy@infradead.org> | 2018-08-21 23:54:20 -0400 |
commit | 8ab8ba38d48867aac01812e18f48fc9173ccd400 (patch) | |
tree | 4d149499e92ea666779d91caa2a487dfc322ffba /lib/test_ida.c | |
parent | 31ff0ceeb266a4ac96f3fc8cebb85df862a22f92 (diff) | |
download | lwn-8ab8ba38d48867aac01812e18f48fc9173ccd400.tar.gz lwn-8ab8ba38d48867aac01812e18f48fc9173ccd400.zip |
ida: Start new test_ida module
Start transitioning the IDA tests into kernel space. Framework heavily
cribbed from test_xarray.c.
Signed-off-by: Matthew Wilcox <willy@infradead.org>
Diffstat (limited to 'lib/test_ida.c')
-rw-r--r-- | lib/test_ida.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/lib/test_ida.c b/lib/test_ida.c new file mode 100644 index 000000000000..8c9a0672696b --- /dev/null +++ b/lib/test_ida.c @@ -0,0 +1,45 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * test_ida.c: Test the IDA API + * Copyright (c) 2016-2018 Microsoft Corporation + * Copyright (c) 2018 Oracle Corporation + * Author: Matthew Wilcox <willy@infradead.org> + */ + +#include <linux/idr.h> +#include <linux/module.h> + +static unsigned int tests_run; +static unsigned int tests_passed; + +#ifdef __KERNEL__ +void ida_dump(struct ida *ida) { } +#endif +#define IDA_BUG_ON(ida, x) do { \ + tests_run++; \ + if (x) { \ + ida_dump(ida); \ + dump_stack(); \ + } else { \ + tests_passed++; \ + } \ +} while (0) + +static int ida_checks(void) +{ + DEFINE_IDA(ida); + + IDA_BUG_ON(&ida, !ida_is_empty(&ida)); + + printk("IDA: %u of %u tests passed\n", tests_passed, tests_run); + return (tests_run != tests_passed) ? 0 : -EINVAL; +} + +static void ida_exit(void) +{ +} + +module_init(ida_checks); +module_exit(ida_exit); +MODULE_AUTHOR("Matthew Wilcox <willy@infradead.org>"); +MODULE_LICENSE("GPL"); |