From: Maxime Ripard <maxime@cerno.tech>
To: Thomas Zimmermann <tzimmermann@suse.de>
Cc: "Javier Martinez Canillas" <javierm@redhat.com>,
"Jernej Skrabec" <jernej.skrabec@gmail.com>,
"Rodrigo Vivi" <rodrigo.vivi@intel.com>,
"Ben Skeggs" <bskeggs@redhat.com>,
"David Airlie" <airlied@linux.ie>,
"Joonas Lahtinen" <joonas.lahtinen@linux.intel.com>,
"Emma Anholt" <emma@anholt.net>,
"Karol Herbst" <kherbst@redhat.com>,
"Samuel Holland" <samuel@sholland.org>,
"Jani Nikula" <jani.nikula@linux.intel.com>,
"Daniel Vetter" <daniel@ffwll.ch>,
"Lyude Paul" <lyude@redhat.com>,
"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
"Tvrtko Ursulin" <tvrtko.ursulin@linux.intel.com>,
"Chen-Yu Tsai" <wens@csie.org>,
"Dom Cobley" <dom@raspberrypi.com>,
"Dave Stevenson" <dave.stevenson@raspberrypi.com>,
"Phil Elwell" <phil@raspberrypi.com>,
nouveau@lists.freedesktop.org, intel-gfx@lists.freedesktop.org,
linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
"Mateusz Kwiatkowski" <kfyatek+publicgit@gmail.com>,
"Hans de Goede" <hdegoede@redhat.com>,
"Noralf Trønnes" <noralf@tronnes.org>,
"Geert Uytterhoeven" <geert@linux-m68k.org>,
linux-sunxi@lists.linux.dev,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v2 13/33] drm/client: Add some tests for drm_connector_pick_cmdline_mode()
Date: Fri, 23 Sep 2022 13:14:05 +0200 [thread overview]
Message-ID: <20220923111405.mnspcuiwfzxyxix6@houat> (raw)
In-Reply-To: <93969920-b5ed-ff15-48d4-02e2f9c23505@suse.de>
[-- Attachment #1: Type: text/plain, Size: 3714 bytes --]
On Fri, Sep 23, 2022 at 12:30:09PM +0200, Thomas Zimmermann wrote:
> Am 23.09.22 um 11:26 schrieb Javier Martinez Canillas:
> > On 9/23/22 11:15, Thomas Zimmermann wrote:
> > > Hi
> > >
> > > Am 22.09.22 um 16:25 schrieb Maxime Ripard:
> > > > drm_connector_pick_cmdline_mode() is in charge of finding a proper
> > > > drm_display_mode from the definition we got in the video= command line
> > > > argument.
> > > >
> > > > Let's add some unit tests to make sure we're not getting any regressions
> > > > there.
> > > >
> > > > Signed-off-by: Maxime Ripard <maxime@cerno.tech>
> > > >
> > > > diff --git a/drivers/gpu/drm/drm_client_modeset.c b/drivers/gpu/drm/drm_client_modeset.c
> > > > index bbc535cc50dd..d553e793e673 100644
> > > > --- a/drivers/gpu/drm/drm_client_modeset.c
> > > > +++ b/drivers/gpu/drm/drm_client_modeset.c
> > > > @@ -1237,3 +1237,7 @@ 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
> > >
> > > I strongly dislike this style of including source files in each other.
> > > It's a recipe for all kind of build errors. Can you do something else?
> > >
> >
> > This seems to be the convention used to test static functions and what's
> > documented in the Kunit docs: https://kunit.dev/third_party/kernel/docs/tips.html#testing-static-functions
>
> That document says "...one option is to conditionally #include the test
> file...". This doesn't sound like a strong requirement.
No, but this is the only option documented, which still indicates a very
strong preference.
> > I agree with you that's not ideal but I think that consistency with how
> > it is done by other subsystems is also important.
> > > As the tested function is an internal interface, maybe export a wrapper
> > > if tests are enabled, like this:
> > >
> > > #ifdef CONFIG_DRM_KUNIT_TEST
> > > struct drm_display_mode *
> > > drm_connector_pick_cmdline_mode_kunit(drm_conenctor)
> > > {
> > > return drm_connector_pick_cmdline_mode(connector)
> > > }
> > > EXPORT_SYMBOL(drm_connector_pick_cmdline_mode_kunit)
> > > #endif
> > >
> > > The wrapper's declaration can be located in the kunit test file.
And I'm afraid this just doesn't scale. If we start testing more and
more static functions, do we really want to have that wrapper for each
of them?
> > But that's also not nice since we are artificially exposing these only
> > to allow the static functions to be called from unit tests. And would
> > be a different approach than the one used by all other subsystems...
> >
>
> There's the problem of interference between the source files when building
> the code. It's also not the same source code after including the test file.
> At a minimum, including the tests' source file further includes more files.
> <kunit/tests.h> also includes quite a few of Linux header files.
>
> IMHO the current convention (if any) is far from optimal and we should
> consider breaking it.
I mean... this is a discussion about theoretical issues. If there is
indeed some regular build errors on this, then sure, we can change it.
I'm confident that will affect pretty much every one using kunit equally
though, so I'm fairly sure the documentation itself will have changed.
But right now we're discussing an alternative because of a problem we
never experienced. I don't see the point of breaking the consistency
provided by the documentation for something not backed by any actual
problem.
Maxime
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
next prev parent reply other threads:[~2022-09-23 11:14 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20220728-rpi-analog-tv-properties-v2-0-f733a0ed9f90@cerno.tech>
2022-09-22 14:31 ` [PATCH v2 00/33] drm: Analog TV Improvements Maxime Ripard
[not found] ` <20220728-rpi-analog-tv-properties-v2-6-f733a0ed9f90@cerno.tech>
2022-09-22 20:44 ` [PATCH v2 06/33] drm/connector: Rename legacy TV property Lyude Paul
2022-09-23 8:19 ` Thomas Zimmermann
2022-09-26 9:50 ` Maxime Ripard
2022-09-26 12:34 ` Thomas Zimmermann
2022-09-24 15:38 ` Noralf Trønnes
[not found] ` <20220728-rpi-analog-tv-properties-v2-8-f733a0ed9f90@cerno.tech>
2022-09-22 20:45 ` [PATCH v2 08/33] drm/connector: Rename drm_mode_create_tv_properties Lyude Paul
2022-09-24 15:43 ` Noralf Trønnes
[not found] ` <20220728-rpi-analog-tv-properties-v2-1-f733a0ed9f90@cerno.tech>
2022-09-23 8:06 ` [PATCH v2 01/33] drm/tests: Order Kunit tests in Makefile Thomas Zimmermann
2022-09-24 17:33 ` Noralf Trønnes
[not found] ` <20220728-rpi-analog-tv-properties-v2-3-f733a0ed9f90@cerno.tech>
2022-09-23 8:09 ` [PATCH v2 03/33] drm/atomic-helper: Rename drm_atomic_helper_connector_tv_reset to avoid ambiguity Thomas Zimmermann
[not found] ` <20220728-rpi-analog-tv-properties-v2-4-f733a0ed9f90@cerno.tech>
2022-09-23 8:14 ` [PATCH v2 04/33] drm/connector: Rename subconnector state variable Thomas Zimmermann
[not found] ` <20220728-rpi-analog-tv-properties-v2-10-f733a0ed9f90@cerno.tech>
2022-09-23 9:05 ` [PATCH v2 10/33] drm/modes: Add a function to generate analog display modes Thomas Zimmermann
2022-09-23 9:18 ` Jani Nikula
2022-09-23 10:16 ` Thomas Zimmermann
2022-09-26 10:18 ` Maxime Ripard
2022-09-26 10:55 ` Thomas Zimmermann
2022-09-26 10:17 ` Maxime Ripard
2022-09-26 10:34 ` Geert Uytterhoeven
2022-09-26 11:17 ` Thomas Zimmermann
2022-09-26 12:42 ` Maxime Ripard
2022-09-26 13:02 ` Thomas Zimmermann
[not found] ` <20220728-rpi-analog-tv-properties-v2-13-f733a0ed9f90@cerno.tech>
2022-09-23 9:15 ` [PATCH v2 13/33] drm/client: Add some tests for drm_connector_pick_cmdline_mode() Thomas Zimmermann
2022-09-23 9:26 ` Javier Martinez Canillas
2022-09-23 10:30 ` Thomas Zimmermann
2022-09-23 11:01 ` Javier Martinez Canillas
2022-09-23 11:14 ` Maxime Ripard [this message]
2022-09-23 11:59 ` Jani Nikula
[not found] ` <20220728-rpi-analog-tv-properties-v2-9-f733a0ed9f90@cerno.tech>
2022-09-24 15:52 ` [PATCH v2 09/33] drm/connector: Add TV standard property Noralf Trønnes
2022-09-26 10:01 ` Maxime Ripard
2022-09-26 12:59 ` Noralf Trønnes
[not found] ` <20220728-rpi-analog-tv-properties-v2-27-f733a0ed9f90@cerno.tech>
2022-09-24 15:58 ` [PATCH v2 27/33] drm/atomic-helper: Add an analog TV atomic_check implementation Noralf Trønnes
[not found] ` <20220728-rpi-analog-tv-properties-v2-28-f733a0ed9f90@cerno.tech>
2022-09-24 15:59 ` [PATCH v2 28/33] drm/vc4: vec: Fix definition of PAL-M mode Noralf Trønnes
[not found] ` <20220728-rpi-analog-tv-properties-v2-30-f733a0ed9f90@cerno.tech>
2022-09-24 16:00 ` [PATCH v2 30/33] drm/vc4: vec: Check for VEC output constraints Noralf Trønnes
[not found] ` <20220728-rpi-analog-tv-properties-v2-31-f733a0ed9f90@cerno.tech>
2022-09-24 17:09 ` [PATCH v2 31/33] drm/vc4: vec: Convert to the new TV mode property Noralf Trønnes
[not found] ` <20220728-rpi-analog-tv-properties-v2-32-f733a0ed9f90@cerno.tech>
2022-09-24 17:12 ` [PATCH v2 32/33] drm/vc4: vec: Add support for more analog TV standards Noralf Trønnes
[not found] ` <20220728-rpi-analog-tv-properties-v2-2-f733a0ed9f90@cerno.tech>
2022-09-24 17:56 ` [PATCH v2 02/33] drm/tests: Add Kunit Helpers Noralf Trønnes
2022-09-24 18:06 ` Noralf Trønnes
2022-09-26 9:36 ` Maxime Ripard
2022-09-26 12:15 ` Noralf Trønnes
2022-09-25 15:58 ` [PATCH v2 00/33] drm: Analog TV Improvements Noralf Trønnes
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220923111405.mnspcuiwfzxyxix6@houat \
--to=maxime@cerno.tech \
--cc=airlied@linux.ie \
--cc=bskeggs@redhat.com \
--cc=daniel@ffwll.ch \
--cc=dave.stevenson@raspberrypi.com \
--cc=dom@raspberrypi.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=emma@anholt.net \
--cc=geert@linux-m68k.org \
--cc=hdegoede@redhat.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jani.nikula@linux.intel.com \
--cc=javierm@redhat.com \
--cc=jernej.skrabec@gmail.com \
--cc=joonas.lahtinen@linux.intel.com \
--cc=kfyatek+publicgit@gmail.com \
--cc=kherbst@redhat.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sunxi@lists.linux.dev \
--cc=lyude@redhat.com \
--cc=maarten.lankhorst@linux.intel.com \
--cc=noralf@tronnes.org \
--cc=nouveau@lists.freedesktop.org \
--cc=phil@raspberrypi.com \
--cc=rodrigo.vivi@intel.com \
--cc=samuel@sholland.org \
--cc=tvrtko.ursulin@linux.intel.com \
--cc=tzimmermann@suse.de \
--cc=wens@csie.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®