[PATCH] drm/client: Convert to VISIBLE_IF_KUNIT

Maxime Ripard maxime at cerno.tech
Thu Feb 2 12:35:55 UTC 2023


Hi,

On Thu, Feb 02, 2023 at 01:22:01PM +0100, Thomas Zimmermann wrote:
> Am 02.02.23 um 12:03 schrieb Maxime Ripard:
> > 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.
> 
> I like that this include statements is going away.

Yeah, when I saw that it was now available, I remembered you really
didn't like it :)

> But changing symbol visibility for tests is likewise awkward.
> 
> Maybe i'm askin gtoo miuch for this simple patch, but can't we have a helper
> macro that generates an exported wrapper for Kunit tests? Something like
> this:
> 
> EXPORT_KUNIT_WRAPPER(struct drm_display_mode *\
> 			drm_connector_pick_cmdline_mode,
> 			struct drm_connector *connector);
> 
> which then generates something like this:
> 
> struct drm_display_mode * drm_connector_pick_cmdline_mode_kunit(
> 	struct drm_connector *connector)
> {
> 	return drm_connector_pick_cmdline_mode(connector);
> }
> 
> I know that the macro for generating this code is more complex than
> illustrated here. But this solution separates Kunit and functions cleanly.
> The static functions that are exported for Kunit testing still need to be
> declared in a header file. That could also be done via such a macro.

I mean, I guess we could do that, but what's the point? I don't really
get what that wrapper brings to the table.

Also, this deviates from the existing practice we had for selftests and
EXPORT_SYMBOL_FOR_TESTS_ONLY

Maxime
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20230202/423e1871/attachment-0001.sig>


More information about the dri-devel mailing list