From d7cca3056ac2ad1734989600b6652efefa185dbc Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sat, 30 Sep 2023 15:19:43 +0100 Subject: Partially revert changes to IceMetaData constructor Fixes issue where some metadata names/keys were corrupted. Includes new tests which highlighted problem, only to certain values, yay undefined behaviour. --- slicer/test/collections.ice | 2 +- slicer/test/initial/dictNamed.xml | 17 +++++++++++++++++ slicer/test/serializers.cpp | 7 +++++++ 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 slicer/test/initial/dictNamed.xml (limited to 'slicer/test') diff --git a/slicer/test/collections.ice b/slicer/test/collections.ice index 62d3d3e..f2ccc74 100644 --- a/slicer/test/collections.ice +++ b/slicer/test/collections.ice @@ -10,7 +10,7 @@ module TestModule { local sequence Structs; dictionary ClassMap; local dictionary StructMap; - ["slicer:key:id","slicer:value:res","slicer:item:thing"] + ["slicer:value:res","slicer:key:id","slicer:item:thing"] local dictionary StructMapNamed; }; diff --git a/slicer/test/initial/dictNamed.xml b/slicer/test/initial/dictNamed.xml new file mode 100644 index 0000000..2e1fe7e --- /dev/null +++ b/slicer/test/initial/dictNamed.xml @@ -0,0 +1,17 @@ + + + + 1 + + 1 + 2 + + + + 2 + + 3 + 4 + + + diff --git a/slicer/test/serializers.cpp b/slicer/test/serializers.cpp index 1780237..525d68d 100644 --- a/slicer/test/serializers.cpp +++ b/slicer/test/serializers.cpp @@ -710,3 +710,10 @@ BOOST_DATA_TEST_CASE(typeid_specifies_no_such_type, BOOST_CHECK_THROW(std::ignore = (Slicer::DeserializeAny(in)), Slicer::UnknownType); } + +BOOST_AUTO_TEST_CASE(dict_with_name_overrides) +{ + auto res = Slicer::DeserializeAny( + rootDir / "initial/dictNamed.xml"); + BOOST_REQUIRE_EQUAL(res.size(), 2); +} -- cgit v1.2.3