[PATCH] drm/client: Convert to VISIBLE_IF_KUNIT

Maíra Canal mcanal at igalia.com
Thu Feb 2 11:31:27 UTC 2023


Hi Maxime,

On 2/2/23 08:03, Maxime Ripard wrote:
> Commit 8fc0380f6ba7 ("drm/client: Add some tests for
> drm_connector_pick_cmdline_mode()") was meant to introduce unit tests
> for the static drm_connector_pick_cmdline_mode() function.
> 
> In such a case, the kunit documentation recommended to import the tests
> source file directly from the source file with the static function to
> test.
> 
> While it was working, it's generally frowned upon. Fortunately, commit
> 9c988fae6f6a ("kunit: add macro to allow conditionally exposing static
> symbols to tests") introduced macros to easily deal with that case. We
> can thus remove our include and use those macros instead.
> 
> Signed-off-by: Maxime Ripard <maxime at cerno.tech>
> ---
>   drivers/gpu/drm/drm_client_modeset.c | 11 ++++++-----
>   1 file changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_client_modeset.c b/drivers/gpu/drm/drm_client_modeset.c
> index 1b12a3c201a3..f48882941852 100644
> --- a/drivers/gpu/drm/drm_client_modeset.c
> +++ b/drivers/gpu/drm/drm_client_modeset.c
> @@ -8,6 +8,9 @@
>    */
>   
>   #include "drm/drm_modeset_lock.h"
> +
> +#include <kunit/visibility.h>
> +
>   #include <linux/module.h>
>   #include <linux/mutex.h>
>   #include <linux/slab.h>
> @@ -159,7 +162,8 @@ drm_connector_has_preferred_mode(struct drm_connector *connector, int width, int
>   	return NULL;
>   }
>   
> -static struct drm_display_mode *drm_connector_pick_cmdline_mode(struct drm_connector *connector)
> +VISIBLE_IF_KUNIT struct drm_display_mode *
> +drm_connector_pick_cmdline_mode(struct drm_connector *connector)
>   {
>   	struct drm_cmdline_mode *cmdline_mode;
>   	struct drm_display_mode *mode;
> @@ -215,6 +219,7 @@ static struct drm_display_mode *drm_connector_pick_cmdline_mode(struct drm_conne
>   
>   	return NULL;
>   }
> +EXPORT_SYMBOL_IF_KUNIT(drm_connector_pick_cmdline_mode);
>   
>   static bool drm_connector_enabled(struct drm_connector *connector, bool strict)
>   {
> @@ -1233,7 +1238,3 @@ int drm_client_modeset_dpms(struct drm_client_dev *client, int mode)
>   	return ret;
>   }
>   EXPORT_SYMBOL(drm_client_modeset_dpms);
> -
> -#ifdef CONFIG_DRM_KUNIT_TEST
> -#include "tests/drm_client_modeset_test.c"
> -#endif

As you removed this guard, you need to add drm_client_modeset_test.o
to tests/Makefile, otherwise, drm_client_modeset_test won't compile.

Best Regards,
- Maíra Canal


More information about the dri-devel mailing list