From f623f3ed645d706ed2a0dd129328b63add0dbf47 Mon Sep 17 00:00:00 2001 From: Stefan Klug Date: Fri, 20 Sep 2024 12:10:54 +0200 Subject: libcamera: yaml-parser: Add failing test for unexpected behavior 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("default") is expected to return "default" but actually returns "". Add a (failing) testcase for that behavior. Signed-off-by: Stefan Klug Reviewed-by: Kieran Bingham Reviewed-by: Paul Elder --- test/yaml-parser.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'test/yaml-parser.cpp') diff --git a/test/yaml-parser.cpp b/test/yaml-parser.cpp index 34799983..4cc77e26 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("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()); -- cgit v1.2.1