Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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) */
8static struct miscdevice dev_dynamic_minor = {
9 .minor = 2,
10 .name = "dev_dynamic_minor",
11};
12
13/* static minor (LCD_MINOR) */
14static struct miscdevice dev_static_minor = {
15 .minor = LCD_MINOR,
16 .name = "dev_static_minor",
17};
18
19/* misc dynamic minor */
20static struct miscdevice dev_misc_dynamic_minor = {
21 .minor = MISC_DYNAMIC_MINOR,
22 .name = "dev_misc_dynamic_minor",
23};
24
25static 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
35static 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
45static 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
54static 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
61static struct kunit_suite test_suite = {
62 .name = "misc_minor_test",
63 .test_cases = test_cases,
64};
65kunit_test_suite(test_suite);
66
67MODULE_LICENSE("GPL");
68MODULE_AUTHOR("Vimal Agrawal");
69MODULE_DESCRIPTION("misc minor testing");