1 // SPDX-License-Identifier: GPL-2.0
3 * Kunit test for drm_modes functions
6 #include <drm/drm_connector.h>
8 #include <kunit/test.h>
10 struct drm_get_tv_mode_from_name_test {
12 enum drm_connector_tv_mode expected_mode;
15 #define TV_MODE_NAME(_name, _mode) \
18 .expected_mode = _mode, \
21 static void drm_test_get_tv_mode_from_name_valid(struct kunit *test)
23 const struct drm_get_tv_mode_from_name_test *params = test->param_value;
26 drm_get_tv_mode_from_name(params->name, strlen(params->name)),
27 params->expected_mode);
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),
42 drm_get_tv_mode_from_name_valid_desc(const struct drm_get_tv_mode_from_name_test *t,
45 sprintf(desc, "%s", t->name);
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);
52 static void drm_test_get_tv_mode_from_name_truncated(struct kunit *test)
54 const char *name = "NTS";
57 ret = drm_get_tv_mode_from_name(name, strlen(name));
58 KUNIT_EXPECT_LT(test, ret, 0);
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),
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,
73 kunit_test_suite(drm_get_tv_mode_from_name_test_suite);
76 MODULE_LICENSE("GPL");