diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/meson.build | 2 | ||||
-rw-r--r-- | test/yaml-parser.cpp | 18 |
2 files changed, 19 insertions, 1 deletions
diff --git a/test/meson.build b/test/meson.build index dcd169a8..5ed052ed 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'], 'should_fail': true}, + {'name': 'yaml-parser', 'sources': ['yaml-parser.cpp']}, ] internal_non_parallel_tests = [ diff --git a/test/yaml-parser.cpp b/test/yaml-parser.cpp index 4cc77e26..1b22c87b 100644 --- a/test/yaml-parser.cpp +++ b/test/yaml-parser.cpp @@ -542,6 +542,24 @@ protected: return TestFail; } + /* Test nonexistent object has value type empty. */ + if (!dictObj["nonexistent"].isEmpty()) { + cerr << "Accessing nonexistent object returns non-empty object" << std::endl; + return TestFail; + } + + /* Test explicit cast to bool on an empty object returns true. */ + if (!!dictObj["empty"] != true) { + cerr << "Casting empty entry to bool returns false" << std::endl; + return TestFail; + } + + /* Test explicit cast to bool on nonexistent object returns false. */ + if (!!dictObj["nonexistent"] != false) { + cerr << "Casting nonexistent dict entry to bool returns true" << std::endl; + return TestFail; + } + /* Make sure utils::map_keys() works on the adapter. */ (void)utils::map_keys(dictObj.asDict()); |