xref: /linux/drivers/misc/misc_minor_kunit.c (revision 9e676a024fa1fa2bd8150c2d2ba85478280353bc)
1 // SPDX-License-Identifier: GPL-2.0
2 #include <kunit/test.h>
3 #include <kunit/test-bug.h>
4 #include <linux/module.h>
5 #include <linux/miscdevice.h>
6 
7 /* dynamic minor (2) */
8 static struct miscdevice dev_dynamic_minor = {
9 	.minor  = 2,
10 	.name   = "dev_dynamic_minor",
11 };
12 
13 /* static minor (LCD_MINOR) */
14 static struct miscdevice dev_static_minor = {
15 	.minor  = LCD_MINOR,
16 	.name   = "dev_static_minor",
17 };
18 
19 /* misc dynamic minor */
20 static struct miscdevice dev_misc_dynamic_minor = {
21 	.minor  = MISC_DYNAMIC_MINOR,
22 	.name   = "dev_misc_dynamic_minor",
23 };
24 
25 static void kunit_dynamic_minor(struct kunit *test)
26 {
27 	int ret;
28 
29 	ret = misc_register(&dev_dynamic_minor);
30 	KUNIT_EXPECT_EQ(test, 0, ret);
31 	KUNIT_EXPECT_EQ(test, 2, dev_dynamic_minor.minor);
32 	misc_deregister(&dev_dynamic_minor);
33 }
34 
35 static void kunit_static_minor(struct kunit *test)
36 {
37 	int ret;
38 
39 	ret = misc_register(&dev_static_minor);
40 	KUNIT_EXPECT_EQ(test, 0, ret);
41 	KUNIT_EXPECT_EQ(test, LCD_MINOR, dev_static_minor.minor);
42 	misc_deregister(&dev_static_minor);
43 }
44 
45 static void kunit_misc_dynamic_minor(struct kunit *test)
46 {
47 	int ret;
48 
49 	ret = misc_register(&dev_misc_dynamic_minor);
50 	KUNIT_EXPECT_EQ(test, 0, ret);
51 	misc_deregister(&dev_misc_dynamic_minor);
52 }
53 
54 static struct kunit_case test_cases[] = {
55 	KUNIT_CASE(kunit_dynamic_minor),
56 	KUNIT_CASE(kunit_static_minor),
57 	KUNIT_CASE(kunit_misc_dynamic_minor),
58 	{}
59 };
60 
61 static struct kunit_suite test_suite = {
62 	.name = "misc_minor_test",
63 	.test_cases = test_cases,
64 };
65 kunit_test_suite(test_suite);
66 
67 MODULE_LICENSE("GPL");
68 MODULE_AUTHOR("Vimal Agrawal");
69 MODULE_DESCRIPTION("misc minor testing");
70