All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Maíra Canal" <mcanal@igalia.com>
To: Maxime Ripard <maxime@cerno.tech>,
	Daniel Vetter <daniel@ffwll.ch>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Maxime Ripard <mripard@kernel.org>,
	David Airlie <airlied@gmail.com>,
	Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Gow <davidgow@google.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Dave Stevenson <dave.stevenson@raspberrypi.com>,
	Javier Martinez Canillas <javierm@redhat.com>,
	dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org,
	linaro-mm-sig@lists.linaro.org,
	Brendan Higgins <brendan.higgins@linux.dev>,
	linux-kselftest@vger.kernel.org, kunit-dev@googlegroups.com,
	linux-media@vger.kernel.org
Subject: Re: [PATCH v2 07/17] drm/tests: helpers: Make sure the device is bound
Date: Mon, 28 Nov 2022 17:09:06 -0300	[thread overview]
Message-ID: <dffe5d84-4acf-ccb5-dacc-98f691c30352@igalia.com> (raw)
In-Reply-To: <20221123-rpi-kunit-tests-v2-7-efe5ed518b63@cerno.tech>

On 11/28/22 11:53, Maxime Ripard wrote:
> The device managed resources are freed when the device is detached, so
> it has to be bound in the first place.
> 
> Let's create a fake driver that we will bind to our fake device to
> benefit from the device managed cleanups in our tests.
> 
> Signed-off-by: Maxime Ripard <maxime@cerno.tech>

Reviewed-by: Maíra Canal <mcanal@igalia.com>

Best Regards,
- Maíra Canal

