diff options
author | Stefan Klug <stefan.klug@ideasonboard.com> | 2024-09-20 12:10:54 +0200 |
---|---|---|
committer | Stefan Klug <stefan.klug@ideasonboard.com> | 2024-09-23 13:03:35 +0200 |
commit | f623f3ed645d706ed2a0dd129328b63add0dbf47 (patch) | |
tree | f653d2427b164af385290fd60ba898bc283a5e01 /test/yaml-parser.cpp | |
parent | f2842258d10fa509f0ab2227111836eecd184f48 (diff) |
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>
Diffstat (limited to 'test/yaml-parser.cpp')
-rw-r--r-- | test/yaml-parser.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
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<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()); |