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<string>("default")

is expected to return "default" but actually returns "". Add a (failing)
testcase for that behavior.

Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
This commit is contained in:
Stefan Klug 2024-09-20 12:10:54 +02:00
parent f2842258d1
commit f623f3ed64
2 changed files with 7 additions and 1 deletions

View file

@ -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());