> ---
>  drivers/gpu/drm/tests/drm_kunit_helpers.c | 26 +++++++++++++++++++++++++-
>  1 file changed, 25 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/tests/drm_kunit_helpers.c b/drivers/gpu/drm/tests/drm_kunit_helpers.c
> index 15678ab823b0..5d3e29353d1a 100644
> --- a/drivers/gpu/drm/tests/drm_kunit_helpers.c
> +++ b/drivers/gpu/drm/tests/drm_kunit_helpers.c
> @@ -18,12 +18,32 @@ struct kunit_dev {
>  static const struct drm_mode_config_funcs drm_mode_config_funcs = {
>  };
>  
> +static int fake_probe(struct platform_device *pdev)
> +{
> +	return 0;
> +}
> +
> +static int fake_remove(struct platform_device *pdev)
> +{
> +	return 0;
> +}
> +
> +static struct platform_driver fake_platform_driver = {
> +	.probe	= fake_probe,
> +	.remove	= fake_remove,
> +	.driver = {
> +		.name	= KUNIT_DEVICE_NAME,
> +	},
> +};
> +
>  /**
>   * drm_kunit_helper_alloc_device - Allocate a mock device for a KUnit test
>   * @test: The test context object
>   *
>   * This allocates a fake struct &device to create a mock for a Kunit
> - * test.
> + * test. The device will also be bound to a fake driver. It will thus be
> + * able to leverage the usual infrastructure and most notably the
> + * device-managed resources just like a "real" device.
>   *
>   * Callers need to make sure drm_kunit_helper_free_device() on the
>   * device when done.
> @@ -36,6 +56,9 @@ struct device *drm_kunit_helper_alloc_device(struct kunit *test)
>  	struct platform_device *pdev;
>  	int ret;
>  
> +	ret = platform_driver_register(&fake_platform_driver);
> +	KUNIT_ASSERT_EQ(test, ret, 0);
> +
>  	pdev = platform_device_alloc(KUNIT_DEVICE_NAME, PLATFORM_DEVID_NONE);
>  	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, pdev);
>  
> @@ -58,6 +81,7 @@ void drm_kunit_helper_free_device(struct kunit *test, struct device *dev)
>  	struct platform_device *pdev = to_platform_device(dev);
>  
>  	platform_device_unregister(pdev);
> +	platform_driver_unregister(&fake_platform_driver);
>  }
>  EXPORT_SYMBOL(drm_kunit_helper_free_device);
>  
> 

WARNING: multiple messages have this Message-ID (diff)
From: "Maíra Canal" <mcanal@igalia.com>
To: Maxime Ripard <maxime@cerno.tech>,
	Daniel Vetter <daniel@ffwll.ch>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Maxime Ripard <mripard@kernel.org>,
	David Airlie <airlied@gmail.com>,
	Thomas Zimmermann <tzimmermann@suse.de>
Cc: linux-kselftest@vger.kernel.org,
	Dave Stevenson <dave.stevenson@raspberrypi.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
	Javier Martinez Canillas <javierm@redhat.com>,
	linaro-mm-sig@lists.linaro.org,
	Brendan Higgins <brendan.higgins@linux.dev>,
	David Gow <davidgow@google.com>,
	linux-media@vger.kernel.org, kunit-dev@googlegroups.com
Subject: Re: [PATCH v2 07/17] drm/tests: helpers: Make sure the device is bound
Date: Mon, 28 Nov 2022 17:09:06 -0300	[thread overview]
Message-ID: <dffe5d84-4acf-ccb5-dacc-98f691c30352@igalia.com> (raw)
In-Reply-To: <20221123-rpi-kunit-tests-v2-7-efe5ed518b63@cerno.tech>

On 11/28/22 11:53, Maxime Ripard wrote:
> The device managed resources are freed when the device is detached, so
> it has to be bound in the first place.
> 
> Let's create a fake driver that we will bind to our fake device to
> benefit from the device managed cleanups in our tests.
> 
> Signed-off-by: Maxime Ripard <maxime@cerno.tech>

Reviewed-by: Maíra Canal <mcanal@igalia.com>

Best Regards,
- Maíra Canal

> ---
>  drivers/gpu/drm/tests/drm_kunit_helpers.c | 26 +++++++++++++++++++++++++-
>  1 file changed, 25 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/tests/drm_kunit_helpers.c b/drivers/gpu/drm/tests/drm_kunit_helpers.c
> index 15678ab823b0..5d3e29353d1a 100644
> --- a/drivers/gpu/drm/tests/drm_kunit_helpers.c
> +++ b/drivers/gpu/drm/tests/drm_kunit_helpers.c
> @@ -18,12 +18,32 @@ struct kunit_dev {
>  static const struct drm_mode_config_funcs drm_mode_config_funcs = {
>  };
>  
> +static int fake_probe(struct platform_device *pdev)
> +{
> +	return 0;
> +}
> +
> +static int fake_remove(struct platform_device *pdev)
> +{
> +	return 0;
> +}
> +
> +static struct platform_driver fake_platform_driver = {
> +	.probe	= fake_probe,
> +	.remove	= fake_remove,
> +	.driver = {
> +		.name	= KUNIT_DEVICE_NAME,
> +	},
> +};
> +
>  /**
>   * drm_kunit_helper_alloc_device - Allocate a mock device for a KUnit test
>   * @test: The test context object
>   *
>   * This allocates a fake struct &device to create a mock for a Kunit
> - * test.
> + * test. The device will also be bound to a fake driver. It will thus be
> + * able to leverage the usual infrastructure and most notably the
> + * device-managed resources just like a "real" device.
>   *
>   * Callers need to make sure drm_kunit_helper_free_device() on the
>   * device when done.
> @@ -36,6 +56,9 @@ struct device *drm_kunit_helper_alloc_device(struct kunit *test)
>  	struct platform_device *pdev;
>  	int ret;
>  
> +	ret = platform_driver_register(&fake_platform_driver);
> +	KUNIT_ASSERT_EQ(test, ret, 0);
> +
>  	pdev = platform_device_alloc(KUNIT_DEVICE_NAME, PLATFORM_DEVID_NONE);
>  	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, pdev);
>  
> @@ -58,6 +81,7 @@ void drm_kunit_helper_free_device(struct kunit *test, struct device *dev)
>  	struct platform_device *pdev = to_platform_device(dev);
>  
>  	platform_device_unregister(pdev);
> +	platform_driver_unregister(&fake_platform_driver);
>  }
>  EXPORT_SYMBOL(drm_kunit_helper_free_device);
>  
> 

  reply	other threads:[~2022-11-28 20:09 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-28 14:53 [PATCH v2 00/17] drm: Introduce Kunit Tests to VC4 Maxime Ripard
2022-11-28 14:53 ` [PATCH v2 01/17] drm/tests: helpers: Move the helper header to include/drm Maxime Ripard
2022-11-30  8:00   ` Javier Martinez Canillas
2022-11-30  8:00     ` Javier Martinez Canillas
2022-12-01 10:27     ` Maxime Ripard
2022-12-01 10:27       ` Maxime Ripard
2022-12-01 10:38       ` Javier Martinez Canillas
2022-12-01 10:38         ` Javier Martinez Canillas
2022-11-28 14:53 ` [PATCH v2 02/17] drm/tests: helpers: Document drm_kunit_device_init() Maxime Ripard
2022-11-28 19:30   ` Maíra Canal
2022-11-28 19:30     ` Maíra Canal
2022-11-28 14:53 ` [PATCH v2 03/17] drm/tests: helpers: Rename the device init helper Maxime Ripard
2022-11-28 20:36   ` Maíra Canal
2022-11-28 20:36     ` Maíra Canal
2022-11-28 14:53 ` [PATCH v2 04/17] drm/tests: helpers: Remove the name parameter Maxime Ripard
2022-11-28 19:37   ` Maíra Canal
2022-11-28 19:37     ` Maíra Canal
2022-11-28 14:53 ` [PATCH v2 05/17] drm/tests: helpers: Create the device in another function Maxime Ripard
2022-11-28 19:48   ` Maíra Canal
2022-11-28 19:48     ` Maíra Canal
2022-11-28 14:53 ` [PATCH v2 06/17] drm/tests: helpers: Switch to a platform_device Maxime Ripard
2022-11-28 20:01   ` Maíra Canal
2022-11-28 20:01     ` Maíra Canal
2022-11-28 14:53 ` [PATCH v2 07/17] drm/tests: helpers: Make sure the device is bound Maxime Ripard
2022-11-28 20:09   ` Maíra Canal [this message]
2022-11-28 20:09     ` Maíra Canal
2022-11-28 14:53 ` [PATCH v2 08/17] drm/tests: helpers: Allow for a custom device struct to be allocated Maxime Ripard
2022-11-30  9:13   ` Javier Martinez Canillas
2022-11-30  9:13     ` Javier Martinez Canillas
2022-11-28 14:53 ` [PATCH v2 09/17] drm/tests: helpers: Allow to pass a custom drm_driver Maxime Ripard
2022-11-30  9:27   ` Javier Martinez Canillas
2022-11-30  9:27     ` Javier Martinez Canillas
2022-11-28 14:53 ` [PATCH v2 10/17] drm/tests: Add a test for DRM managed actions Maxime Ripard
2022-11-28 20:14   ` Maíra Canal
2022-11-28 20:14     ` Maíra Canal
2022-11-28 14:53 ` [PATCH v2 11/17] drm/vc4: Move HVS state to main header Maxime Ripard
2022-11-28 20:16   ` Maíra Canal
2022-11-28 20:16     ` Maíra Canal
2022-11-28 14:53 ` [PATCH v2 12/17] drm/vc4: crtc: Introduce a lower-level crtc init helper Maxime Ripard
2022-11-28 20:23   ` Maíra Canal
2022-11-28 20:23     ` Maíra Canal
2022-11-28 14:53 ` [PATCH v2 13/17] drm/vc4: crtc: Make encoder lookup helper public Maxime Ripard
2022-11-28 20:26   ` Maíra Canal
2022-11-28 20:26     ` Maíra Canal
2022-11-28 14:53 ` [PATCH v2 14/17] drm/vc4: hvs: Provide a function to initialize the HVS structure Maxime Ripard
2022-11-28 14:53 ` [PATCH v2 15/17] drm/vc4: tests: Introduce a mocking infrastructure Maxime Ripard
2022-11-28 20:35   ` Maíra Canal
2022-11-28 20:35     ` Maíra Canal
2022-11-30  9:59   ` Javier Martinez Canillas
2022-11-30  9:59     ` Javier Martinez Canillas
2022-12-01 13:03     ` Maxime Ripard
2022-12-01 13:03       ` Maxime Ripard
2022-11-28 14:53 ` [PATCH v2 16/17] drm/vc4: tests: Fail the current test if we access a register Maxime Ripard
2022-11-30 10:09   ` Javier Martinez Canillas
2022-11-30 10:09     ` Javier Martinez Canillas
2022-11-28 14:53 ` [PATCH v2 17/17] drm/vc4: tests: Add unit test suite for the PV muxing Maxime Ripard
2022-11-30 10:15   ` Javier Martinez Canillas
2022-11-30 10:15     ` Javier Martinez Canillas
2022-11-28 20:48 ` [PATCH v2 00/17] drm: Introduce Kunit Tests to VC4 Maíra Canal
2022-11-28 20:48   ` Maíra Canal

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=dffe5d84-4acf-ccb5-dacc-98f691c30352@igalia.com \
    --to=mcanal@igalia.com \
    --cc=airlied@gmail.com \
    --cc=brendan.higgins@linux.dev \
    --cc=daniel@ffwll.ch \
    --cc=dave.stevenson@raspberrypi.com \
    --cc=davidgow@google.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=javierm@redhat.com \
    --cc=kunit-dev@googlegroups.com \
    --cc=linaro-mm-sig@lists.linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=maxime@cerno.tech \
    --cc=mripard@kernel.org \
    --cc=tzimmermann@suse.de \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.