]> Git Repo - linux.git/blob - drivers/gpu/drm/tests/drm_connector_test.c
i3c: mipi-i3c-hci: Fix DAT/DCT entry sizes
[linux.git] / drivers / gpu / drm / tests / drm_connector_test.c
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Kunit test for drm_modes functions
4  */
5
6 #include <drm/drm_connector.h>
7
8 #include <kunit/test.h>
9
10 struct drm_get_tv_mode_from_name_test {
11         const char *name;
12         enum drm_connector_tv_mode expected_mode;
13 };
14
15 #define TV_MODE_NAME(_name, _mode)              \
16         {                                       \
17                 .name = _name,                  \
18                 .expected_mode = _mode,         \
19         }
20
21 static void drm_test_get_tv_mode_from_name_valid(struct kunit *test)
22 {
23         const struct drm_get_tv_mode_from_name_test *params = test->param_value;
24
25         KUNIT_EXPECT_EQ(test,
26                         drm_get_tv_mode_from_name(params->name, strlen(params->name)),
27                         params->expected_mode);
28 }
29
30 static const
31 struct drm_get_tv_mode_from_name_test drm_get_tv_mode_from_name_valid_tests[] = {
32         TV_MODE_NAME("NTSC", DRM_MODE_TV_MODE_NTSC),
33         TV_MODE_NAME("NTSC-443", DRM_MODE_TV_MODE_NTSC_443),
34         TV_MODE_NAME("NTSC-J", DRM_MODE_TV_MODE_NTSC_J),
35         TV_MODE_NAME("PAL", DRM_MODE_TV_MODE_PAL),
36         TV_MODE_NAME("PAL-M", DRM_MODE_TV_MODE_PAL_M),
37         TV_MODE_NAME("PAL-N", DRM_MODE_TV_MODE_PAL_N),
38         TV_MODE_NAME("SECAM", DRM_MODE_TV_MODE_SECAM),
39 };
40
41 static void
42 drm_get_tv_mode_from_name_valid_desc(const struct drm_get_tv_mode_from_name_test *t,
43                                      char *desc)
44 {
45         sprintf(desc, "%s", t->name);
46 }
47
48 KUNIT_ARRAY_PARAM(drm_get_tv_mode_from_name_valid,
49                   drm_get_tv_mode_from_name_valid_tests,
50                   drm_get_tv_mode_from_name_valid_desc);
51
52 static void drm_test_get_tv_mode_from_name_truncated(struct kunit *test)
53 {
54         const char *name = "NTS";
55         int ret;
56
57         ret = drm_get_tv_mode_from_name(name, strlen(name));
58         KUNIT_EXPECT_LT(test, ret, 0);
59 };
60
61 static struct kunit_case drm_get_tv_mode_from_name_tests[] = {
62         KUNIT_CASE_PARAM(drm_test_get_tv_mode_from_name_valid,
63                          drm_get_tv_mode_from_name_valid_gen_params),
64         KUNIT_CASE(drm_test_get_tv_mode_from_name_truncated),
65         { }
66 };
67
68 static struct kunit_suite drm_get_tv_mode_from_name_test_suite = {
69         .name = "drm_get_tv_mode_from_name",
70         .test_cases = drm_get_tv_mode_from_name_tests,
71 };
72
73 kunit_test_suite(drm_get_tv_mode_from_name_test_suite);
74
75 MODULE_AUTHOR("Maxime Ripard <[email protected]>");
76 MODULE_LICENSE("GPL");
This page took 0.038737 seconds and 4 git commands to generate.