mirror of
				https://github.com/Ysurac/openmptcprouter.git
				synced 2025-03-09 15:40:20 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			74 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From 3383090cf2f00792f0d49fd5541be6a8f3656643 Mon Sep 17 00:00:00 2001
 | |
| From: Maxime Ripard <maxime@cerno.tech>
 | |
| Date: Mon, 21 Nov 2022 13:18:29 +0100
 | |
| Subject: [PATCH] drm/tests: helpers: Make sure the device is bound
 | |
| MIME-Version: 1.0
 | |
| Content-Type: text/plain; charset=UTF-8
 | |
| Content-Transfer-Encoding: 8bit
 | |
| 
 | |
| 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.
 | |
| 
 | |
| Reviewed-by: Maíra Canal <mcanal@igalia.com>
 | |
| Signed-off-by: Maxime Ripard <maxime@cerno.tech>
 | |
| ---
 | |
|  drivers/gpu/drm/tests/drm_kunit_helpers.c | 26 ++++++++++++++++++++++-
 | |
|  1 file changed, 25 insertions(+), 1 deletion(-)
 | |
| 
 | |
| --- 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_de
 | |
|  	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
 | |
|  	struct platform_device *pdev = to_platform_device(dev);
 | |
|  
 | |
|  	platform_device_unregister(pdev);
 | |
| +	platform_driver_unregister(&fake_platform_driver);
 | |
|  }
 | |
|  EXPORT_SYMBOL_GPL(drm_kunit_helper_free_device);
 | |
|  
 |