[PATCH v3 2/3] libcanera: yaml-parser: Add failing test for unexpected behavior
Kieran Bingham
kieran.bingham at ideasonboard.com
Sat Sep 21 14:37:37 CEST 2024
Quoting Stefan Klug (2024-09-20 14:28:09)
> 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());
>
We should also add the following change/hunk to this patch, or make test
will fail at bisection here:
diff --git a/test/meson.build b/test/meson.build
index 5ed052ed62c8..dcd169a8793e 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -73,7 +73,7 @@ internal_tests = [
{'name': 'timer-thread', 'sources': ['timer-thread.cpp']},
{'name': 'unique-fd', 'sources': ['unique-fd.cpp']},
{'name': 'utils', 'sources': ['utils.cpp']},
- {'name': 'yaml-parser', 'sources': ['yaml-parser.cpp']},
+ {'name': 'yaml-parser', 'sources': ['yaml-parser.cpp'], 'should_fail': true},
]
internal_non_parallel_tests = [
With that:
Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> --
> 2.43.0
>
More information about the libcamera-devel
mailing list