LCOV - code coverage report
Current view: top level - drivers/gpu/drm/tests - drm_connector_test.c (source / functions) Hit Total Coverage
Test: coverage.info Lines: 13 13 100.0 %
Date: 2023-03-27 20:00:47 Functions: 4 4 100.0 %

          Line data    Source code
       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           7 : static void drm_test_get_tv_mode_from_name_valid(struct kunit *test)
      22             : {
      23           7 :         const struct drm_get_tv_mode_from_name_test *params = test->param_value;
      24             : 
      25           7 :         KUNIT_EXPECT_EQ(test,
      26             :                         drm_get_tv_mode_from_name(params->name, strlen(params->name)),
      27             :                         params->expected_mode);
      28           7 : }
      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           7 : drm_get_tv_mode_from_name_valid_desc(const struct drm_get_tv_mode_from_name_test *t,
      43             :                                      char *desc)
      44             : {
      45           7 :         sprintf(desc, "%s", t->name);
      46           7 : }
      47             : 
      48           8 : 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           1 : static void drm_test_get_tv_mode_from_name_truncated(struct kunit *test)
      53             : {
      54           1 :         const char *name = "NTS";
      55             :         int ret;
      56             : 
      57           1 :         ret = drm_get_tv_mode_from_name(name, strlen(name));
      58           1 :         KUNIT_EXPECT_LT(test, ret, 0);
      59           1 : };
      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 <maxime@cerno.tech>");
      76             : MODULE_LICENSE("GPL");

Generated by: LCOV version 1.14