xref: /openbmc/linux/arch/s390/lib/test_modules.c (revision e286f231)
1*90c53187SIlya Leoshkevich // SPDX-License-Identifier: GPL-2.0+
2*90c53187SIlya Leoshkevich 
3*90c53187SIlya Leoshkevich #include <kunit/test.h>
4*90c53187SIlya Leoshkevich #include <linux/module.h>
5*90c53187SIlya Leoshkevich 
6*90c53187SIlya Leoshkevich #include "test_modules.h"
7*90c53187SIlya Leoshkevich 
8*90c53187SIlya Leoshkevich /*
9*90c53187SIlya Leoshkevich  * Test that modules with many relocations are loaded properly.
10*90c53187SIlya Leoshkevich  */
test_modules_many_vmlinux_relocs(struct kunit * test)11*90c53187SIlya Leoshkevich static void test_modules_many_vmlinux_relocs(struct kunit *test)
12*90c53187SIlya Leoshkevich {
13*90c53187SIlya Leoshkevich 	int result = 0;
14*90c53187SIlya Leoshkevich 
15*90c53187SIlya Leoshkevich #define CALL_RETURN(i) result += test_modules_return_ ## i()
16*90c53187SIlya Leoshkevich 	REPEAT_10000(CALL_RETURN);
17*90c53187SIlya Leoshkevich 	KUNIT_ASSERT_EQ(test, result, 49995000);
18*90c53187SIlya Leoshkevich }
19*90c53187SIlya Leoshkevich 
20*90c53187SIlya Leoshkevich static struct kunit_case modules_testcases[] = {
21*90c53187SIlya Leoshkevich 	KUNIT_CASE(test_modules_many_vmlinux_relocs),
22*90c53187SIlya Leoshkevich 	{}
23*90c53187SIlya Leoshkevich };
24*90c53187SIlya Leoshkevich 
25*90c53187SIlya Leoshkevich static struct kunit_suite modules_test_suite = {
26*90c53187SIlya Leoshkevich 	.name = "modules_test_s390",
27*90c53187SIlya Leoshkevich 	.test_cases = modules_testcases,
28*90c53187SIlya Leoshkevich };
29*90c53187SIlya Leoshkevich 
30*90c53187SIlya Leoshkevich kunit_test_suites(&modules_test_suite);
31*90c53187SIlya Leoshkevich 
32*90c53187SIlya Leoshkevich MODULE_LICENSE("GPL");
33