[PATCH v3 2/3] libcanera: yaml-parser: Add failing test for unexpected behavior

Stefan Klug stefan.klug at ideasonboard.com
Fri Sep 20 16:57:06 CEST 2024


The typo in the commit title will be fixed on merge/next update.

On Fri, Sep 20, 2024 at 03:28:09PM +0200, Stefan Klug wrote:
> When accessing a nonexistent key on a dict the YamlObject returns an
> empty element. This element can happily be cast to a string. This is
> unexpected. For example the following statement:
> 
> yamlDict["nonexistent"].get<string>("default")
> 
> is expected to return "default" but actually returns "". Add a (failing)
> testcase for that behavior.
> 
> Signed-off-by: Stefan Klug <stefan.klug at ideasonboard.com>
> 
> ---
> Changes in v3:
> - Added separate patch for the failing test
> ---
>  test/yaml-parser.cpp | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/test/yaml-parser.cpp b/test/yaml-parser.cpp
> index 347999831d61..4cc77e26ae39 100644
> --- a/test/yaml-parser.cpp
> +++ b/test/yaml-parser.cpp
> @@ -536,6 +536,12 @@ protected:
>  			return TestFail;
>  		}
>  
> +		/* Test access to nonexistent member. */
> +		if (dictObj["nonexistent"].get<std::string>("default") != "default") {
> +			cerr << "Accessing nonexistent dict entry fails to return default" << std::endl;
> +			return TestFail;
> +		}
> +
>  		/* Make sure utils::map_keys() works on the adapter. */
>  		(void)utils::map_keys(dictObj.asDict());
>  
> -- 
> 2.43.0
> 


More information about the libcamera-devel mailing list