[PATCH v3 2/3] libcanera: yaml-parser: Add failing test for unexpected behavior
Stefan Klug
stefan.klug at ideasonboard.com
Fri Sep 20 15:28:09 CEST 2024
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