[libcamera-devel] [PATCH v2 2/2] test: controls: control_info_map: Test default constructor

Laurent Pinchart laurent.pinchart at ideasonboard.com
Thu Apr 20 12:22:30 CEST 2023


Hello Mattijs,

Thank you for the patch.

On Wed, Apr 05, 2023 at 10:14:31AM +0200, Mattijs Korpershoek wrote:
> ControlInfoMap can be default-constructed. In that case, some of its
> members (like idmap_) can be a nullptr, and ControlInfoMap.find() will segfault.

Not anymore with patch 1/2 :-) It's however best to add the test first,
to verify it fails, and then the fix, to verify it fixes the problem.
With patch 1/2 and 2/2 swapped, I would phrase the commit message of
this patch as

--------
ControlInfoMap can be default-constructed. In that case, some of its
members (like idmap_) can be a nullptr. Add a test to ensure that the
find() function doesn't segfault.

The test is expected to fail, the issue will be fixed by a subsequent
commit.
--------

> Add a test with a default constructed ControlInfoMap to cover this.
> 
> Signed-off-by: Mattijs Korpershoek <mkorpershoek at baylibre.com>
> ---
>  test/controls/control_info_map.cpp | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/test/controls/control_info_map.cpp b/test/controls/control_info_map.cpp
> index db95945a1580..29b33515e48c 100644
> --- a/test/controls/control_info_map.cpp
> +++ b/test/controls/control_info_map.cpp
> @@ -75,6 +75,13 @@ protected:
>  			return TestFail;
>  		}
>  
> +		/* Test looking up a control on a default-constructed infoMap */

s/infoMap/infoMap./

With this,

Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

> +		const ControlInfoMap emptyInfoMap;
> +		if (emptyInfoMap.find(12345) != emptyInfoMap.end()) {
> +			cerr << "find() on empty ControlInfoMap failed" << endl;
> +			return TestFail;
> +		}
> +
>  		return TestPass;
>  	}
>  };

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list