diff options
| author | Dmitry Torokhov <[email protected]> | 2023-05-01 15:20:08 -0700 | 
|---|---|---|
| committer | Dmitry Torokhov <[email protected]> | 2023-05-01 15:20:08 -0700 | 
| commit | 9a87ffc99ec8eb8d35eed7c4f816d75f5cc9662e (patch) | |
| tree | d57f3a63479a07b4e0cece029886e76e04feb984 /drivers/gpu/drm/tests/drm_connector_test.c | |
| parent | 5dc63e56a9cf8df0b59c234a505a1653f1bdf885 (diff) | |
| parent | 53bea86b5712c7491bb3dae12e271666df0a308c (diff) | |
Merge branch 'next' into for-linus
Prepare input updates for 6.4 merge window.
Diffstat (limited to 'drivers/gpu/drm/tests/drm_connector_test.c')
| -rw-r--r-- | drivers/gpu/drm/tests/drm_connector_test.c | 76 | 
1 files changed, 76 insertions, 0 deletions
diff --git a/drivers/gpu/drm/tests/drm_connector_test.c b/drivers/gpu/drm/tests/drm_connector_test.c new file mode 100644 index 000000000000..c66aa2dc8d9d --- /dev/null +++ b/drivers/gpu/drm/tests/drm_connector_test.c @@ -0,0 +1,76 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Kunit test for drm_modes functions + */ + +#include <drm/drm_connector.h> + +#include <kunit/test.h> + +struct drm_get_tv_mode_from_name_test { +	const char *name; +	enum drm_connector_tv_mode expected_mode; +}; + +#define TV_MODE_NAME(_name, _mode)		\ +	{					\ +		.name = _name,			\ +		.expected_mode = _mode,		\ +	} + +static void drm_test_get_tv_mode_from_name_valid(struct kunit *test) +{ +	const struct drm_get_tv_mode_from_name_test *params = test->param_value; + +	KUNIT_EXPECT_EQ(test, +			drm_get_tv_mode_from_name(params->name, strlen(params->name)), +			params->expected_mode); +} + +static const +struct drm_get_tv_mode_from_name_test drm_get_tv_mode_from_name_valid_tests[] = { +	TV_MODE_NAME("NTSC", DRM_MODE_TV_MODE_NTSC), +	TV_MODE_NAME("NTSC-443", DRM_MODE_TV_MODE_NTSC_443), +	TV_MODE_NAME("NTSC-J", DRM_MODE_TV_MODE_NTSC_J), +	TV_MODE_NAME("PAL", DRM_MODE_TV_MODE_PAL), +	TV_MODE_NAME("PAL-M", DRM_MODE_TV_MODE_PAL_M), +	TV_MODE_NAME("PAL-N", DRM_MODE_TV_MODE_PAL_N), +	TV_MODE_NAME("SECAM", DRM_MODE_TV_MODE_SECAM), +}; + +static void +drm_get_tv_mode_from_name_valid_desc(const struct drm_get_tv_mode_from_name_test *t, +				     char *desc) +{ +	sprintf(desc, "%s", t->name); +} + +KUNIT_ARRAY_PARAM(drm_get_tv_mode_from_name_valid, +		  drm_get_tv_mode_from_name_valid_tests, +		  drm_get_tv_mode_from_name_valid_desc); + +static void drm_test_get_tv_mode_from_name_truncated(struct kunit *test) +{ +	const char *name = "NTS"; +	int ret; + +	ret = drm_get_tv_mode_from_name(name, strlen(name)); +	KUNIT_EXPECT_LT(test, ret, 0); +}; + +static struct kunit_case drm_get_tv_mode_from_name_tests[] = { +	KUNIT_CASE_PARAM(drm_test_get_tv_mode_from_name_valid, +			 drm_get_tv_mode_from_name_valid_gen_params), +	KUNIT_CASE(drm_test_get_tv_mode_from_name_truncated), +	{ } +}; + +static struct kunit_suite drm_get_tv_mode_from_name_test_suite = { +	.name = "drm_get_tv_mode_from_name", +	.test_cases = drm_get_tv_mode_from_name_tests, +}; + +kunit_test_suite(drm_get_tv_mode_from_name_test_suite); + +MODULE_AUTHOR("Maxime Ripard <[email protected]>"); +MODULE_LICENSE("GPL");  |