[libcamera-devel] [PATCH v2 05/13] py: unittests: verify that cam and cm are freed

Kieran Bingham kieran.bingham at ideasonboard.com
Tue May 17 18:29:18 CEST 2022


Quoting Tomi Valkeinen (2022-05-17 15:33:17)
> Add checks to CameraTesterBase to verify that both the Camera and the
> CameraManager gets freed.
> 
> Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ideasonboard.com>
> Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>


> ---
>  test/py/unittests.py | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/test/py/unittests.py b/test/py/unittests.py
> index 9326358d..4c214f0a 100755
> --- a/test/py/unittests.py
> +++ b/test/py/unittests.py
> @@ -83,6 +83,9 @@ class CameraTesterBase(BaseTestCase):
>              self.cm = None
>              raise Exception('Failed to acquire camera')
>  
> +        self.wr_cam = weakref.ref(self.cam)
> +        self.wr_cm = weakref.ref(self.cm)
> +
>      def tearDown(self):
>          # If a test fails, the camera may be in running state. So always stop.
>          self.cam.stop()
> @@ -94,6 +97,9 @@ class CameraTesterBase(BaseTestCase):
>          self.cam = None
>          self.cm = None
>  
> +        self.assertIsNone(self.wr_cm())
> +        self.assertIsNone(self.wr_cam())

This seems a bit extreme testing that something is None right after
setting it to None? But perhaps there are going to be further expansions
that make this worth checking?

Does this test something that I'm not seeing?

<Edit> Turns out this really is checking that there were no extra
references keeping those objects alive with an extra reference, so this
is fine by me.


Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>


> +
>  
>  class AllocatorTestMethods(CameraTesterBase):
>      def test_allocator(self):
> -- 
> 2.34.1
>


More information about the libcamera-devel mailing list