From 5239b101e21dbea3f2d057c38af46c84084f8e7a Mon Sep 17 00:00:00 2001 From: joaquintides Date: Fri, 4 Aug 2023 17:18:04 +0200 Subject: [PATCH 01/31] added serialization support (pending docs and testing) --- .../boost/unordered/concurrent_flat_map.hpp | 14 ++ .../unordered/detail/archive_constructed.hpp | 71 ++++++ .../detail/bad_archive_exception.hpp | 27 +++ include/boost/unordered/detail/fca.hpp | 23 +- .../unordered/detail/foa/concurrent_table.hpp | 138 ++++++++++++ include/boost/unordered/detail/foa/core.hpp | 3 +- .../unordered/detail/foa/flat_map_types.hpp | 1 + include/boost/unordered/detail/foa/table.hpp | 21 ++ .../boost/unordered/detail/implementation.hpp | 42 +++- .../detail/serialization_version.hpp | 74 +++++++ .../unordered/detail/serialize_container.hpp | 208 ++++++++++++++++++ .../detail/serialize_fca_container.hpp | 156 +++++++++++++ .../detail/serialize_node_pointer.hpp | 90 ++++++++ .../boost/unordered/unordered_flat_map.hpp | 13 +- .../boost/unordered/unordered_flat_set.hpp | 13 +- include/boost/unordered/unordered_map.hpp | 34 ++- .../boost/unordered/unordered_node_map.hpp | 11 + .../boost/unordered/unordered_node_set.hpp | 13 +- include/boost/unordered/unordered_set.hpp | 33 ++- 19 files changed, 975 insertions(+), 10 deletions(-) create mode 100644 include/boost/unordered/detail/archive_constructed.hpp create mode 100644 include/boost/unordered/detail/bad_archive_exception.hpp create mode 100644 include/boost/unordered/detail/serialization_version.hpp create mode 100644 include/boost/unordered/detail/serialize_container.hpp create mode 100644 include/boost/unordered/detail/serialize_fca_container.hpp create mode 100644 include/boost/unordered/detail/serialize_node_pointer.hpp diff --git a/include/boost/unordered/concurrent_flat_map.hpp b/include/boost/unordered/concurrent_flat_map.hpp index 6e2eef98..f4b2be88 100644 --- a/include/boost/unordered/concurrent_flat_map.hpp +++ b/include/boost/unordered/concurrent_flat_map.hpp @@ -19,6 +19,7 @@ #include #include +#include #include #include #include @@ -101,6 +102,11 @@ namespace boost { friend typename concurrent_flat_map::size_type erase_if( concurrent_flat_map& set, Predicate pred); + template + friend void serialize( + Archive& ar, concurrent_flat_map& c, + unsigned int version); + public: using key_type = Key; using mapped_type = T; @@ -772,6 +778,14 @@ namespace boost { return c.table_.erase_if(pred); } + template + void serialize( + Archive& ar, concurrent_flat_map& c, + unsigned int version) + { + ar & core::make_nvp("table",c.table_); + } + #if BOOST_UNORDERED_TEMPLATE_DEDUCTION_GUIDES template +#include +#include +#include +#include +#include + +namespace boost{ +namespace unordered{ +namespace detail{ + +/* constructs a stack-based object from a serialization archive */ + +template +struct archive_constructed:private noncopyable +{ + template + archive_constructed(const char* name,Archive& ar,unsigned int version) + { + core::load_construct_data_adl(ar,&get(),version); + BOOST_TRY{ + ar>>core::make_nvp(name,get()); + } + BOOST_CATCH(...){ + (&get())->~T(); + BOOST_RETHROW; + } + BOOST_CATCH_END + } + + ~archive_constructed() + { + (&get())->~T(); + } + +#if defined(BOOST_GCC)&&(BOOST_GCC>=4*10000+6*100) +#define BOOST_UNORDERED_IGNORE_WSTRICT_ALIASING +#endif + +#if defined(BOOST_UNORDERED_IGNORE_WSTRICT_ALIASING) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wstrict-aliasing" +#endif + + T& get(){return *reinterpret_cast(&space);} + +#if defined(BOOST_UNORDERED_IGNORE_WSTRICT_ALIASING) +#pragma GCC diagnostic pop +#undef BOOST_UNORDERED_IGNORE_WSTRICT_ALIASING +#endif + +private: + typename aligned_storage::value>::type space; +}; + +} /* namespace detail */ +} /* namespace unordered */ +} /* namespace boost */ + +#endif diff --git a/include/boost/unordered/detail/bad_archive_exception.hpp b/include/boost/unordered/detail/bad_archive_exception.hpp new file mode 100644 index 00000000..5c7f4462 --- /dev/null +++ b/include/boost/unordered/detail/bad_archive_exception.hpp @@ -0,0 +1,27 @@ +/* Copyright 2023 Joaquin M Lopez Munoz. + * Distributed under the Boost Software License, Version 1.0. + * (See accompanying file LICENSE_1_0.txt or copy at + * http://www.boost.org/LICENSE_1_0.txt) + * + * See https://www.boost.org/libs/unordered for library home page. + */ + +#ifndef BOOST_UNORDERED_DETAIL_BAD_ARCHIVE_EXCEPTION_HPP +#define BOOST_UNORDERED_DETAIL_BAD_ARCHIVE_EXCEPTION_HPP + +#include + +namespace boost{ +namespace unordered{ +namespace detail{ + +struct bad_archive_exception:std::runtime_error +{ + bad_archive_exception():std::runtime_error("Invalid or corrupted archive"){} +}; + +} /* namespace detail */ +} /* namespace unordered */ +} /* namespace boost */ + +#endif diff --git a/include/boost/unordered/detail/fca.hpp b/include/boost/unordered/detail/fca.hpp index e88faab1..4a0cada1 100644 --- a/include/boost/unordered/detail/fca.hpp +++ b/include/boost/unordered/detail/fca.hpp @@ -1,4 +1,4 @@ -// Copyright (C) 2022 Joaquin M Lopez Munoz. +// Copyright (C) 2022-2023 Joaquin M Lopez Munoz. // Copyright (C) 2022 Christian Mazakas // // Distributed under the Boost Software License, Version 1.0. (See accompanying @@ -114,12 +114,14 @@ to normal separate chaining implementations. */ #include +#include #include #include #include #include #include +#include #include #include #include @@ -287,6 +289,25 @@ namespace boost { p = pbg->buckets + x; } } + + template + friend void serialization_track( + Archive& ar, grouped_bucket_iterator const& x) + { + // requires: not at end() position + track_node_pointer(ar, x.p); + track_node_pointer(ar, x.pbg); + } + + friend class boost::serialization::access; + + template + void serialize(Archive& ar,unsigned int) + { + // requires: not at end() position + serialize_node_pointer(ar, p); + serialize_node_pointer(ar, pbg); + } }; template struct const_grouped_local_bucket_iterator; diff --git a/include/boost/unordered/detail/foa/concurrent_table.hpp b/include/boost/unordered/detail/foa/concurrent_table.hpp index a3c35628..c6bbb91b 100644 --- a/include/boost/unordered/detail/foa/concurrent_table.hpp +++ b/include/boost/unordered/detail/foa/concurrent_table.hpp @@ -16,13 +16,18 @@ #include #include #include +#include #include #include #include +#include +#include +#include #include #include #include #include +#include #include #include #include @@ -1442,6 +1447,139 @@ private: } #endif + friend class boost::serialization::access; + + template + void serialize(Archive& ar,unsigned int version) + { + core::split_member(ar,*this,version); + } + + template + void save(Archive& ar,unsigned int version)const + { + save( + ar,version, + std::integral_constant::value>{}); + } + + template + void save(Archive& ar,unsigned int version,std::true_type /* set */)const + { + auto lck=exclusive_access(); + const std::size_t s=super::size(); + const serialization_version value_version; + + ar< + void save(Archive& ar,unsigned int version,std::false_type /* map */)const + { + using key_type=typename std::remove_const::type; + using mapped_type=typename std::remove_const< + typename TypePolicy::mapped_type>::type; + + auto lck=exclusive_access(); + const std::size_t s=super::size(); + const serialization_version key_version; + const serialization_version mapped_version; + + ar< + void load(Archive& ar,unsigned int version) + { + load( + ar,version, + std::integral_constant::value>{}); + } + + template + void load(Archive& ar,unsigned int version,std::true_type /* set */) + { + auto lck=exclusive_access(); + std::size_t s; + serialization_version value_version; + + ar>>core::make_nvp("count",s); + ar>>core::make_nvp("value_version",value_version); + + super::clear(); + super::reserve(s); + + for(std::size_t n=0;n value("item",ar,value_version); + auto& x=value.get(); + auto hash=this->hash_for(x); + auto pos0=this->position_for(hash); + + if(this->find(x,pos0,hash))throw_exception(bad_archive_exception()); + auto loc=this->unchecked_emplace_at(pos0,hash,std::move(x)); + ar.reset_object_address(std::addressof(*loc.p),std::addressof(x)); + } + } + + template + void load(Archive& ar,unsigned int version,std::false_type /* map */) + { + using key_type=typename std::remove_const::type; + using mapped_type=typename std::remove_const< + typename TypePolicy::mapped_type>::type; + + auto lck=exclusive_access(); + std::size_t s; + serialization_version key_version; + serialization_version mapped_version; + + ar>>core::make_nvp("count",s); + ar>>core::make_nvp("key_version",key_version); + ar>>core::make_nvp("mapped_version",mapped_version); + + super::clear(); + super::reserve(s); + + for(std::size_t n=0;n key("key",ar,key_version); + archive_constructed mapped("mapped",ar,mapped_version); + auto& k=key.get(); + auto& m=mapped.get(); + auto hash=this->hash_for(k); + auto pos0=this->position_for(hash); + + if(this->find(k,pos0,hash))throw_exception(bad_archive_exception()); + auto loc=this->unchecked_emplace_at(pos0,hash,std::move(k),std::move(m)); + ar.reset_object_address(std::addressof(loc.p->first),std::addressof(k)); + ar.reset_object_address(std::addressof(loc.p->second),std::addressof(m)); + } + } + static std::atomic thread_counter; mutable multimutex_type mutexes; }; diff --git a/include/boost/unordered/detail/foa/core.hpp b/include/boost/unordered/detail/foa/core.hpp index f0a2ef5c..db0fd933 100644 --- a/include/boost/unordered/detail/foa/core.hpp +++ b/include/boost/unordered/detail/foa/core.hpp @@ -1180,7 +1180,8 @@ alloc_make_insert_type(const Allocator& al,Args&&... args) * init_type and element_type: * * - TypePolicy::key_type and TypePolicy::value_type have the obvious - * meaning. + * meaning. TypePolicy::mapped_type is expected to be provided as well + * when key_type and value_type are not the same. * * - TypePolicy::init_type is the type implicitly converted to when * writing x.insert({...}). For maps, this is std::pair rather diff --git a/include/boost/unordered/detail/foa/flat_map_types.hpp b/include/boost/unordered/detail/foa/flat_map_types.hpp index 8a4d25f2..712df5fb 100644 --- a/include/boost/unordered/detail/foa/flat_map_types.hpp +++ b/include/boost/unordered/detail/foa/flat_map_types.hpp @@ -14,6 +14,7 @@ namespace boost { template struct flat_map_types { using key_type = Key; + using mapped_type = T; using raw_key_type = typename std::remove_const::type; using raw_mapped_type = typename std::remove_const::type; diff --git a/include/boost/unordered/detail/foa/table.hpp b/include/boost/unordered/detail/foa/table.hpp index 6cc11ed8..8764b47b 100644 --- a/include/boost/unordered/detail/foa/table.hpp +++ b/include/boost/unordered/detail/foa/table.hpp @@ -15,7 +15,9 @@ #include #include #include +#include #include +#include #include #include #include @@ -195,6 +197,25 @@ private: } } + template + friend void serialization_track(Archive& ar,const table_iterator& x) + { + if(x.p){ + track_node_pointer(ar,x.pc); + track_node_pointer(ar,x.p); + } + } + + friend class boost::serialization::access; + + template + void serialize(Archive& ar,unsigned int) + { + if(!p)pc=nullptr; + serialize_node_pointer(ar,pc); + serialize_node_pointer(ar,p); + } + unsigned char *pc=nullptr; table_element_type *p=nullptr; }; diff --git a/include/boost/unordered/detail/implementation.hpp b/include/boost/unordered/detail/implementation.hpp index 1fffdc4a..a26fc1f3 100644 --- a/include/boost/unordered/detail/implementation.hpp +++ b/include/boost/unordered/detail/implementation.hpp @@ -1,6 +1,6 @@ // Copyright (C) 2003-2004 Jeremy B. Maitin-Shepard. // Copyright (C) 2005-2016 Daniel James -// Copyright (C) 2022 Joaquin M Lopez Munoz. +// Copyright (C) 2022-2023 Joaquin M Lopez Munoz. // Copyright (C) 2022 Christian Mazakas // // Distributed under the Boost Software License, Version 1.0. (See accompanying @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -47,6 +48,7 @@ #include #include #include +#include #include #include #include @@ -1703,6 +1705,25 @@ namespace boost { p = (++itb)->next; } } + + template + friend void serialization_track(Archive& ar, const iterator& x) + { + if(x.p){ + track_node_pointer(ar, x.p); + serialization_track(ar, x.itb); + } + } + + friend class boost::serialization::access; + + template + void serialize(Archive& ar,unsigned int) + { + if(!p) itb = bucket_iterator(); + serialize_node_pointer(ar, p); + ar & core::make_nvp("bucket_iterator", itb); + } }; template class c_iterator @@ -1793,6 +1814,25 @@ namespace boost { p = (++itb)->next; } } + + template + friend void serialization_track(Archive& ar, const c_iterator& x) + { + if(x.p){ + track_node_pointer(ar, x.p); + serialization_track(ar, x.itb); + } + } + + friend class boost::serialization::access; + + template + void serialize(Archive& ar,unsigned int) + { + if(!p) itb = bucket_iterator(); + serialize_node_pointer(ar, p); + ar & core::make_nvp("bucket_iterator", itb); + } }; } // namespace iterator_detail diff --git a/include/boost/unordered/detail/serialization_version.hpp b/include/boost/unordered/detail/serialization_version.hpp new file mode 100644 index 00000000..c63eb034 --- /dev/null +++ b/include/boost/unordered/detail/serialization_version.hpp @@ -0,0 +1,74 @@ +/* Copyright 2023 Joaquin M Lopez Munoz. + * Distributed under the Boost Software License, Version 1.0. + * (See accompanying file LICENSE_1_0.txt or copy at + * http://www.boost.org/LICENSE_1_0.txt) + * + * See https://www.boost.org/libs/unordered for library home page. + */ + +#ifndef BOOST_UNORDERED_DETAIL_SERIALIZATION_VERSION_HPP +#define BOOST_UNORDERED_DETAIL_SERIALIZATION_VERSION_HPP + +#include +#include + +namespace boost{ +namespace unordered{ +namespace detail{ + +/* boost::serialization::load_construct_adl(ar,t,version) requires user code + * to pass the serialization version for t, when this information is really + * stored in the archive. serialization_version circumvents this design + * error by acting as a regular serializable type with the same serialization + * version as T; loading/saving serialization_version does nothing with + * the archive data itself but captures the stored serialization version + * at load() time. + */ + +template +struct serialization_version +{ + serialization_version(): + value(boost::serialization::version::value){} + + serialization_version& operator=(unsigned int x){value=x;return *this;}; + + operator unsigned int()const{return value;} + +private: + friend class boost::serialization::access; + + template + void serialize(Archive& ar,unsigned int version) + { + core::split_member(ar,*this,version); + } + + template + void save(Archive&,unsigned int)const{} + + template + void load(Archive&,unsigned int version) + { + this->value=version; + } + + unsigned int value; +}; + +} /* namespace detail */ +} /* namespace unordered */ + +namespace serialization{ + +template +struct version > +{ + BOOST_STATIC_CONSTANT(int,value=version::value); +}; + +} /* namespace serialization */ + +} /* namespace boost */ + +#endif diff --git a/include/boost/unordered/detail/serialize_container.hpp b/include/boost/unordered/detail/serialize_container.hpp new file mode 100644 index 00000000..ca257a5c --- /dev/null +++ b/include/boost/unordered/detail/serialize_container.hpp @@ -0,0 +1,208 @@ +/* Copyright 2023 Joaquin M Lopez Munoz. + * Distributed under the Boost Software License, Version 1.0. + * (See accompanying file LICENSE_1_0.txt or copy at + * http://www.boost.org/LICENSE_1_0.txt) + * + * See https://www.boost.org/libs/unordered for library home page. + */ + +#ifndef BOOST_UNORDERED_DETAIL_SERIALIZE_CONTAINER_HPP +#define BOOST_UNORDERED_DETAIL_SERIALIZE_CONTAINER_HPP + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace boost{ +namespace unordered{ +namespace detail{ + +/* serialize_container(ar,x,v) serializes any of the unordered associative + * containers in Boost.Unordered. Iterator serialization is also supported + * through the following protocol: + * - At saving time, for each iterator it in [x.begin(),x.end()), + * serialization_track(ar,it) is ADL-called to instruct the archive to + * track the addresses of the iterator's associated node(s) via + * track_node_pointer(). + * - At loading time, these addresses are mapped to those of the equivalent + * reconstructed nodes using again serialization_track(ar,it). + * - Serializing an iterator reduces to serializing pointers to previously + * tracked nodes via serialize_node_pointer(). + */ + +template +std::pair adapt_insert_return_type(Iterator it) +{ + return std::pair(it,true); +} + +template +std::pair adapt_insert_return_type(std::pair p) +{ + return p; +} + +template struct load_or_save_unordered_set; + +template struct load_or_save_unordered_set /* save */ +{ + template + void operator()(Archive& ar,const Set& x,unsigned int version)const + { + typedef typename Set::value_type value_type; + typedef typename Set::const_iterator const_iterator; + + const std::size_t s=x.size(); + const serialization_version value_version; + + ar< struct load_or_save_unordered_set /* load */ +{ + template + void operator()(Archive& ar,Set& x,unsigned int version)const + { + typedef typename Set::value_type value_type; + typedef typename Set::iterator iterator; + + std::size_t s; + serialization_version value_version; + + ar>>core::make_nvp("count",s); + ar>>core::make_nvp("value_version",value_version); + + x.clear(); + x.reserve(s); /* critical so that iterator tracking is stable */ + + for(std::size_t n=0;n value("item",ar,value_version); + + std::pair p=adapt_insert_return_type( + x.insert(boost::move(value.get()))); + if(!p.second)throw_exception(bad_archive_exception()); + ar.reset_object_address( + boost::addressof(*p.first),boost::addressof(value.get())); + serialization_track(ar,p.first); + } + } +}; + +template struct load_or_save_unordered_map; + +template struct load_or_save_unordered_map /* save */ +{ + template + void operator()(Archive& ar,const Map& x,unsigned int version)const + { + typedef typename boost::remove_const< + typename Map::key_type>::type key_type; + typedef typename boost::remove_const< + typename Map::mapped_type>::type mapped_type; + typedef typename Map::const_iterator const_iterator; + + const std::size_t s=x.size(); + const serialization_version key_version; + const serialization_version mapped_version; + + ar<first),key_version); + ar<first); + core::save_construct_data_adl( + ar,boost::addressof(first->second),mapped_version); + ar<second); + serialization_track(ar,first); + } + } +}; + +template struct load_or_save_unordered_map /* load */ +{ + template + void operator()(Archive& ar,Map& x,unsigned int version)const + { + typedef typename boost::remove_const< + typename Map::key_type>::type key_type; + typedef typename boost::remove_const< + typename Map::mapped_type>::type mapped_type; + typedef typename Map::iterator iterator; + + std::size_t s; + serialization_version key_version; + serialization_version mapped_version; + + ar>>core::make_nvp("count",s); + ar>>core::make_nvp("key_version",key_version); + ar>>core::make_nvp("mapped_version",mapped_version); + + x.clear(); + x.reserve(s); + + for(std::size_t n=0;n key("key",ar,key_version); + archive_constructed mapped("mapped",ar,mapped_version); + + std::pair p=adapt_insert_return_type( + x.emplace(boost::move(key.get()),boost::move(mapped.get()))); + if(!p.second)throw_exception(bad_archive_exception()); + ar.reset_object_address( + boost::addressof(p.first->first),boost::addressof(key.get())); + ar.reset_object_address( + boost::addressof(p.first->second),boost::addressof(mapped.get())); + serialization_track(ar,p.first); + } + } +}; + +template +struct load_or_save_container; + +template +struct load_or_save_container: + load_or_save_unordered_set{}; + +template +struct load_or_save_container: + load_or_save_unordered_map{}; + +template +void serialize_container(Archive& ar,Container& x,unsigned int version) +{ + load_or_save_container< + Container, + boost::is_same< + typename Container::key_type,typename Container::value_type>::value, + Archive::is_saving::value>()(ar,x,version); +} + +} /* namespace detail */ +} /* namespace unordered */ +} /* namespace boost */ + +#endif diff --git a/include/boost/unordered/detail/serialize_fca_container.hpp b/include/boost/unordered/detail/serialize_fca_container.hpp new file mode 100644 index 00000000..7555a82e --- /dev/null +++ b/include/boost/unordered/detail/serialize_fca_container.hpp @@ -0,0 +1,156 @@ +/* Copyright 2023 Joaquin M Lopez Munoz. + * Distributed under the Boost Software License, Version 1.0. + * (See accompanying file LICENSE_1_0.txt or copy at + * http://www.boost.org/LICENSE_1_0.txt) + * + * See https://www.boost.org/libs/unordered for library home page. + */ + +#ifndef BOOST_UNORDERED_DETAIL_SERIALIZE_FCA_CONTAINER_HPP +#define BOOST_UNORDERED_DETAIL_SERIALIZE_FCA_CONTAINER_HPP + +#include + +#if defined(BOOST_UNORDERED_ENABLE_SERIALIZATION_COMPATIBILITY_V0) + +#define BOOST_UNORDERED_BLOCK_BOOSTDEP_HEADER \ + +#include BOOST_UNORDERED_BLOCK_BOOSTDEP_HEADER +#undef BOOST_UNORDERED_BLOCK_BOOSTDEP_HEADER +#define BOOST_UNORDERED_BLOCK_BOOSTDEP_HEADER \ + +#include BOOST_UNORDERED_BLOCK_BOOSTDEP_HEADER +#undef BOOST_UNORDERED_BLOCK_BOOSTDEP_HEADER +#define BOOST_UNORDERED_BLOCK_BOOSTDEP_HEADER \ + +#include BOOST_UNORDERED_BLOCK_BOOSTDEP_HEADER +#undef BOOST_UNORDERED_BLOCK_BOOSTDEP_HEADER +#define BOOST_UNORDERED_BLOCK_BOOSTDEP_HEADER \ + +#include BOOST_UNORDERED_BLOCK_BOOSTDEP_HEADER +#undef BOOST_UNORDERED_BLOCK_BOOSTDEP_HEADER + +#include +#include + +#else + +#include +#include + +#endif + +namespace boost{ +namespace unordered{ +namespace detail{ + +/* Support for boost::unordered_[multi](map|set) loading from legacy archives. + * Until Boost 1.84, serialization of these containers was provided from + * Boost.Serialization via boost/serialization/boost_unordered_(map|set).hpp, + * from that release on support is native in Boost.Unordered. To enable legacy + * archive loading, BOOST_UNORDERED_ENABLE_SERIALIZATION_COMPATIBILITY_V0 + * must be defined (it implies header dependency from Boost.Serialization). + */ + +#if defined(BOOST_UNORDERED_ENABLE_SERIALIZATION_COMPATIBILITY_V0) + +template +struct archive_input; + +template< + typename Archive,typename K,typename T,typename H,typename P,typename A +> +struct archive_input >: + boost::serialization::stl::archive_input_unordered_map< + Archive, + boost::unordered_map + > +{}; + +template< + typename Archive,typename K,typename T,typename H,typename P,typename A +> +struct archive_input >: + boost::serialization::stl::archive_input_unordered_multimap< + Archive, + boost::unordered_multimap + > +{}; + +template< + typename Archive,typename K,typename H,typename P,typename A +> +struct archive_input >: + boost::serialization::stl::archive_input_unordered_set< + Archive, + boost::unordered_set + > +{}; + +template< + typename Archive,typename K,typename H,typename P,typename A +> +struct archive_input >: + boost::serialization::stl::archive_input_unordered_multiset< + Archive, + boost::unordered_multiset + > +{}; + +#else + +struct legacy_archive_exception:std::runtime_error +{ + legacy_archive_exception():std::runtime_error( + "Legacy archive detected, define " + "BOOST_UNORDERED_ENABLE_SERIALIZATION_COMPATIBILITY_V0 to load"){} +}; + +#endif + +template +struct load_or_save_fca_container; + +template +struct load_or_save_fca_container /* save */ +{ + template + void operator()(Archive& ar,Container& x,unsigned int version)const + { + serialize_container(ar,x,version); + } +}; + +template +struct load_or_save_fca_container /* load */ +{ + template + void operator()(Archive& ar,Container& x,unsigned int version)const + { + if(version==0){ +#if defined(BOOST_UNORDERED_ENABLE_SERIALIZATION_COMPATIBILITY_V0) + boost::serialization::stl::load_unordered_collection< + Archive,Container,archive_input + >(ar,x); +#else + throw_exception(legacy_archive_exception()); +#endif + } + else{ + serialize_container(ar,x,version); + } + } +}; + +template +void serialize_fca_container(Archive& ar,Container& x,unsigned int version) +{ + load_or_save_fca_container()( + ar,x,version); +} + +} /* namespace detail */ +} /* namespace unordered */ +} /* namespace boost */ + +#endif diff --git a/include/boost/unordered/detail/serialize_node_pointer.hpp b/include/boost/unordered/detail/serialize_node_pointer.hpp new file mode 100644 index 00000000..ea4a4da2 --- /dev/null +++ b/include/boost/unordered/detail/serialize_node_pointer.hpp @@ -0,0 +1,90 @@ +/* Copyright 2023 Joaquin M Lopez Munoz. + * Distributed under the Boost Software License, Version 1.0. + * (See accompanying file LICENSE_1_0.txt or copy at + * http://www.boost.org/LICENSE_1_0.txt) + * + * See https://www.boost.org/libs/unordered for library home page. + */ + +#ifndef BOOST_UNORDERED_DETAIL_SERIALIZE_NODE_POINTER_HPP +#define BOOST_UNORDERED_DETAIL_SERIALIZE_NODE_POINTER_HPP + +#include +#include +#include +#include +#include + +namespace boost{ +namespace unordered{ +namespace detail{ + +/* Node pointer serialization to support iterator serialization as described + * in serialize_container.hpp. The underlying technique is to reinterpret_cast + * Node pointers to serialization_tracker pointers, which, when + * dereferenced and serialized, do not emit any serialization payload to the + * archive, but activate object tracking on the relevant addresses for later + * use with serialize_node_pointer(). + */ + +template +struct serialization_tracker +{ + /* An attempt to construct a serialization_tracker means a stray address + * in the archive, that is, one without a previously tracked node. + */ + serialization_tracker(){throw_exception(bad_archive_exception());} + + template + void serialize(Archive&,unsigned int){} /* no data emitted */ +}; + +template +void track_node_pointer(Archive& ar,const Node* p) +{ + if(p){ + ar&core::make_nvp( + "node", + *reinterpret_cast*>(const_cast(p))); + } +} + +template +void serialize_node_pointer(Archive& ar,Node*& p,boost::true_type /* save */) +{ + typedef typename boost::remove_const::type node_type; + typedef serialization_tracker tracker; + + tracker* pn= + const_cast( + reinterpret_cast( + const_cast(p))); + ar< +void serialize_node_pointer(Archive& ar,Node*& p,boost::false_type /* load */) +{ + typedef typename boost::remove_const::type node_type; + typedef serialization_tracker tracker; + + tracker* pn; + ar>>core::make_nvp("pointer",pn); + p=const_cast( + reinterpret_cast( + const_cast(pn))); +} + +template +void serialize_node_pointer(Archive& ar,Node*& p) +{ + serialize_node_pointer( + ar,p, + boost::integral_constant()); +} + +} /* namespace detail */ +} /* namespace unordered */ +} /* namespace boost */ + +#endif diff --git a/include/boost/unordered/unordered_flat_map.hpp b/include/boost/unordered/unordered_flat_map.hpp index 1f7984ec..1e829c1d 100644 --- a/include/boost/unordered/unordered_flat_map.hpp +++ b/include/boost/unordered/unordered_flat_map.hpp @@ -1,4 +1,4 @@ -// Copyright (C) 2022 Christian Mazakas +// Copyright (C) 2022-2023 Christian Mazakas // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -13,6 +13,7 @@ #include #include #include +#include #include #include @@ -696,6 +697,16 @@ namespace boost { return erase_if(map.table_, pred); } + template + void serialize( + Archive & ar, + unordered_flat_map& map, + unsigned int version) + { + detail::serialize_container(ar, map, version); + } + #if defined(BOOST_MSVC) #pragma warning(pop) /* C4714 */ #endif diff --git a/include/boost/unordered/unordered_flat_set.hpp b/include/boost/unordered/unordered_flat_set.hpp index a3c7748e..01cadf21 100644 --- a/include/boost/unordered/unordered_flat_set.hpp +++ b/include/boost/unordered/unordered_flat_set.hpp @@ -1,4 +1,4 @@ -// Copyright (C) 2022 Christian Mazakas +// Copyright (C) 2022-2023 Christian Mazakas // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -12,6 +12,7 @@ #include #include +#include #include #include @@ -505,6 +506,16 @@ namespace boost { return erase_if(set.table_, pred); } + template + void serialize( + Archive & ar, + unordered_flat_set& set, + unsigned int version) + { + detail::serialize_container(ar, set, version); + } + #if defined(BOOST_MSVC) #pragma warning(pop) /* C4714 */ #endif diff --git a/include/boost/unordered/unordered_map.hpp b/include/boost/unordered/unordered_map.hpp index 35eb2f2e..b60acb75 100644 --- a/include/boost/unordered/unordered_map.hpp +++ b/include/boost/unordered/unordered_map.hpp @@ -1,7 +1,6 @@ - // Copyright (C) 2003-2004 Jeremy B. Maitin-Shepard. // Copyright (C) 2005-2011 Daniel James. -// Copyright (C) 2022 Christian Mazakas +// Copyright (C) 2022-2023 Christian Mazakas // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -16,11 +15,13 @@ #endif #include +#include #include #include #include #include #include +#include #include #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST) @@ -1059,6 +1060,13 @@ namespace boost { #endif }; // class template unordered_map + template + void serialize( + Archive & ar,unordered_map& m,unsigned int version) + { + detail::serialize_fca_container(ar, m, version); + } + #if BOOST_UNORDERED_TEMPLATE_DEDUCTION_GUIDES template + void serialize( + Archive & ar,unordered_multimap& m,unsigned int version) + { + detail::serialize_fca_container(ar, m, version); + } + #if BOOST_UNORDERED_TEMPLATE_DEDUCTION_GUIDES template + struct version > + { + BOOST_STATIC_CONSTANT(int, value = 1); + }; + + template + struct version > + { + BOOST_STATIC_CONSTANT(int, value = 1); + }; + } // namespace serialization + } // namespace boost #if defined(BOOST_MSVC) diff --git a/include/boost/unordered/unordered_node_map.hpp b/include/boost/unordered/unordered_node_map.hpp index 32bd5989..3329b1b6 100644 --- a/include/boost/unordered/unordered_node_map.hpp +++ b/include/boost/unordered/unordered_node_map.hpp @@ -14,6 +14,7 @@ #include #include #include +#include #include #include @@ -788,6 +789,16 @@ namespace boost { return erase_if(map.table_, pred); } + template + void serialize( + Archive & ar, + unordered_node_map& map, + unsigned int version) + { + detail::serialize_container(ar, map, version); + } + #if defined(BOOST_MSVC) #pragma warning(pop) /* C4714 */ #endif diff --git a/include/boost/unordered/unordered_node_set.hpp b/include/boost/unordered/unordered_node_set.hpp index 06833a8b..21d3d28f 100644 --- a/include/boost/unordered/unordered_node_set.hpp +++ b/include/boost/unordered/unordered_node_set.hpp @@ -1,4 +1,4 @@ -// Copyright (C) 2022 Christian Mazakas +// Copyright (C) 2022-2023 Christian Mazakas // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -14,6 +14,7 @@ #include #include #include +#include #include #include @@ -601,6 +602,16 @@ namespace boost { return erase_if(set.table_, pred); } + template + void serialize( + Archive & ar, + unordered_node_set& set, + unsigned int version) + { + detail::serialize_container(ar, set, version); + } + #if defined(BOOST_MSVC) #pragma warning(pop) /* C4714 */ #endif diff --git a/include/boost/unordered/unordered_set.hpp b/include/boost/unordered/unordered_set.hpp index 23837b2d..7ebba5a9 100644 --- a/include/boost/unordered/unordered_set.hpp +++ b/include/boost/unordered/unordered_set.hpp @@ -1,7 +1,6 @@ - // Copyright (C) 2003-2004 Jeremy B. Maitin-Shepard. // Copyright (C) 2005-2011 Daniel James. -// Copyright (C) 2022 Christian Mazakas +// Copyright (C) 2022-2023 Christian Mazakas // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -20,6 +19,7 @@ #include #include #include +#include #include #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST) @@ -641,6 +641,13 @@ namespace boost { #endif }; // class template unordered_set + template + void serialize( + Archive & ar,unordered_set& c,unsigned int version) + { + detail::serialize_fca_container(ar, c, version); + } + #if BOOST_UNORDERED_TEMPLATE_DEDUCTION_GUIDES template + void serialize( + Archive & ar,unordered_multiset& c,unsigned int version) + { + detail::serialize_fca_container(ar, c, version); + } + #if BOOST_UNORDERED_TEMPLATE_DEDUCTION_GUIDES template + struct version > + { + BOOST_STATIC_CONSTANT(int, value = 1); + }; + + template + struct version > + { + BOOST_STATIC_CONSTANT(int, value = 1); + }; + } // namespace serialization + } // namespace boost #if defined(BOOST_MSVC) From ab867a65f4b54a25231718e0877e2b0581e57cc4 Mon Sep 17 00:00:00 2001 From: joaquintides Date: Fri, 4 Aug 2023 17:51:06 +0200 Subject: [PATCH 02/31] unnamed unused args --- include/boost/unordered/detail/serialize_container.hpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/include/boost/unordered/detail/serialize_container.hpp b/include/boost/unordered/detail/serialize_container.hpp index ca257a5c..b4174ea4 100644 --- a/include/boost/unordered/detail/serialize_container.hpp +++ b/include/boost/unordered/detail/serialize_container.hpp @@ -54,7 +54,7 @@ template struct load_or_save_unordered_set; template struct load_or_save_unordered_set /* save */ { template - void operator()(Archive& ar,const Set& x,unsigned int version)const + void operator()(Archive& ar,const Set& x,unsigned int)const { typedef typename Set::value_type value_type; typedef typename Set::const_iterator const_iterator; @@ -76,7 +76,7 @@ template struct load_or_save_unordered_set /* save */ template struct load_or_save_unordered_set /* load */ { template - void operator()(Archive& ar,Set& x,unsigned int version)const + void operator()(Archive& ar,Set& x,unsigned int)const { typedef typename Set::value_type value_type; typedef typename Set::iterator iterator; @@ -108,7 +108,7 @@ template struct load_or_save_unordered_map; template struct load_or_save_unordered_map /* save */ { template - void operator()(Archive& ar,const Map& x,unsigned int version)const + void operator()(Archive& ar,const Map& x,unsigned int)const { typedef typename boost::remove_const< typename Map::key_type>::type key_type; @@ -145,7 +145,7 @@ template struct load_or_save_unordered_map /* save */ template struct load_or_save_unordered_map /* load */ { template - void operator()(Archive& ar,Map& x,unsigned int version)const + void operator()(Archive& ar,Map& x,unsigned int)const { typedef typename boost::remove_const< typename Map::key_type>::type key_type; From bfb65201073e8c21837c42517d285e3b685c2702 Mon Sep 17 00:00:00 2001 From: joaquintides Date: Fri, 4 Aug 2023 18:46:41 +0200 Subject: [PATCH 03/31] unnamed unused args --- include/boost/unordered/detail/foa/concurrent_table.hpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/include/boost/unordered/detail/foa/concurrent_table.hpp b/include/boost/unordered/detail/foa/concurrent_table.hpp index c6bbb91b..81c6bc2f 100644 --- a/include/boost/unordered/detail/foa/concurrent_table.hpp +++ b/include/boost/unordered/detail/foa/concurrent_table.hpp @@ -1464,7 +1464,7 @@ private: } template - void save(Archive& ar,unsigned int version,std::true_type /* set */)const + void save(Archive& ar,unsigned int,std::true_type /* set */)const { auto lck=exclusive_access(); const std::size_t s=super::size(); @@ -1481,7 +1481,7 @@ private: } template - void save(Archive& ar,unsigned int version,std::false_type /* map */)const + void save(Archive& ar,unsigned int,std::false_type /* map */)const { using key_type=typename std::remove_const::type; using mapped_type=typename std::remove_const< @@ -1522,7 +1522,7 @@ private: } template - void load(Archive& ar,unsigned int version,std::true_type /* set */) + void load(Archive& ar,unsigned int,std::true_type /* set */) { auto lck=exclusive_access(); std::size_t s; @@ -1547,7 +1547,7 @@ private: } template - void load(Archive& ar,unsigned int version,std::false_type /* map */) + void load(Archive& ar,unsigned int,std::false_type /* map */) { using key_type=typename std::remove_const::type; using mapped_type=typename std::remove_const< From 1264805a59f546c403ba8d6241ab7bea95a589c0 Mon Sep 17 00:00:00 2001 From: joaquintides Date: Fri, 4 Aug 2023 19:03:32 +0200 Subject: [PATCH 04/31] avoided type shadowing --- .../unordered/detail/foa/concurrent_table.hpp | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/include/boost/unordered/detail/foa/concurrent_table.hpp b/include/boost/unordered/detail/foa/concurrent_table.hpp index 81c6bc2f..b8335de9 100644 --- a/include/boost/unordered/detail/foa/concurrent_table.hpp +++ b/include/boost/unordered/detail/foa/concurrent_table.hpp @@ -1483,14 +1483,14 @@ private: template void save(Archive& ar,unsigned int,std::false_type /* map */)const { - using key_type=typename std::remove_const::type; - using mapped_type=typename std::remove_const< + using raw_key_type=typename std::remove_const::type; + using raw_mapped_type=typename std::remove_const< typename TypePolicy::mapped_type>::type; - auto lck=exclusive_access(); - const std::size_t s=super::size(); - const serialization_version key_version; - const serialization_version mapped_version; + auto lck=exclusive_access(); + const std::size_t s=super::size(); + const serialization_version key_version; + const serialization_version mapped_version; ar< void load(Archive& ar,unsigned int,std::false_type /* map */) { - using key_type=typename std::remove_const::type; - using mapped_type=typename std::remove_const< + using raw_key_type=typename std::remove_const::type; + using raw_mapped_type=typename std::remove_const< typename TypePolicy::mapped_type>::type; - auto lck=exclusive_access(); - std::size_t s; - serialization_version key_version; - serialization_version mapped_version; + auto lck=exclusive_access(); + std::size_t s; + serialization_version key_version; + serialization_version mapped_version; ar>>core::make_nvp("count",s); ar>>core::make_nvp("key_version",key_version); @@ -1566,12 +1566,12 @@ private: super::reserve(s); for(std::size_t n=0;n key("key",ar,key_version); - archive_constructed mapped("mapped",ar,mapped_version); - auto& k=key.get(); - auto& m=mapped.get(); - auto hash=this->hash_for(k); - auto pos0=this->position_for(hash); + archive_constructed key("key",ar,key_version); + archive_constructed mapped("mapped",ar,mapped_version); + auto& k=key.get(); + auto& m=mapped.get(); + auto hash=this->hash_for(k); + auto pos0=this->position_for(hash); if(this->find(k,pos0,hash))throw_exception(bad_archive_exception()); auto loc=this->unchecked_emplace_at(pos0,hash,std::move(k),std::move(m)); From c26137f2ddd6b46e439872856e86ebc54eb4cfea Mon Sep 17 00:00:00 2001 From: joaquintides Date: Fri, 4 Aug 2023 19:19:22 +0200 Subject: [PATCH 05/31] unnamed unused arg --- include/boost/unordered/concurrent_flat_map.hpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/include/boost/unordered/concurrent_flat_map.hpp b/include/boost/unordered/concurrent_flat_map.hpp index f4b2be88..e04f84b6 100644 --- a/include/boost/unordered/concurrent_flat_map.hpp +++ b/include/boost/unordered/concurrent_flat_map.hpp @@ -780,8 +780,7 @@ namespace boost { template void serialize( - Archive& ar, concurrent_flat_map& c, - unsigned int version) + Archive& ar, concurrent_flat_map& c, unsigned int) { ar & core::make_nvp("table",c.table_); } From 34e5773a4a870370036be316bf2d09195d200c94 Mon Sep 17 00:00:00 2001 From: joaquintides Date: Sat, 5 Aug 2023 17:11:52 +0200 Subject: [PATCH 06/31] documented serialization support --- doc/unordered/changes.adoc | 2 +- doc/unordered/concurrent_flat_map.adoc | 30 +++++++++++++ doc/unordered/unordered_flat_map.adoc | 50 +++++++++++++++++++++ doc/unordered/unordered_flat_set.adoc | 50 +++++++++++++++++++++ doc/unordered/unordered_map.adoc | 62 +++++++++++++++++++++++++- doc/unordered/unordered_multimap.adoc | 62 ++++++++++++++++++++++++++ doc/unordered/unordered_multiset.adoc | 61 ++++++++++++++++++++++++- doc/unordered/unordered_node_map.adoc | 53 ++++++++++++++++++++++ doc/unordered/unordered_node_set.adoc | 51 +++++++++++++++++++++ doc/unordered/unordered_set.adoc | 61 ++++++++++++++++++++++++- 10 files changed, 478 insertions(+), 4 deletions(-) diff --git a/doc/unordered/changes.adoc b/doc/unordered/changes.adoc index ed0640ac..f03399b9 100644 --- a/doc/unordered/changes.adoc +++ b/doc/unordered/changes.adoc @@ -14,7 +14,7 @@ with serial and parallel variants. `boost::concurrent_flat_map` and vice versa. * Added debug mode mechanisms for detecting illegal reentrancies into a `boost::concurrent_flat_map` from user code. - +* Added Boost.Serialization support to all containers and their (non-local) iterator types. == Release 1.83.0 - Major update * Added `boost::concurrent_flat_map`, a fast, thread-safe hashmap based on open addressing. diff --git a/doc/unordered/concurrent_flat_map.adoc b/doc/unordered/concurrent_flat_map.adoc index f059ca5c..bcfc719e 100644 --- a/doc/unordered/concurrent_flat_map.adoc +++ b/doc/unordered/concurrent_flat_map.adoc @@ -1518,3 +1518,33 @@ Equivalent to ----- c.xref:#concurrent_flat_map_erase_if[erase_if](pred); ----- + +=== Serialization + +``concurrent_flat_map``s can be archived/retrieved by means of +link:../../../serialization/index.html[Boost.Serialization^] using the API provided +by this library. Both regular and XML archives are supported. + +==== Saving an concurrent_flat_map to an archive + +Saves all the elements of a `concurrent_flat_map` `x` to an archive (XML archive) `ar`. + +[horizontal] +Requires:;; `std::remove_const::type` and `std::remove_const::type` +are serializable (XML serializable), and they do support Boost.Serialization +`save_construct_data`/`load_construct_data` protocol (automatically suported by +https://en.cppreference.com/w/cpp/named_req/DefaultConstructible[DefaultConstructible^] +types). +Concurrency:;; Blocking on `x`. + +--- + +==== Loading an concurrent_flat_map from an archive + +Deletes all preexisting elements of a `concurrent_flat_map` `x` and inserts +from an archive (XML archive) `ar` restored copies of the elements of the +original `concurrent_flat_map` `other` saved to the storage read by `ar`. + +[horizontal] +Requires:;; `x.key_equal()` is functionally equivalent to `other.key_equal()`. +Concurrency:;; Blocking on `x`. diff --git a/doc/unordered/unordered_flat_map.adoc b/doc/unordered/unordered_flat_map.adoc index 543db307..7018433b 100644 --- a/doc/unordered/unordered_flat_map.adoc +++ b/doc/unordered/unordered_flat_map.adoc @@ -1464,4 +1464,54 @@ for (auto i = c.begin(), last = c.end(); i != last; ) { return original_size - c.size(); ``` +=== Serialization + +``unordered_flat_map``s can be archived/retrieved by means of +link:../../../serialization/index.html[Boost.Serialization^] using the API provided +by this library. Both regular and XML archives are supported. + +==== Saving an unordered_flat_map to an archive + +Saves all the elements of an `unordered_flat_map` `x` to an archive (XML archive) `ar`. + +[horizontal] +Requires:;; `std::remove_const::type` and `std::remove_const::type` +are serializable (XML serializable), and they do support Boost.Serialization +`save_construct_data`/`load_construct_data` protocol (automatically suported by +https://en.cppreference.com/w/cpp/named_req/DefaultConstructible[DefaultConstructible^] +types). + --- + +==== Loading an unordered_flat_map from an archive + +Deletes all preexisting elements of an `unordered_flat_map` `x` and inserts +from an archive (XML archive) `ar` restored copies of the elements of the +original `unordered_flat_map` `other` saved to the storage read by `ar`. + +[horizontal] +Requires:;; `x.key_equal()` is functionally equivalent to `other.key_equal()`. + +--- + +==== Saving an iterator/const_iterator to an archive + +Saves the positional information of an `iterator` (`const_iterator`) `it` +to an archive (XML archive) `ar`. `it` can be and `end()` iterator. + +[horizontal] +Requires:;; The `unordered_flat_map` `x` pointed to by `it` has been previously saved to `ar`, +and no modifying operations have been issued on `x` between saving of `x` and +saving of `it`. + +--- + +==== Loading an iterator/const_iterator from an archive + +Makes an `iterator` (`const_iterator`) `it` point to the restored position of +the original `iterator` (`const_iterator`) saved to the storage read by +an archive (XML archive) `ar`. + +[horizontal] +Requires:;; If `x` is the `unordered_flat_map` `it` points to, no modifying operations +have been issued on `x` between loading of `x` and loading of `it`. diff --git a/doc/unordered/unordered_flat_set.adoc b/doc/unordered/unordered_flat_set.adoc index 391d7e12..68410ba5 100644 --- a/doc/unordered/unordered_flat_set.adoc +++ b/doc/unordered/unordered_flat_set.adoc @@ -1201,4 +1201,54 @@ for (auto i = c.begin(), last = c.end(); i != last; ) { return original_size - c.size(); ``` +=== Serialization + +``unordered_flat_set``s can be archived/retrieved by means of +link:../../../serialization/index.html[Boost.Serialization^] using the API provided +by this library. Both regular and XML archives are supported. + +==== Saving an unordered_flat_set to an archive + +Saves all the elements of an `unordered_flat_set` `x` to an archive (XML archive) `ar`. + +[horizontal] +Requires:;; `value_type` +is serializable (XML serializable), and it supports Boost.Serialization +`save_construct_data`/`load_construct_data` protocol (automatically suported by +https://en.cppreference.com/w/cpp/named_req/DefaultConstructible[DefaultConstructible^] +types). + --- + +==== Loading an unordered_flat_set from an archive + +Deletes all preexisting elements of an `unordered_flat_set` `x` and inserts +from an archive (XML archive) `ar` restored copies of the elements of the +original `unordered_flat_set` `other` saved to the storage read by `ar`. + +[horizontal] +Requires:;; `x.key_equal()` is functionally equivalent to `other.key_equal()`. + +--- + +==== Saving an iterator/const_iterator to an archive + +Saves the positional information of an `iterator` (`const_iterator`) `it` +to an archive (XML archive) `ar`. `it` can be and `end()` iterator. + +[horizontal] +Requires:;; The `unordered_flat_set` `x` pointed to by `it` has been previously saved to `ar`, +and no modifying operations have been issued on `x` between saving of `x` and +saving of `it`. + +--- + +==== Loading an iterator/const_iterator from an archive + +Makes an `iterator` (`const_iterator`) `it` point to the restored position of +the original `iterator` (`const_iterator`) saved to the storage read by +an archive (XML archive) `ar`. + +[horizontal] +Requires:;; If `x` is the `unordered_flat_set` `it` points to, no modifying operations +have been issued on `x` between loading of `x` and loading of `it`. diff --git a/doc/unordered/unordered_map.adoc b/doc/unordered/unordered_map.adoc index 02d95ac2..d01944a0 100644 --- a/doc/unordered/unordered_map.adoc +++ b/doc/unordered/unordered_map.adoc @@ -323,7 +323,12 @@ The elements are organized into buckets. Keys with the same hash code are stored The number of buckets can be automatically increased by a call to insert, or as the result of calling rehash. ---- +=== Configuration macros + +==== `BOOST_UNORDERED_ENABLE_SERIALIZATION_COMPATIBILITY_V0` + +Globally define this macro to support loading of ``unordered_map``s saved to +a Boost.Serialization archive with a version of Boost prior to Boost 1.84. === Typedefs @@ -1825,4 +1830,59 @@ for (auto i = c.begin(), last = c.end(); i != last; ) { return original_size - c.size(); ``` +=== Serialization + +``unordered_map``s can be archived/retrieved by means of +link:../../../serialization/index.html[Boost.Serialization^] using the API provided +by this library. Both regular and XML archives are supported. + +==== Saving an unordered_map to an archive + +Saves all the elements of an `unordered_map` `x` to an archive (XML archive) `ar`. + +[horizontal] +Requires:;; `std::remove_const::type` and `std::remove_const::type` +are serializable (XML serializable), and they do support Boost.Serialization +`save_construct_data`/`load_construct_data` protocol (automatically suported by +https://en.cppreference.com/w/cpp/named_req/DefaultConstructible[DefaultConstructible^] +types). + --- + +==== Loading an unordered_map from an archive + +Deletes all preexisting elements of an `unordered_map` `x` and inserts +from an archive (XML archive) `ar` restored copies of the elements of the +original `unordered_map` `other` saved to the storage read by `ar`. + +[horizontal] +Requires:;; `value_type` is https://en.cppreference.com/w/cpp/named_req/EmplaceConstructible[EmplaceConstructible^] +from `(std::remove_const::type&&, std::remove_const::type&&)`. +`x.key_equal()` is functionally equivalent to `other.key_equal()`. +Note:;; If the archive was saved using a release of Boost prior to Boost 1.84, +the configuration macro `BOOST_UNORDERED_ENABLE_SERIALIZATION_COMPATIBILITY_V0` +has to be globally defined for this operation to succeed; otherwise, an exception is thrown. + +--- + +==== Saving an iterator/const_iterator to an archive + +Saves the positional information of an `iterator` (`const_iterator`) `it` +to an archive (XML archive) `ar`. `it` can be and `end()` iterator. + +[horizontal] +Requires:;; The `unordered_map` `x` pointed to by `it` has been previously saved to `ar`, +and no modifying operations have been issued on `x` between saving of `x` and +saving of `it`. + +--- + +==== Loading an iterator/const_iterator from an archive + +Makes an `iterator` (`const_iterator`) `it` point to the restored position of +the original `iterator` (`const_iterator`) saved to the storage read by +an archive (XML archive) `ar`. + +[horizontal] +Requires:;; If `x` is the `unordered_map` `it` points to, no modifying operations +have been issued on `x` between loading of `x` and loading of `it`. diff --git a/doc/unordered/unordered_multimap.adoc b/doc/unordered/unordered_multimap.adoc index 7a6a09d7..52b23d9a 100644 --- a/doc/unordered/unordered_multimap.adoc +++ b/doc/unordered/unordered_multimap.adoc @@ -290,6 +290,13 @@ The elements are organized into buckets. Keys with the same hash code are stored The number of buckets can be automatically increased by a call to insert, or as the result of calling rehash. +=== Configuration macros + +==== `BOOST_UNORDERED_ENABLE_SERIALIZATION_COMPATIBILITY_V0` + +Globally define this macro to support loading of ``unordered_multimap``s saved to +a Boost.Serialization archive with a version of Boost prior to Boost 1.84. + === Typedefs [source,c++,subs=+quotes] @@ -1552,4 +1559,59 @@ for (auto i = c.begin(), last = c.end(); i != last; ) { return original_size - c.size(); ``` +=== Serialization + +``unordered_multimap``s can be archived/retrieved by means of +link:../../../serialization/index.html[Boost.Serialization^] using the API provided +by this library. Both regular and XML archives are supported. + +==== Saving an unordered_multimap to an archive + +Saves all the elements of an `unordered_multimap` `x` to an archive (XML archive) `ar`. + +[horizontal] +Requires:;; `std::remove_const::type` and `std::remove_const::type` +are serializable (XML serializable), and they do support Boost.Serialization +`save_construct_data`/`load_construct_data` protocol (automatically suported by +https://en.cppreference.com/w/cpp/named_req/DefaultConstructible[DefaultConstructible^] +types). + --- + +==== Loading an unordered_multimap from an archive + +Deletes all preexisting elements of an `unordered_multimap` `x` and inserts +from an archive (XML archive) `ar` restored copies of the elements of the +original `unordered_multimap` `other` saved to the storage read by `ar`. + +[horizontal] +Requires:;; `value_type` is https://en.cppreference.com/w/cpp/named_req/EmplaceConstructible[EmplaceConstructible^] +from `(std::remove_const::type&&, std::remove_const::type&&)`. +`x.key_equal()` is functionally equivalent to `other.key_equal()`. +Note:;; If the archive was saved using a release of Boost prior to Boost 1.84, +the configuration macro `BOOST_UNORDERED_ENABLE_SERIALIZATION_COMPATIBILITY_V0` +has to be globally defined for this operation to succeed; otherwise, an exception is thrown. + +--- + +==== Saving an iterator/const_iterator to an archive + +Saves the positional information of an `iterator` (`const_iterator`) `it` +to an archive (XML archive) `ar`. `it` can be and `end()` iterator. + +[horizontal] +Requires:;; The `unordered_multimap` `x` pointed to by `it` has been previously saved to `ar`, +and no modifying operations have been issued on `x` between saving of `x` and +saving of `it`. + +--- + +==== Loading an iterator/const_iterator from an archive + +Makes an `iterator` (`const_iterator`) `it` point to the restored position of +the original `iterator` (`const_iterator`) saved to the storage read by +an archive (XML archive) `ar`. + +[horizontal] +Requires:;; If `x` is the `unordered_multimap` `it` points to, no modifying operations +have been issued on `x` between loading of `x` and loading of `it`. diff --git a/doc/unordered/unordered_multiset.adoc b/doc/unordered/unordered_multiset.adoc index 017ef5c2..a1ee1a57 100644 --- a/doc/unordered/unordered_multiset.adoc +++ b/doc/unordered/unordered_multiset.adoc @@ -278,7 +278,12 @@ The elements are organized into buckets. Keys with the same hash code are stored The number of buckets can be automatically increased by a call to insert, or as the result of calling rehash. ---- +=== Configuration macros + +==== `BOOST_UNORDERED_ENABLE_SERIALIZATION_COMPATIBILITY_V0` + +Globally define this macro to support loading of ``unordered_multiset``s saved to +a Boost.Serialization archive with a version of Boost prior to Boost 1.84. === Typedefs @@ -1485,4 +1490,58 @@ for (auto i = c.begin(), last = c.end(); i != last; ) { return original_size - c.size(); ``` +=== Serialization + +``unordered_multiset``s can be archived/retrieved by means of +link:../../../serialization/index.html[Boost.Serialization^] using the API provided +by this library. Both regular and XML archives are supported. + +==== Saving an unordered_multiset to an archive + +Saves all the elements of an `unordered_multiset` `x` to an archive (XML archive) `ar`. + +[horizontal] +Requires:;; `value_type` +is serializable (XML serializable), and it supports Boost.Serialization +`save_construct_data`/`load_construct_data` protocol (automatically suported by +https://en.cppreference.com/w/cpp/named_req/DefaultConstructible[DefaultConstructible^] +types). + --- + +==== Loading an unordered_multiset from an archive + +Deletes all preexisting elements of an `unordered_multiset` `x` and inserts +from an archive (XML archive) `ar` restored copies of the elements of the +original `unordered_multiset` `other` saved to the storage read by `ar`. + +[horizontal] +Requires:;; `value_type` is https://en.cppreference.com/w/cpp/named_req/MoveInsertable[MoveInsertable^]. +`x.key_equal()` is functionally equivalent to `other.key_equal()`. +Note:;; If the archive was saved using a release of Boost prior to Boost 1.84, +the configuration macro `BOOST_UNORDERED_ENABLE_SERIALIZATION_COMPATIBILITY_V0` +has to be globally defined for this operation to succeed; otherwise, an exception is thrown. + +--- + +==== Saving an iterator/const_iterator to an archive + +Saves the positional information of an `iterator` (`const_iterator`) `it` +to an archive (XML archive) `ar`. `it` can be and `end()` iterator. + +[horizontal] +Requires:;; The `unordered_multiset` `x` pointed to by `it` has been previously saved to `ar`, +and no modifying operations have been issued on `x` between saving of `x` and +saving of `it`. + +--- + +==== Loading an iterator/const_iterator from an archive + +Makes an `iterator` (`const_iterator`) `it` point to the restored position of +the original `iterator` (`const_iterator`) saved to the storage read by +an archive (XML archive) `ar`. + +[horizontal] +Requires:;; If `x` is the `unordered_multiset` `it` points to, no modifying operations +have been issued on `x` between loading of `x` and loading of `it`. diff --git a/doc/unordered/unordered_node_map.adoc b/doc/unordered/unordered_node_map.adoc index 9930ebfc..fcc46d5c 100644 --- a/doc/unordered/unordered_node_map.adoc +++ b/doc/unordered/unordered_node_map.adoc @@ -1545,4 +1545,57 @@ for (auto i = c.begin(), last = c.end(); i != last; ) { return original_size - c.size(); ``` +=== Serialization + +``unordered_node_map``s can be archived/retrieved by means of +link:../../../serialization/index.html[Boost.Serialization^] using the API provided +by this library. Both regular and XML archives are supported. + +==== Saving an unordered_node_map to an archive + +Saves all the elements of an `unordered_node_map` `x` to an archive (XML archive) `ar`. + +[horizontal] +Requires:;; `std::remove_const::type` and `std::remove_const::type` +are serializable (XML serializable), and they do support Boost.Serialization +`save_construct_data`/`load_construct_data` protocol (automatically suported by +https://en.cppreference.com/w/cpp/named_req/DefaultConstructible[DefaultConstructible^] +types). + --- + +==== Loading an unordered_node_map from an archive + +Deletes all preexisting elements of an `unordered_node_map` `x` and inserts +from an archive (XML archive) `ar` restored copies of the elements of the +original `unordered_node_map` `other` saved to the storage read by `ar`. + +[horizontal] +Requires:;; `key_type` and `mapped_type` are constructible from +`std::remove_const::type&&` and `std::remove_const::type&&`, +respectively. +`x.key_equal()` is functionally equivalent to `other.key_equal()`. + +--- + +==== Saving an iterator/const_iterator to an archive + +Saves the positional information of an `iterator` (`const_iterator`) `it` +to an archive (XML archive) `ar`. `it` can be and `end()` iterator. + +[horizontal] +Requires:;; The `unordered_node_map` `x` pointed to by `it` has been previously saved to `ar`, +and no modifying operations have been issued on `x` between saving of `x` and +saving of `it`. + +--- + +==== Loading an iterator/const_iterator from an archive + +Makes an `iterator` (`const_iterator`) `it` point to the restored position of +the original `iterator` (`const_iterator`) saved to the storage read by +an archive (XML archive) `ar`. + +[horizontal] +Requires:;; If `x` is the `unordered_node_map` `it` points to, no modifying operations +have been issued on `x` between loading of `x` and loading of `it`. diff --git a/doc/unordered/unordered_node_set.adoc b/doc/unordered/unordered_node_set.adoc index 81633d96..44a7fc9e 100644 --- a/doc/unordered/unordered_node_set.adoc +++ b/doc/unordered/unordered_node_set.adoc @@ -1302,4 +1302,55 @@ for (auto i = c.begin(), last = c.end(); i != last; ) { return original_size - c.size(); ``` +=== Serialization + +``unordered_node_set``s can be archived/retrieved by means of +link:../../../serialization/index.html[Boost.Serialization^] using the API provided +by this library. Both regular and XML archives are supported. + +==== Saving an unordered_node_set to an archive + +Saves all the elements of an `unordered_node_set` `x` to an archive (XML archive) `ar`. + +[horizontal] +Requires:;; `value_type` +is serializable (XML serializable), and it supports Boost.Serialization +`save_construct_data`/`load_construct_data` protocol (automatically suported by +https://en.cppreference.com/w/cpp/named_req/DefaultConstructible[DefaultConstructible^] +types). + --- + +==== Loading an unordered_node_set from an archive + +Deletes all preexisting elements of an `unordered_node_set` `x` and inserts +from an archive (XML archive) `ar` restored copies of the elements of the +original `unordered_node_set` `other` saved to the storage read by `ar`. + +[horizontal] +Requires:;; `value_type` is https://en.cppreference.com/w/cpp/named_req/MoveInsertable[MoveInsertable^]. +`x.key_equal()` is functionally equivalent to `other.key_equal()`. + +--- + +==== Saving an iterator/const_iterator to an archive + +Saves the positional information of an `iterator` (`const_iterator`) `it` +to an archive (XML archive) `ar`. `it` can be and `end()` iterator. + +[horizontal] +Requires:;; The `unordered_node_set` `x` pointed to by `it` has been previously saved to `ar`, +and no modifying operations have been issued on `x` between saving of `x` and +saving of `it`. + +--- + +==== Loading an iterator/const_iterator from an archive + +Makes an `iterator` (`const_iterator`) `it` point to the restored position of +the original `iterator` (`const_iterator`) saved to the storage read by +an archive (XML archive) `ar`. + +[horizontal] +Requires:;; If `x` is the `unordered_node_set` `it` points to, no modifying operations +have been issued on `x` between loading of `x` and loading of `it`. diff --git a/doc/unordered/unordered_set.adoc b/doc/unordered/unordered_set.adoc index 57b6e6f4..4b50b21f 100644 --- a/doc/unordered/unordered_set.adoc +++ b/doc/unordered/unordered_set.adoc @@ -279,7 +279,12 @@ The elements are organized into buckets. Keys with the same hash code are stored The number of buckets can be automatically increased by a call to insert, or as the result of calling rehash. ---- +=== Configuration macros + +==== `BOOST_UNORDERED_ENABLE_SERIALIZATION_COMPATIBILITY_V0` + +Globally define this macro to support loading of ``unordered_set``s saved to +a Boost.Serialization archive with a version of Boost prior to Boost 1.84. === Typedefs @@ -1550,4 +1555,58 @@ for (auto i = c.begin(), last = c.end(); i != last; ) { return original_size - c.size(); ``` +=== Serialization + +``unordered_set``s can be archived/retrieved by means of +link:../../../serialization/index.html[Boost.Serialization^] using the API provided +by this library. Both regular and XML archives are supported. + +==== Saving an unordered_set to an archive + +Saves all the elements of an `unordered_set` `x` to an archive (XML archive) `ar`. + +[horizontal] +Requires:;; `value_type` +is serializable (XML serializable), and it supports Boost.Serialization +`save_construct_data`/`load_construct_data` protocol (automatically suported by +https://en.cppreference.com/w/cpp/named_req/DefaultConstructible[DefaultConstructible^] +types). + --- + +==== Loading an unordered_set from an archive + +Deletes all preexisting elements of an `unordered_set` `x` and inserts +from an archive (XML archive) `ar` restored copies of the elements of the +original `unordered_set` `other` saved to the storage read by `ar`. + +[horizontal] +Requires:;; `value_type` is https://en.cppreference.com/w/cpp/named_req/MoveInsertable[MoveInsertable^]. +`x.key_equal()` is functionally equivalent to `other.key_equal()`. +Note:;; If the archive was saved using a release of Boost prior to Boost 1.84, +the configuration macro `BOOST_UNORDERED_ENABLE_SERIALIZATION_COMPATIBILITY_V0` +has to be globally defined for this operation to succeed; otherwise, an exception is thrown. + +--- + +==== Saving an iterator/const_iterator to an archive + +Saves the positional information of an `iterator` (`const_iterator`) `it` +to an archive (XML archive) `ar`. `it` can be and `end()` iterator. + +[horizontal] +Requires:;; The `unordered_set` `x` pointed to by `it` has been previously saved to `ar`, +and no modifying operations have been issued on `x` between saving of `x` and +saving of `it`. + +--- + +==== Loading an iterator/const_iterator from an archive + +Makes an `iterator` (`const_iterator`) `it` point to the restored position of +the original `iterator` (`const_iterator`) saved to the storage read by +an archive (XML archive) `ar`. + +[horizontal] +Requires:;; If `x` is the `unordered_set` `it` points to, no modifying operations +have been issued on `x` between loading of `x` and loading of `it`. From e1a30831fef1935382a6621e2b83ac8d9d8c2620 Mon Sep 17 00:00:00 2001 From: joaquintides Date: Mon, 7 Aug 2023 10:50:17 +0200 Subject: [PATCH 07/31] editorial --- include/boost/unordered/detail/serialize_container.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/boost/unordered/detail/serialize_container.hpp b/include/boost/unordered/detail/serialize_container.hpp index b4174ea4..76506c6f 100644 --- a/include/boost/unordered/detail/serialize_container.hpp +++ b/include/boost/unordered/detail/serialize_container.hpp @@ -162,7 +162,7 @@ template struct load_or_save_unordered_map /* load */ ar>>core::make_nvp("mapped_version",mapped_version); x.clear(); - x.reserve(s); + x.reserve(s); /* critical so that iterator tracking is stable */ for(std::size_t n=0;n key("key",ar,key_version); From ff9d08a917cda5537590ead11fe053df55c1e52a Mon Sep 17 00:00:00 2001 From: joaquintides Date: Tue, 15 Aug 2023 12:14:16 +0200 Subject: [PATCH 08/31] adapted to iterators (eventually) holding fancy pointers --- .../detail/serialize_node_pointer.hpp | 57 ++++++++++++------- 1 file changed, 36 insertions(+), 21 deletions(-) diff --git a/include/boost/unordered/detail/serialize_node_pointer.hpp b/include/boost/unordered/detail/serialize_node_pointer.hpp index ea4a4da2..95f37cb3 100644 --- a/include/boost/unordered/detail/serialize_node_pointer.hpp +++ b/include/boost/unordered/detail/serialize_node_pointer.hpp @@ -9,6 +9,7 @@ #ifndef BOOST_UNORDERED_DETAIL_SERIALIZE_NODE_POINTER_HPP #define BOOST_UNORDERED_DETAIL_SERIALIZE_NODE_POINTER_HPP +#include #include #include #include @@ -39,44 +40,58 @@ struct serialization_tracker void serialize(Archive&,unsigned int){} /* no data emitted */ }; -template -void track_node_pointer(Archive& ar,const Node* p) +template +void track_node_pointer(Archive& ar,NodePtr p) { + typedef typename boost::pointer_traits ptr_traits; + typedef typename boost::remove_const< + typename ptr_traits::element_type>::type node_type; + if(p){ ar&core::make_nvp( "node", - *reinterpret_cast*>(const_cast(p))); + *reinterpret_cast*>( + const_cast( + boost::to_address(p)))); } } -template -void serialize_node_pointer(Archive& ar,Node*& p,boost::true_type /* save */) +template +void serialize_node_pointer( + Archive& ar,NodePtr& p,boost::true_type /* save */) { - typedef typename boost::remove_const::type node_type; - typedef serialization_tracker tracker; + typedef typename boost::pointer_traits ptr_traits; + typedef typename boost::remove_const< + typename ptr_traits::element_type>::type node_type; + typedef serialization_tracker tracker; - tracker* pn= + tracker* pt= const_cast( reinterpret_cast( - const_cast(p))); - ar<( + boost::to_address(p)))); + ar< -void serialize_node_pointer(Archive& ar,Node*& p,boost::false_type /* load */) +template +void serialize_node_pointer( + Archive& ar,NodePtr& p,boost::false_type /* load */) { - typedef typename boost::remove_const::type node_type; - typedef serialization_tracker tracker; + typedef typename boost::pointer_traits ptr_traits; + typedef typename boost::remove_const< + typename ptr_traits::element_type>::type node_type; + typedef serialization_tracker tracker; - tracker* pn; - ar>>core::make_nvp("pointer",pn); - p=const_cast( - reinterpret_cast( - const_cast(pn))); + tracker* pt; + ar>>core::make_nvp("pointer",pt); + node_type* pn=const_cast( + reinterpret_cast( + const_cast(pt))); + p=pn?ptr_traits::pointer_to(*pn):0; } -template -void serialize_node_pointer(Archive& ar,Node*& p) +template +void serialize_node_pointer(Archive& ar,NodePtr& p) { serialize_node_pointer( ar,p, From d83efc5ea410bb26e208b7b8d27de2d23f81516c Mon Sep 17 00:00:00 2001 From: joaquintides Date: Tue, 15 Aug 2023 15:55:13 +0200 Subject: [PATCH 09/31] added first tests of serialization support --- test/Jamfile.v2 | 13 +++ test/objects/test.hpp | 10 ++ test/unordered/serialization_tests.cpp | 142 +++++++++++++++++++++++++ 3 files changed, 165 insertions(+) create mode 100644 test/unordered/serialization_tests.cpp diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index dda83b68..a906f4b6 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -33,6 +33,18 @@ project msvc:on ; +alias serialization + : usage-requirements + /boost//serialization + ; + +alias serialization + : usage-requirements + /boost//serialization/"/wd4127" + : requirements + msvc + ; + run unordered/prime_fmod_tests.cpp ; run unordered/fwd_set_test.cpp ; run unordered/fwd_map_test.cpp ; @@ -85,6 +97,7 @@ run unordered/copy_tests.cpp : : : BOOST_UNORDERED_USE_MOVE : bmove_copy run unordered/move_tests.cpp : : : BOOST_UNORDERED_USE_MOVE : bmove_move ; run unordered/assign_tests.cpp : : : BOOST_UNORDERED_USE_MOVE : bmove_assign ; +run unordered/serialization_tests.cpp serialization ; run exception/constructor_exception_tests.cpp ; run exception/copy_exception_tests.cpp ; diff --git a/test/objects/test.hpp b/test/objects/test.hpp index b1a253e5..17abed92 100644 --- a/test/objects/test.hpp +++ b/test/objects/test.hpp @@ -1,6 +1,7 @@ // Copyright 2006-2009 Daniel James. // Copyright 2022 Christian Mazakas +// Copyright 2023 Joaqui M Lopez Munoz // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -11,6 +12,7 @@ #include "../helpers/fwd.hpp" #include "../helpers/memory.hpp" #include +#include #include #include @@ -74,6 +76,14 @@ namespace test { { return out << "(" << o.tag1_ << "," << o.tag2_ << ")"; } + + + template + void serialize(Archive& ar,unsigned int) + { + ar & boost::core::make_nvp("tag1", tag1_); + ar & boost::core::make_nvp("tag2", tag2_); + } }; class movable : private counted_object diff --git a/test/unordered/serialization_tests.cpp b/test/unordered/serialization_tests.cpp new file mode 100644 index 00000000..be5a9cf1 --- /dev/null +++ b/test/unordered/serialization_tests.cpp @@ -0,0 +1,142 @@ +// Copyright (C) 2023 Joaquin M Lopez Munoz +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +#define BOOST_UNORDERED_FOA_TESTS +#include "../helpers/unordered.hpp" + +#include "../objects/test.hpp" +#include "../helpers/random_values.hpp" + +#include +#include +#include +#include +#include +#include +#include +#include + +#ifndef BOOST_NO_CXX11_HDR_RANDOM +#include +#endif + +namespace { + + template + void serialization_tests(Container*, ArchivePair*, test::random_generator generator) + { + typedef typename Container::iterator iterator; + typedef std::vector iterator_vector; + typedef typename ArchivePair::first_type output_archive; + typedef typename ArchivePair::second_type input_archive; + + BOOST_LIGHTWEIGHT_TEST_OSTREAM << "serialization_tests1\n"; + { + Container c; + iterator it = c.end(); + + std::ostringstream oss; + { + output_archive oa(oss); + oa << boost::serialization::make_nvp("container", c); + oa << boost::serialization::make_nvp("iterator", it); + } + + test::random_values values(100, generator); + Container c2(values.begin(), values.end()); + iterator it2 = c2.begin(); + std::istringstream iss(oss.str()); + input_archive ia(iss); + ia >> boost::serialization::make_nvp("container", c2); + ia >> boost::serialization::make_nvp("iterator", it2); + BOOST_TEST(c2.empty()); + BOOST_TEST(it2 == c2.end()); + } + + BOOST_LIGHTWEIGHT_TEST_OSTREAM << "serialization_tests2\n"; + { + test::random_values values(100, generator); + Container c(values.begin(), values.end()); + + iterator_vector v; + for (iterator first = c.begin(), last=c.end(); ; ) { + v.push_back(first); + if(first == last) break; + ++first; + } + +#ifndef BOOST_NO_CXX11_HDR_RANDOM + std::shuffle(v.begin(), v.end(), std::mt19937(4213)); +#else + std::random_shuffle(v.begin(), v.end()); +#endif + + std::ostringstream oss; + { + output_archive oa(oss); + oa << boost::serialization::make_nvp("container", c); + oa << boost::serialization::make_nvp("iterators", v); + } + + Container c2; + iterator_vector v2; + std::istringstream iss(oss.str()); + input_archive ia(iss); + ia >> boost::serialization::make_nvp("container", c2); + ia >> boost::serialization::make_nvp("iterators", v2); + BOOST_TEST_EQ(v.size(), v2.size()); + + for (int i=0; i < v.size(); ++i) { + iterator it = v[i]; + iterator it2 = v2[i]; + if (it == c.end()) { + BOOST_TEST(it2 == c2.end()); + } + else { + BOOST_TEST(it2 != c2.end()); + BOOST_TEST(*it == *it2); + } + } + } + } + + using test::default_generator; + + std::pair< + boost::archive::text_oarchive, boost::archive::text_iarchive>* text_archive; + std::pair< + boost::archive::xml_oarchive, boost::archive::xml_iarchive>* xml_archive; + +#ifdef BOOST_UNORDERED_FOA_TESTS + boost::unordered_flat_map< + test::object, test::object, test::hash, test::equal_to>* test_flat_map; + boost::unordered_node_map< + test::object, test::object, test::hash, test::equal_to>* test_node_map; + boost::unordered_flat_set< + test::object, test::hash, test::equal_to>* test_flat_set; + boost::unordered_node_set< + test::object, test::hash, test::equal_to>* test_node_set; + + UNORDERED_TEST(serialization_tests, + ((test_flat_map)(test_node_map)(test_flat_set)(test_node_set)) + ((text_archive)(xml_archive)) + ((default_generator))) +#else + boost::unordered_map< + test::object, test::object, test::hash, test::equal_to>* test_map; + boost::unordered_multimap< + test::object, test::object, test::hash, test::equal_to>* test_multimap; + boost::unordered_set< + test::object, test::hash, test::equal_to>* test_set; + boost::unordered_multiset< + test::object, test::hash, test::equal_to>* test_multiset; + + UNORDERED_TEST(serialization_tests, + ((test_map)(test_multimap)(test_set)(test_multiset)) + ((text_archive)(xml_archive)) + ((default_generator))) +#endif +} + +RUN_TESTS() From cf298cba7fdd33e5270eff01f99a5e3908813231 Mon Sep 17 00:00:00 2001 From: joaquintides Date: Tue, 15 Aug 2023 15:57:52 +0200 Subject: [PATCH 10/31] removed spurious macro definition --- test/unordered/serialization_tests.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/test/unordered/serialization_tests.cpp b/test/unordered/serialization_tests.cpp index be5a9cf1..78380f3f 100644 --- a/test/unordered/serialization_tests.cpp +++ b/test/unordered/serialization_tests.cpp @@ -2,7 +2,6 @@ // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -#define BOOST_UNORDERED_FOA_TESTS #include "../helpers/unordered.hpp" #include "../objects/test.hpp" From 8fe3ebc7b30dbd7e56cb3780bbb191e0e42b897e Mon Sep 17 00:00:00 2001 From: joaquintides Date: Tue, 15 Aug 2023 16:18:27 +0200 Subject: [PATCH 11/31] simplified serialization building --- test/Jamfile.v2 | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index a906f4b6..8fe3eb19 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -33,18 +33,6 @@ project msvc:on ; -alias serialization - : usage-requirements - /boost//serialization - ; - -alias serialization - : usage-requirements - /boost//serialization/"/wd4127" - : requirements - msvc - ; - run unordered/prime_fmod_tests.cpp ; run unordered/fwd_set_test.cpp ; run unordered/fwd_map_test.cpp ; @@ -97,7 +85,7 @@ run unordered/copy_tests.cpp : : : BOOST_UNORDERED_USE_MOVE : bmove_copy run unordered/move_tests.cpp : : : BOOST_UNORDERED_USE_MOVE : bmove_move ; run unordered/assign_tests.cpp : : : BOOST_UNORDERED_USE_MOVE : bmove_assign ; -run unordered/serialization_tests.cpp serialization ; +run unordered/serialization_tests.cpp : : : /boost//serialization/off ; run exception/constructor_exception_tests.cpp ; run exception/copy_exception_tests.cpp ; From 4e458f00547fda641a82f3f59f43aa800acfc303 Mon Sep 17 00:00:00 2001 From: joaquintides Date: Tue, 15 Aug 2023 16:22:38 +0200 Subject: [PATCH 12/31] added foa_exception_tests --- test/Jamfile.v2 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 8fe3eb19..e2b3abc6 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -150,6 +150,7 @@ for local test in $(FOA_TESTS) run unordered/link_test_1.cpp unordered/link_test_2.cpp : : : $(CPP11) BOOST_UNORDERED_FOA_TESTS : foa_link_test ; run unordered/scoped_allocator.cpp : : : $(CPP11) msvc-14.0:no BOOST_UNORDERED_FOA_TESTS : foa_scoped_allocator ; run unordered/hash_is_avalanching_test.cpp ; +run unordered/serialization_tests.cpp : : : $(CPP11) BOOST_UNORDERED_FOA_TESTS /boost//serialization/off : foa_serialization_tests ; run exception/constructor_exception_tests.cpp : : : $(CPP11) BOOST_UNORDERED_FOA_TESTS : foa_constructor_exception_tests ; run exception/copy_exception_tests.cpp : : : $(CPP11) BOOST_UNORDERED_FOA_TESTS : foa_copy_exception_tests ; run exception/assign_exception_tests.cpp : : : $(CPP11) BOOST_UNORDERED_FOA_TESTS : foa_assign_exception_tests ; @@ -165,6 +166,7 @@ alias foa_tests : foa_link_test foa_scoped_allocator hash_is_avalanching_test + foa_serialization_tests foa_constructor_exception_tests foa_copy_exception_tests foa_assign_exception_tests From 1f3980986d1ad2b34a03b0fd9df6562a24a80f3a Mon Sep 17 00:00:00 2001 From: joaquintides Date: Tue, 15 Aug 2023 16:48:37 +0200 Subject: [PATCH 13/31] avoided sign-compare warnings --- test/unordered/serialization_tests.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/unordered/serialization_tests.cpp b/test/unordered/serialization_tests.cpp index 78380f3f..370ac6dd 100644 --- a/test/unordered/serialization_tests.cpp +++ b/test/unordered/serialization_tests.cpp @@ -15,6 +15,7 @@ #include #include #include +#include #ifndef BOOST_NO_CXX11_HDR_RANDOM #include @@ -86,7 +87,7 @@ namespace { ia >> boost::serialization::make_nvp("iterators", v2); BOOST_TEST_EQ(v.size(), v2.size()); - for (int i=0; i < v.size(); ++i) { + for (std::size_t i=0; i < v.size(); ++i) { iterator it = v[i]; iterator it2 = v2[i]; if (it == c.end()) { From b3b4853dfab8cafff237665116f7c55d67a4f76b Mon Sep 17 00:00:00 2001 From: joaquintides Date: Tue, 15 Aug 2023 18:58:53 +0200 Subject: [PATCH 14/31] added legacy serialization tests --- test/Jamfile.v2 | 21 +- test/legacy_archives/map_int_0.txt | 1 + test/legacy_archives/map_int_0.xml | 14 + test/legacy_archives/map_int_10.txt | 1 + test/legacy_archives/map_int_10.xml | 110 ++ test/legacy_archives/map_int_100.txt | 1 + test/legacy_archives/map_int_100.xml | 1022 +++++++++++++++ test/legacy_archives/map_string_0.txt | 1 + test/legacy_archives/map_string_0.xml | 14 + test/legacy_archives/map_string_10.txt | 1 + test/legacy_archives/map_string_10.xml | 110 ++ test/legacy_archives/map_string_100.txt | 1 + test/legacy_archives/map_string_100.xml | 1022 +++++++++++++++ test/legacy_archives/multimap_int_0.txt | 1 + test/legacy_archives/multimap_int_0.xml | 14 + test/legacy_archives/multimap_int_10.txt | 1 + test/legacy_archives/multimap_int_10.xml | 126 ++ test/legacy_archives/multimap_int_100.txt | 1 + test/legacy_archives/multimap_int_100.xml | 1230 ++++++++++++++++++ test/legacy_archives/multimap_string_0.txt | 1 + test/legacy_archives/multimap_string_0.xml | 14 + test/legacy_archives/multimap_string_10.txt | 1 + test/legacy_archives/multimap_string_10.xml | 126 ++ test/legacy_archives/multimap_string_100.txt | 1 + test/legacy_archives/multimap_string_100.xml | 1230 ++++++++++++++++++ test/legacy_archives/multiset_int_0.txt | 1 + test/legacy_archives/multiset_int_0.xml | 14 + test/legacy_archives/multiset_int_10.txt | 1 + test/legacy_archives/multiset_int_10.xml | 42 + test/legacy_archives/multiset_int_100.txt | 1 + test/legacy_archives/multiset_int_100.xml | 318 +++++ test/legacy_archives/multiset_string_0.txt | 1 + test/legacy_archives/multiset_string_0.xml | 14 + test/legacy_archives/multiset_string_10.txt | 1 + test/legacy_archives/multiset_string_10.xml | 42 + test/legacy_archives/multiset_string_100.txt | 1 + test/legacy_archives/multiset_string_100.xml | 318 +++++ test/legacy_archives/set_int_0.txt | 1 + test/legacy_archives/set_int_0.xml | 14 + test/legacy_archives/set_int_10.txt | 1 + test/legacy_archives/set_int_10.xml | 38 + test/legacy_archives/set_int_100.txt | 1 + test/legacy_archives/set_int_100.xml | 266 ++++ test/legacy_archives/set_string_0.txt | 1 + test/legacy_archives/set_string_0.xml | 14 + test/legacy_archives/set_string_10.txt | 1 + test/legacy_archives/set_string_10.xml | 38 + test/legacy_archives/set_string_100.txt | 1 + test/legacy_archives/set_string_100.xml | 266 ++++ test/unordered/serialization_tests.cpp | 68 +- 50 files changed, 6526 insertions(+), 3 deletions(-) create mode 100644 test/legacy_archives/map_int_0.txt create mode 100644 test/legacy_archives/map_int_0.xml create mode 100644 test/legacy_archives/map_int_10.txt create mode 100644 test/legacy_archives/map_int_10.xml create mode 100644 test/legacy_archives/map_int_100.txt create mode 100644 test/legacy_archives/map_int_100.xml create mode 100644 test/legacy_archives/map_string_0.txt create mode 100644 test/legacy_archives/map_string_0.xml create mode 100644 test/legacy_archives/map_string_10.txt create mode 100644 test/legacy_archives/map_string_10.xml create mode 100644 test/legacy_archives/map_string_100.txt create mode 100644 test/legacy_archives/map_string_100.xml create mode 100644 test/legacy_archives/multimap_int_0.txt create mode 100644 test/legacy_archives/multimap_int_0.xml create mode 100644 test/legacy_archives/multimap_int_10.txt create mode 100644 test/legacy_archives/multimap_int_10.xml create mode 100644 test/legacy_archives/multimap_int_100.txt create mode 100644 test/legacy_archives/multimap_int_100.xml create mode 100644 test/legacy_archives/multimap_string_0.txt create mode 100644 test/legacy_archives/multimap_string_0.xml create mode 100644 test/legacy_archives/multimap_string_10.txt create mode 100644 test/legacy_archives/multimap_string_10.xml create mode 100644 test/legacy_archives/multimap_string_100.txt create mode 100644 test/legacy_archives/multimap_string_100.xml create mode 100644 test/legacy_archives/multiset_int_0.txt create mode 100644 test/legacy_archives/multiset_int_0.xml create mode 100644 test/legacy_archives/multiset_int_10.txt create mode 100644 test/legacy_archives/multiset_int_10.xml create mode 100644 test/legacy_archives/multiset_int_100.txt create mode 100644 test/legacy_archives/multiset_int_100.xml create mode 100644 test/legacy_archives/multiset_string_0.txt create mode 100644 test/legacy_archives/multiset_string_0.xml create mode 100644 test/legacy_archives/multiset_string_10.txt create mode 100644 test/legacy_archives/multiset_string_10.xml create mode 100644 test/legacy_archives/multiset_string_100.txt create mode 100644 test/legacy_archives/multiset_string_100.xml create mode 100644 test/legacy_archives/set_int_0.txt create mode 100644 test/legacy_archives/set_int_0.xml create mode 100644 test/legacy_archives/set_int_10.txt create mode 100644 test/legacy_archives/set_int_10.xml create mode 100644 test/legacy_archives/set_int_100.txt create mode 100644 test/legacy_archives/set_int_100.xml create mode 100644 test/legacy_archives/set_string_0.txt create mode 100644 test/legacy_archives/set_string_0.xml create mode 100644 test/legacy_archives/set_string_10.txt create mode 100644 test/legacy_archives/set_string_10.xml create mode 100644 test/legacy_archives/set_string_100.txt create mode 100644 test/legacy_archives/set_string_100.xml diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index e2b3abc6..bc35f135 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -85,7 +85,15 @@ run unordered/copy_tests.cpp : : : BOOST_UNORDERED_USE_MOVE : bmove_copy run unordered/move_tests.cpp : : : BOOST_UNORDERED_USE_MOVE : bmove_move ; run unordered/assign_tests.cpp : : : BOOST_UNORDERED_USE_MOVE : bmove_assign ; -run unordered/serialization_tests.cpp : : : /boost//serialization/off ; +path-constant BOOST_UNORDERED_TEST_DIR : . ; + +run unordered/serialization_tests.cpp + : $(BOOST_UNORDERED_TEST_DIR) + : + : BOOST_UNORDERED_ENABLE_SERIALIZATION_COMPATIBILITY_V0 + off # Boost.Serialization headers are not warning-free + msvc:_CRT_SECURE_NO_WARNINGS + /boost//serialization/off ; run exception/constructor_exception_tests.cpp ; run exception/copy_exception_tests.cpp ; @@ -150,7 +158,16 @@ for local test in $(FOA_TESTS) run unordered/link_test_1.cpp unordered/link_test_2.cpp : : : $(CPP11) BOOST_UNORDERED_FOA_TESTS : foa_link_test ; run unordered/scoped_allocator.cpp : : : $(CPP11) msvc-14.0:no BOOST_UNORDERED_FOA_TESTS : foa_scoped_allocator ; run unordered/hash_is_avalanching_test.cpp ; -run unordered/serialization_tests.cpp : : : $(CPP11) BOOST_UNORDERED_FOA_TESTS /boost//serialization/off : foa_serialization_tests ; + +run unordered/serialization_tests.cpp + : + : + : $(CPP11) + BOOST_UNORDERED_FOA_TESTS + off # Boost.Serialization headers are not warning-free + /boost//serialization/off + : foa_serialization_tests ; + run exception/constructor_exception_tests.cpp : : : $(CPP11) BOOST_UNORDERED_FOA_TESTS : foa_constructor_exception_tests ; run exception/copy_exception_tests.cpp : : : $(CPP11) BOOST_UNORDERED_FOA_TESTS : foa_copy_exception_tests ; run exception/assign_exception_tests.cpp : : : $(CPP11) BOOST_UNORDERED_FOA_TESTS : foa_assign_exception_tests ; diff --git a/test/legacy_archives/map_int_0.txt b/test/legacy_archives/map_int_0.txt new file mode 100644 index 00000000..0c851da6 --- /dev/null +++ b/test/legacy_archives/map_int_0.txt @@ -0,0 +1 @@ +22 serialization::archive 19 0 0 0 0 0 0 0 0 0 diff --git a/test/legacy_archives/map_int_0.xml b/test/legacy_archives/map_int_0.xml new file mode 100644 index 00000000..059687d4 --- /dev/null +++ b/test/legacy_archives/map_int_0.xml @@ -0,0 +1,14 @@ + + + + + 0 + 0 + 0 + + + 0 + 0 + + + diff --git a/test/legacy_archives/map_int_10.txt b/test/legacy_archives/map_int_10.txt new file mode 100644 index 00000000..30e8d408 --- /dev/null +++ b/test/legacy_archives/map_int_10.txt @@ -0,0 +1 @@ +22 serialization::archive 19 0 0 10 13 0 0 0 2097663454 2097663454 -1785808236 -1785808236 -938475945 -938475945 1354395138 1354395138 581989062 581989062 -1694006096 -1694006096 1832705803 1832705803 -743509129 -743509129 1021729225 1021729225 -1168265900 -1168265900 0 0 14 0 -938475945 -938475945 -938475945 -938475945 -1694006096 -1694006096 -1785808236 -1785808236 1021729225 1021729225 1021729225 1021729225 1832705803 1832705803 1832705803 1832705803 581989062 581989062 1354395138 1354395138 2097663454 2097663454 -743509129 -743509129 -743509129 -743509129 -1168265900 -1168265900 diff --git a/test/legacy_archives/map_int_10.xml b/test/legacy_archives/map_int_10.xml new file mode 100644 index 00000000..62cdfc76 --- /dev/null +++ b/test/legacy_archives/map_int_10.xml @@ -0,0 +1,110 @@ + + + + + 10 + 13 + 0 + + 2097663454 + 2097663454 + + + -1785808236 + -1785808236 + + + -938475945 + -938475945 + + + 1354395138 + 1354395138 + + + 581989062 + 581989062 + + + -1694006096 + -1694006096 + + + 1832705803 + 1832705803 + + + -743509129 + -743509129 + + + 1021729225 + 1021729225 + + + -1168265900 + -1168265900 + + + + 14 + 0 + + -938475945 + -938475945 + + + -938475945 + -938475945 + + + -1694006096 + -1694006096 + + + -1785808236 + -1785808236 + + + 1021729225 + 1021729225 + + + 1021729225 + 1021729225 + + + 1832705803 + 1832705803 + + + 1832705803 + 1832705803 + + + 581989062 + 581989062 + + + 1354395138 + 1354395138 + + + 2097663454 + 2097663454 + + + -743509129 + -743509129 + + + -743509129 + -743509129 + + + -1168265900 + -1168265900 + + + + diff --git a/test/legacy_archives/map_int_100.txt b/test/legacy_archives/map_int_100.txt new file mode 100644 index 00000000..82983912 --- /dev/null +++ b/test/legacy_archives/map_int_100.txt @@ -0,0 +1 @@ +22 serialization::archive 19 0 0 100 193 0 0 0 1775667486 1775667486 -948676228 -948676228 -1108026676 -1108026676 -1866983349 -1866983349 258343568 258343568 -1068590402 -1068590402 -432548865 -432548865 177811234 177811234 5018725 5018725 190104374 190104374 1315739433 1315739433 -1995826660 -1995826660 -305386173 -305386173 287343763 287343763 1241175627 1241175627 109292002 109292002 1021729225 1021729225 918842470 918842470 -1426106865 -1426106865 -1338732474 -1338732474 669358715 669358715 183526573 183526573 -938475945 -938475945 -1694006096 -1694006096 1630722604 1630722604 -1933552094 -1933552094 257760945 257760945 390937317 390937317 -1510933233 -1510933233 259868705 259868705 -38527737 -38527737 -551129560 -551129560 1832705803 1832705803 607596425 607596425 -1520512970 -1520512970 -1674340339 -1674340339 1421489007 1421489007 -501526237 -501526237 -1873731147 -1873731147 -1877186230 -1877186230 -218590163 -218590163 647803737 647803737 -859679032 -859679032 967560929 967560929 -815473344 -815473344 -487119163 -487119163 -1546216506 -1546216506 1859681623 1859681623 -1040862600 -1040862600 -893024018 -893024018 -1252588227 -1252588227 -1319261042 -1319261042 -1785808236 -1785808236 1198739057 1198739057 -1469084794 -1469084794 473010817 473010817 1481537722 1481537722 2138619156 2138619156 -1039351567 -1039351567 -493829536 -493829536 411876340 411876340 -364116164 -364116164 776215953 776215953 1568788209 1568788209 -1631204972 -1631204972 601527218 601527218 -232190041 -232190041 286273879 286273879 2075478837 2075478837 -1168265900 -1168265900 581989062 581989062 178482033 178482033 1354395138 1354395138 -1530408968 -1530408968 -414767254 -414767254 1970368353 1970368353 -1967815281 -1967815281 941660988 941660988 1786883066 1786883066 670291604 670291604 -1803607012 -1803607012 1829132124 1829132124 -432502583 -432502583 -1642734171 -1642734171 -425048532 -425048532 2097663454 2097663454 -1938999974 -1938999974 -917350225 -917350225 2056892401 2056892401 -55935255 -55935255 -1802192500 -1802192500 -418860175 -418860175 -2146202839 -2146202839 310524955 310524955 159865104 159865104 -265464733 -265464733 -1996442747 -1996442747 430136711 430136711 -743509129 -743509129 167237906 167237906 0 0 152 0 -938475945 -938475945 -938475945 -938475945 -1694006096 -1694006096 -1785808236 -1785808236 1021729225 1021729225 1021729225 1021729225 1832705803 1832705803 1832705803 1832705803 581989062 581989062 1354395138 1354395138 2097663454 2097663454 -743509129 -743509129 -743509129 -743509129 -1168265900 -1168265900 -414767254 -414767254 -1039351567 -1039351567 -1039351567 -1039351567 167237906 167237906 177811234 177811234 -364116164 -364116164 -1933552094 -1933552094 259868705 259868705 259868705 259868705 -501526237 -501526237 -501526237 -501526237 776215953 776215953 776215953 776215953 1630722604 1630722604 310524955 310524955 310524955 310524955 473010817 473010817 473010817 473010817 1970368353 1970368353 1970368353 1970368353 647803737 647803737 647803737 647803737 -1252588227 -1252588227 -1252588227 -1252588227 669358715 669358715 669358715 669358715 2075478837 2075478837 2075478837 2075478837 -1995826660 -1995826660 109292002 109292002 1421489007 1421489007 1421489007 1421489007 287343763 287343763 287343763 287343763 -1108026676 -1108026676 1829132124 1829132124 -1546216506 -1546216506 941660988 941660988 -305386173 -305386173 -305386173 -305386173 -815473344 -815473344 -1877186230 -1877186230 601527218 601527218 -38527737 -38527737 -38527737 -38527737 -1068590402 -1068590402 1568788209 1568788209 1568788209 1568788209 1198739057 1198739057 1198739057 1198739057 2138619156 2138619156 -218590163 -218590163 -218590163 -218590163 -1469084794 -1469084794 -493829536 -493829536 -232190041 -232190041 -232190041 -232190041 -1674340339 -1674340339 -1674340339 -1674340339 1775667486 1775667486 -948676228 -948676228 -1338732474 -1338732474 178482033 178482033 178482033 178482033 918842470 918842470 -917350225 -917350225 -917350225 -917350225 390937317 390937317 390937317 390937317 -418860175 -418860175 -418860175 -418860175 670291604 670291604 1859681623 1859681623 1859681623 1859681623 1241175627 1241175627 1241175627 1241175627 -487119163 -487119163 -487119163 -487119163 1315739433 1315739433 1315739433 1315739433 -1938999974 -1938999974 1786883066 1786883066 -55935255 -55935255 -55935255 -55935255 -2146202839 -2146202839 -2146202839 -2146202839 -1866983349 -1866983349 -1866983349 -1866983349 607596425 607596425 607596425 607596425 -425048532 -425048532 -893024018 -893024018 -1873731147 -1873731147 -1873731147 -1873731147 159865104 159865104 411876340 411876340 2056892401 2056892401 2056892401 2056892401 -1642734171 -1642734171 -1642734171 -1642734171 -1996442747 -1996442747 -1996442747 -1996442747 257760945 257760945 257760945 257760945 -1631204972 -1631204972 -1802192500 -1802192500 -432548865 -432548865 -432548865 -432548865 -551129560 -551129560 -1319261042 -1319261042 -859679032 -859679032 -1510933233 -1510933233 -1510933233 -1510933233 286273879 286273879 286273879 286273879 1481537722 1481537722 258343568 258343568 -265464733 -265464733 -265464733 -265464733 -432502583 -432502583 -432502583 -432502583 -1967815281 -1967815281 -1967815281 -1967815281 -1530408968 -1530408968 967560929 967560929 967560929 967560929 -1426106865 -1426106865 -1426106865 -1426106865 190104374 190104374 430136711 430136711 430136711 430136711 -1803607012 -1803607012 -1520512970 -1520512970 5018725 5018725 5018725 5018725 183526573 183526573 183526573 183526573 -1040862600 -1040862600 diff --git a/test/legacy_archives/map_int_100.xml b/test/legacy_archives/map_int_100.xml new file mode 100644 index 00000000..b59ee8ee --- /dev/null +++ b/test/legacy_archives/map_int_100.xml @@ -0,0 +1,1022 @@ + + + + + 100 + 193 + 0 + + 1775667486 + 1775667486 + + + -948676228 + -948676228 + + + -1108026676 + -1108026676 + + + -1866983349 + -1866983349 + + + 258343568 + 258343568 + + + -1068590402 + -1068590402 + + + -432548865 + -432548865 + + + 177811234 + 177811234 + + + 5018725 + 5018725 + + + 190104374 + 190104374 + + + 1315739433 + 1315739433 + + + -1995826660 + -1995826660 + + + -305386173 + -305386173 + + + 287343763 + 287343763 + + + 1241175627 + 1241175627 + + + 109292002 + 109292002 + + + 1021729225 + 1021729225 + + + 918842470 + 918842470 + + + -1426106865 + -1426106865 + + + -1338732474 + -1338732474 + + + 669358715 + 669358715 + + + 183526573 + 183526573 + + + -938475945 + -938475945 + + + -1694006096 + -1694006096 + + + 1630722604 + 1630722604 + + + -1933552094 + -1933552094 + + + 257760945 + 257760945 + + + 390937317 + 390937317 + + + -1510933233 + -1510933233 + + + 259868705 + 259868705 + + + -38527737 + -38527737 + + + -551129560 + -551129560 + + + 1832705803 + 1832705803 + + + 607596425 + 607596425 + + + -1520512970 + -1520512970 + + + -1674340339 + -1674340339 + + + 1421489007 + 1421489007 + + + -501526237 + -501526237 + + + -1873731147 + -1873731147 + + + -1877186230 + -1877186230 + + + -218590163 + -218590163 + + + 647803737 + 647803737 + + + -859679032 + -859679032 + + + 967560929 + 967560929 + + + -815473344 + -815473344 + + + -487119163 + -487119163 + + + -1546216506 + -1546216506 + + + 1859681623 + 1859681623 + + + -1040862600 + -1040862600 + + + -893024018 + -893024018 + + + -1252588227 + -1252588227 + + + -1319261042 + -1319261042 + + + -1785808236 + -1785808236 + + + 1198739057 + 1198739057 + + + -1469084794 + -1469084794 + + + 473010817 + 473010817 + + + 1481537722 + 1481537722 + + + 2138619156 + 2138619156 + + + -1039351567 + -1039351567 + + + -493829536 + -493829536 + + + 411876340 + 411876340 + + + -364116164 + -364116164 + + + 776215953 + 776215953 + + + 1568788209 + 1568788209 + + + -1631204972 + -1631204972 + + + 601527218 + 601527218 + + + -232190041 + -232190041 + + + 286273879 + 286273879 + + + 2075478837 + 2075478837 + + + -1168265900 + -1168265900 + + + 581989062 + 581989062 + + + 178482033 + 178482033 + + + 1354395138 + 1354395138 + + + -1530408968 + -1530408968 + + + -414767254 + -414767254 + + + 1970368353 + 1970368353 + + + -1967815281 + -1967815281 + + + 941660988 + 941660988 + + + 1786883066 + 1786883066 + + + 670291604 + 670291604 + + + -1803607012 + -1803607012 + + + 1829132124 + 1829132124 + + + -432502583 + -432502583 + + + -1642734171 + -1642734171 + + + -425048532 + -425048532 + + + 2097663454 + 2097663454 + + + -1938999974 + -1938999974 + + + -917350225 + -917350225 + + + 2056892401 + 2056892401 + + + -55935255 + -55935255 + + + -1802192500 + -1802192500 + + + -418860175 + -418860175 + + + -2146202839 + -2146202839 + + + 310524955 + 310524955 + + + 159865104 + 159865104 + + + -265464733 + -265464733 + + + -1996442747 + -1996442747 + + + 430136711 + 430136711 + + + -743509129 + -743509129 + + + 167237906 + 167237906 + + + + 152 + 0 + + -938475945 + -938475945 + + + -938475945 + -938475945 + + + -1694006096 + -1694006096 + + + -1785808236 + -1785808236 + + + 1021729225 + 1021729225 + + + 1021729225 + 1021729225 + + + 1832705803 + 1832705803 + + + 1832705803 + 1832705803 + + + 581989062 + 581989062 + + + 1354395138 + 1354395138 + + + 2097663454 + 2097663454 + + + -743509129 + -743509129 + + + -743509129 + -743509129 + + + -1168265900 + -1168265900 + + + -414767254 + -414767254 + + + -1039351567 + -1039351567 + + + -1039351567 + -1039351567 + + + 167237906 + 167237906 + + + 177811234 + 177811234 + + + -364116164 + -364116164 + + + -1933552094 + -1933552094 + + + 259868705 + 259868705 + + + 259868705 + 259868705 + + + -501526237 + -501526237 + + + -501526237 + -501526237 + + + 776215953 + 776215953 + + + 776215953 + 776215953 + + + 1630722604 + 1630722604 + + + 310524955 + 310524955 + + + 310524955 + 310524955 + + + 473010817 + 473010817 + + + 473010817 + 473010817 + + + 1970368353 + 1970368353 + + + 1970368353 + 1970368353 + + + 647803737 + 647803737 + + + 647803737 + 647803737 + + + -1252588227 + -1252588227 + + + -1252588227 + -1252588227 + + + 669358715 + 669358715 + + + 669358715 + 669358715 + + + 2075478837 + 2075478837 + + + 2075478837 + 2075478837 + + + -1995826660 + -1995826660 + + + 109292002 + 109292002 + + + 1421489007 + 1421489007 + + + 1421489007 + 1421489007 + + + 287343763 + 287343763 + + + 287343763 + 287343763 + + + -1108026676 + -1108026676 + + + 1829132124 + 1829132124 + + + -1546216506 + -1546216506 + + + 941660988 + 941660988 + + + -305386173 + -305386173 + + + -305386173 + -305386173 + + + -815473344 + -815473344 + + + -1877186230 + -1877186230 + + + 601527218 + 601527218 + + + -38527737 + -38527737 + + + -38527737 + -38527737 + + + -1068590402 + -1068590402 + + + 1568788209 + 1568788209 + + + 1568788209 + 1568788209 + + + 1198739057 + 1198739057 + + + 1198739057 + 1198739057 + + + 2138619156 + 2138619156 + + + -218590163 + -218590163 + + + -218590163 + -218590163 + + + -1469084794 + -1469084794 + + + -493829536 + -493829536 + + + -232190041 + -232190041 + + + -232190041 + -232190041 + + + -1674340339 + -1674340339 + + + -1674340339 + -1674340339 + + + 1775667486 + 1775667486 + + + -948676228 + -948676228 + + + -1338732474 + -1338732474 + + + 178482033 + 178482033 + + + 178482033 + 178482033 + + + 918842470 + 918842470 + + + -917350225 + -917350225 + + + -917350225 + -917350225 + + + 390937317 + 390937317 + + + 390937317 + 390937317 + + + -418860175 + -418860175 + + + -418860175 + -418860175 + + + 670291604 + 670291604 + + + 1859681623 + 1859681623 + + + 1859681623 + 1859681623 + + + 1241175627 + 1241175627 + + + 1241175627 + 1241175627 + + + -487119163 + -487119163 + + + -487119163 + -487119163 + + + 1315739433 + 1315739433 + + + 1315739433 + 1315739433 + + + -1938999974 + -1938999974 + + + 1786883066 + 1786883066 + + + -55935255 + -55935255 + + + -55935255 + -55935255 + + + -2146202839 + -2146202839 + + + -2146202839 + -2146202839 + + + -1866983349 + -1866983349 + + + -1866983349 + -1866983349 + + + 607596425 + 607596425 + + + 607596425 + 607596425 + + + -425048532 + -425048532 + + + -893024018 + -893024018 + + + -1873731147 + -1873731147 + + + -1873731147 + -1873731147 + + + 159865104 + 159865104 + + + 411876340 + 411876340 + + + 2056892401 + 2056892401 + + + 2056892401 + 2056892401 + + + -1642734171 + -1642734171 + + + -1642734171 + -1642734171 + + + -1996442747 + -1996442747 + + + -1996442747 + -1996442747 + + + 257760945 + 257760945 + + + 257760945 + 257760945 + + + -1631204972 + -1631204972 + + + -1802192500 + -1802192500 + + + -432548865 + -432548865 + + + -432548865 + -432548865 + + + -551129560 + -551129560 + + + -1319261042 + -1319261042 + + + -859679032 + -859679032 + + + -1510933233 + -1510933233 + + + -1510933233 + -1510933233 + + + 286273879 + 286273879 + + + 286273879 + 286273879 + + + 1481537722 + 1481537722 + + + 258343568 + 258343568 + + + -265464733 + -265464733 + + + -265464733 + -265464733 + + + -432502583 + -432502583 + + + -432502583 + -432502583 + + + -1967815281 + -1967815281 + + + -1967815281 + -1967815281 + + + -1530408968 + -1530408968 + + + 967560929 + 967560929 + + + 967560929 + 967560929 + + + -1426106865 + -1426106865 + + + -1426106865 + -1426106865 + + + 190104374 + 190104374 + + + 430136711 + 430136711 + + + 430136711 + 430136711 + + + -1803607012 + -1803607012 + + + -1520512970 + -1520512970 + + + 5018725 + 5018725 + + + 5018725 + 5018725 + + + 183526573 + 183526573 + + + 183526573 + 183526573 + + + -1040862600 + -1040862600 + + + + diff --git a/test/legacy_archives/map_string_0.txt b/test/legacy_archives/map_string_0.txt new file mode 100644 index 00000000..0c851da6 --- /dev/null +++ b/test/legacy_archives/map_string_0.txt @@ -0,0 +1 @@ +22 serialization::archive 19 0 0 0 0 0 0 0 0 0 diff --git a/test/legacy_archives/map_string_0.xml b/test/legacy_archives/map_string_0.xml new file mode 100644 index 00000000..059687d4 --- /dev/null +++ b/test/legacy_archives/map_string_0.xml @@ -0,0 +1,14 @@ + + + + + 0 + 0 + 0 + + + 0 + 0 + + + diff --git a/test/legacy_archives/map_string_10.txt b/test/legacy_archives/map_string_10.txt new file mode 100644 index 00000000..b27a92d9 --- /dev/null +++ b/test/legacy_archives/map_string_10.txt @@ -0,0 +1 @@ +22 serialization::archive 19 0 0 10 13 0 0 0 10 1832705803 10 1832705803 10 2097663454 10 2097663454 10 3551458167 10 3551458167 10 2509159060 10 2509159060 10 2600961200 10 2600961200 9 581989062 9 581989062 10 1021729225 10 1021729225 10 3126701396 10 3126701396 10 1354395138 10 1354395138 10 3356491351 10 3356491351 0 0 14 0 10 3356491351 10 3356491351 10 3356491351 10 3356491351 10 2600961200 10 2600961200 10 2509159060 10 2509159060 10 1021729225 10 1021729225 10 1021729225 10 1021729225 10 1832705803 10 1832705803 10 1832705803 10 1832705803 9 581989062 9 581989062 10 1354395138 10 1354395138 10 2097663454 10 2097663454 10 3551458167 10 3551458167 10 3551458167 10 3551458167 10 3126701396 10 3126701396 diff --git a/test/legacy_archives/map_string_10.xml b/test/legacy_archives/map_string_10.xml new file mode 100644 index 00000000..6913e25d --- /dev/null +++ b/test/legacy_archives/map_string_10.xml @@ -0,0 +1,110 @@ + + + + + 10 + 13 + 0 + + 1832705803 + 1832705803 + + + 2097663454 + 2097663454 + + + 3551458167 + 3551458167 + + + 2509159060 + 2509159060 + + + 2600961200 + 2600961200 + + + 581989062 + 581989062 + + + 1021729225 + 1021729225 + + + 3126701396 + 3126701396 + + + 1354395138 + 1354395138 + + + 3356491351 + 3356491351 + + + + 14 + 0 + + 3356491351 + 3356491351 + + + 3356491351 + 3356491351 + + + 2600961200 + 2600961200 + + + 2509159060 + 2509159060 + + + 1021729225 + 1021729225 + + + 1021729225 + 1021729225 + + + 1832705803 + 1832705803 + + + 1832705803 + 1832705803 + + + 581989062 + 581989062 + + + 1354395138 + 1354395138 + + + 2097663454 + 2097663454 + + + 3551458167 + 3551458167 + + + 3551458167 + 3551458167 + + + 3126701396 + 3126701396 + + + + diff --git a/test/legacy_archives/map_string_100.txt b/test/legacy_archives/map_string_100.txt new file mode 100644 index 00000000..38bd6d2f --- /dev/null +++ b/test/legacy_archives/map_string_100.txt @@ -0,0 +1 @@ +22 serialization::archive 19 0 0 100 193 0 0 0 10 1970368353 10 1970368353 10 2417781066 10 2417781066 10 3186940620 10 3186940620 10 1421489007 10 1421489007 9 776215953 9 776215953 10 1775667486 10 1775667486 9 159865104 9 159865104 10 2355967322 10 2355967322 10 2748750790 10 2748750790 10 1832705803 10 1832705803 10 4239032041 10 4239032041 10 3876107121 10 3876107121 10 3479493952 10 3479493952 10 2600961200 10 2600961200 10 1241175627 10 1241175627 9 258343568 9 258343568 10 1630722604 10 1630722604 10 3255615729 10 3255615729 7 5018725 7 5018725 10 2774454326 10 2774454326 10 2825882502 10 2825882502 9 581989062 9 581989062 9 178482033 9 178482033 10 1786883066 10 1786883066 9 286273879 9 286273879 10 2298524549 10 2298524549 9 259868705 9 259868705 9 601527218 9 601527218 9 411876340 9 411876340 10 4029502563 10 4029502563 9 109292002 9 109292002 9 941660988 9 941660988 10 4256439559 10 4256439559 10 3401943278 10 3401943278 10 2663762324 10 2663762324 10 3042379069 10 3042379069 10 2509159060 10 2509159060 10 1859681623 10 1859681623 10 3356491351 10 3356491351 10 2620626957 10 2620626957 10 2652233125 10 2652233125 10 1568788209 10 1568788209 9 607596425 9 607596425 10 2868860431 10 2868860431 9 670291604 9 670291604 10 2764558328 10 2764558328 10 3226376894 10 3226376894 10 3930851132 10 3930851132 10 3801137760 10 3801137760 9 287343763 9 287343763 10 2138619156 10 2138619156 9 257760945 9 257760945 9 967560929 9 967560929 10 2056892401 10 2056892401 10 1829132124 10 1829132124 10 3807848133 10 3807848133 9 310524955 9 310524955 9 190104374 9 190104374 10 1481537722 10 1481537722 10 2361415202 10 2361415202 10 2148764457 10 2148764457 10 3862464713 10 3862464713 10 3862418431 10 3862418431 9 918842470 9 918842470 9 183526573 9 183526573 10 2097663454 10 2097663454 10 3377617071 10 3377617071 9 167237906 9 167237906 10 2492774796 10 2492774796 10 3254104696 10 3254104696 10 3551458167 10 3551458167 10 3989581123 10 3989581123 10 2427983947 10 2427983947 9 430136711 9 430136711 10 2975706254 10 2975706254 10 1198739057 10 1198739057 9 473010817 9 473010817 10 2075478837 10 2075478837 10 2956234822 10 2956234822 10 3435288264 10 3435288264 10 2491360284 10 2491360284 10 4076377133 10 4076377133 10 3869918764 10 3869918764 9 647803737 9 647803737 9 669358715 9 669358715 9 177811234 9 177811234 10 1021729225 10 1021729225 10 2327152015 10 2327152015 10 3793441059 10 3793441059 9 390937317 9 390937317 10 2421236149 10 2421236149 10 3346291068 10 3346291068 10 3880200042 10 3880200042 10 2299140636 10 2299140636 10 3743837736 10 3743837736 10 1315739433 10 1315739433 10 2784034063 10 2784034063 10 1354395138 10 1354395138 10 4062777255 10 4062777255 10 3126701396 10 3126701396 0 0 152 0 10 3356491351 10 3356491351 10 3356491351 10 3356491351 10 2600961200 10 2600961200 10 2509159060 10 2509159060 10 1021729225 10 1021729225 10 1021729225 10 1021729225 10 1832705803 10 1832705803 10 1832705803 10 1832705803 9 581989062 9 581989062 10 1354395138 10 1354395138 10 2097663454 10 2097663454 10 3551458167 10 3551458167 10 3551458167 10 3551458167 10 3126701396 10 3126701396 10 3880200042 10 3880200042 10 3255615729 10 3255615729 10 3255615729 10 3255615729 9 167237906 9 167237906 9 177811234 9 177811234 10 3930851132 10 3930851132 10 2361415202 10 2361415202 9 259868705 9 259868705 9 259868705 9 259868705 10 3793441059 10 3793441059 10 3793441059 10 3793441059 9 776215953 9 776215953 9 776215953 9 776215953 10 1630722604 10 1630722604 9 310524955 9 310524955 9 310524955 9 310524955 9 473010817 9 473010817 9 473010817 9 473010817 10 1970368353 10 1970368353 10 1970368353 10 1970368353 9 647803737 9 647803737 9 647803737 9 647803737 10 3042379069 10 3042379069 10 3042379069 10 3042379069 9 669358715 9 669358715 9 669358715 9 669358715 10 2075478837 10 2075478837 10 2075478837 10 2075478837 10 2299140636 10 2299140636 9 109292002 9 109292002 10 1421489007 10 1421489007 10 1421489007 10 1421489007 9 287343763 9 287343763 9 287343763 9 287343763 10 3186940620 10 3186940620 10 1829132124 10 1829132124 10 2748750790 10 2748750790 9 941660988 9 941660988 10 3989581123 10 3989581123 10 3989581123 10 3989581123 10 3479493952 10 3479493952 10 2417781066 10 2417781066 9 601527218 9 601527218 10 4256439559 10 4256439559 10 4256439559 10 4256439559 10 3226376894 10 3226376894 10 1568788209 10 1568788209 10 1568788209 10 1568788209 10 1198739057 10 1198739057 10 1198739057 10 1198739057 10 2138619156 10 2138619156 10 4076377133 10 4076377133 10 4076377133 10 4076377133 10 2825882502 10 2825882502 10 3801137760 10 3801137760 10 4062777255 10 4062777255 10 4062777255 10 4062777255 10 2620626957 10 2620626957 10 2620626957 10 2620626957 10 1775667486 10 1775667486 10 3346291068 10 3346291068 10 2956234822 10 2956234822 9 178482033 9 178482033 9 178482033 9 178482033 9 918842470 9 918842470 10 3377617071 10 3377617071 10 3377617071 10 3377617071 9 390937317 9 390937317 9 390937317 9 390937317 10 3876107121 10 3876107121 10 3876107121 10 3876107121 9 670291604 9 670291604 10 1859681623 10 1859681623 10 1859681623 10 1859681623 10 1241175627 10 1241175627 10 1241175627 10 1241175627 10 3807848133 10 3807848133 10 3807848133 10 3807848133 10 1315739433 10 1315739433 10 1315739433 10 1315739433 10 2355967322 10 2355967322 10 1786883066 10 1786883066 10 4239032041 10 4239032041 10 4239032041 10 4239032041 10 2148764457 10 2148764457 10 2148764457 10 2148764457 10 2427983947 10 2427983947 10 2427983947 10 2427983947 9 607596425 9 607596425 9 607596425 9 607596425 10 3869918764 10 3869918764 10 3401943278 10 3401943278 10 2421236149 10 2421236149 10 2421236149 10 2421236149 9 159865104 9 159865104 9 411876340 9 411876340 10 2056892401 10 2056892401 10 2056892401 10 2056892401 10 2652233125 10 2652233125 10 2652233125 10 2652233125 10 2298524549 10 2298524549 10 2298524549 10 2298524549 9 257760945 9 257760945 9 257760945 9 257760945 10 2663762324 10 2663762324 10 2492774796 10 2492774796 10 3862418431 10 3862418431 10 3862418431 10 3862418431 10 3743837736 10 3743837736 10 2975706254 10 2975706254 10 3435288264 10 3435288264 10 2784034063 10 2784034063 10 2784034063 10 2784034063 9 286273879 9 286273879 9 286273879 9 286273879 10 1481537722 10 1481537722 9 258343568 9 258343568 10 4029502563 10 4029502563 10 4029502563 10 4029502563 10 3862464713 10 3862464713 10 3862464713 10 3862464713 10 2327152015 10 2327152015 10 2327152015 10 2327152015 10 2764558328 10 2764558328 9 967560929 9 967560929 9 967560929 9 967560929 10 2868860431 10 2868860431 10 2868860431 10 2868860431 9 190104374 9 190104374 9 430136711 9 430136711 9 430136711 9 430136711 10 2491360284 10 2491360284 10 2774454326 10 2774454326 7 5018725 7 5018725 7 5018725 7 5018725 9 183526573 9 183526573 9 183526573 9 183526573 10 3254104696 10 3254104696 diff --git a/test/legacy_archives/map_string_100.xml b/test/legacy_archives/map_string_100.xml new file mode 100644 index 00000000..66eaf75c --- /dev/null +++ b/test/legacy_archives/map_string_100.xml @@ -0,0 +1,1022 @@ + + + + + 100 + 193 + 0 + + 1970368353 + 1970368353 + + + 2417781066 + 2417781066 + + + 3186940620 + 3186940620 + + + 1421489007 + 1421489007 + + + 776215953 + 776215953 + + + 1775667486 + 1775667486 + + + 159865104 + 159865104 + + + 2355967322 + 2355967322 + + + 2748750790 + 2748750790 + + + 1832705803 + 1832705803 + + + 4239032041 + 4239032041 + + + 3876107121 + 3876107121 + + + 3479493952 + 3479493952 + + + 2600961200 + 2600961200 + + + 1241175627 + 1241175627 + + + 258343568 + 258343568 + + + 1630722604 + 1630722604 + + + 3255615729 + 3255615729 + + + 5018725 + 5018725 + + + 2774454326 + 2774454326 + + + 2825882502 + 2825882502 + + + 581989062 + 581989062 + + + 178482033 + 178482033 + + + 1786883066 + 1786883066 + + + 286273879 + 286273879 + + + 2298524549 + 2298524549 + + + 259868705 + 259868705 + + + 601527218 + 601527218 + + + 411876340 + 411876340 + + + 4029502563 + 4029502563 + + + 109292002 + 109292002 + + + 941660988 + 941660988 + + + 4256439559 + 4256439559 + + + 3401943278 + 3401943278 + + + 2663762324 + 2663762324 + + + 3042379069 + 3042379069 + + + 2509159060 + 2509159060 + + + 1859681623 + 1859681623 + + + 3356491351 + 3356491351 + + + 2620626957 + 2620626957 + + + 2652233125 + 2652233125 + + + 1568788209 + 1568788209 + + + 607596425 + 607596425 + + + 2868860431 + 2868860431 + + + 670291604 + 670291604 + + + 2764558328 + 2764558328 + + + 3226376894 + 3226376894 + + + 3930851132 + 3930851132 + + + 3801137760 + 3801137760 + + + 287343763 + 287343763 + + + 2138619156 + 2138619156 + + + 257760945 + 257760945 + + + 967560929 + 967560929 + + + 2056892401 + 2056892401 + + + 1829132124 + 1829132124 + + + 3807848133 + 3807848133 + + + 310524955 + 310524955 + + + 190104374 + 190104374 + + + 1481537722 + 1481537722 + + + 2361415202 + 2361415202 + + + 2148764457 + 2148764457 + + + 3862464713 + 3862464713 + + + 3862418431 + 3862418431 + + + 918842470 + 918842470 + + + 183526573 + 183526573 + + + 2097663454 + 2097663454 + + + 3377617071 + 3377617071 + + + 167237906 + 167237906 + + + 2492774796 + 2492774796 + + + 3254104696 + 3254104696 + + + 3551458167 + 3551458167 + + + 3989581123 + 3989581123 + + + 2427983947 + 2427983947 + + + 430136711 + 430136711 + + + 2975706254 + 2975706254 + + + 1198739057 + 1198739057 + + + 473010817 + 473010817 + + + 2075478837 + 2075478837 + + + 2956234822 + 2956234822 + + + 3435288264 + 3435288264 + + + 2491360284 + 2491360284 + + + 4076377133 + 4076377133 + + + 3869918764 + 3869918764 + + + 647803737 + 647803737 + + + 669358715 + 669358715 + + + 177811234 + 177811234 + + + 1021729225 + 1021729225 + + + 2327152015 + 2327152015 + + + 3793441059 + 3793441059 + + + 390937317 + 390937317 + + + 2421236149 + 2421236149 + + + 3346291068 + 3346291068 + + + 3880200042 + 3880200042 + + + 2299140636 + 2299140636 + + + 3743837736 + 3743837736 + + + 1315739433 + 1315739433 + + + 2784034063 + 2784034063 + + + 1354395138 + 1354395138 + + + 4062777255 + 4062777255 + + + 3126701396 + 3126701396 + + + + 152 + 0 + + 3356491351 + 3356491351 + + + 3356491351 + 3356491351 + + + 2600961200 + 2600961200 + + + 2509159060 + 2509159060 + + + 1021729225 + 1021729225 + + + 1021729225 + 1021729225 + + + 1832705803 + 1832705803 + + + 1832705803 + 1832705803 + + + 581989062 + 581989062 + + + 1354395138 + 1354395138 + + + 2097663454 + 2097663454 + + + 3551458167 + 3551458167 + + + 3551458167 + 3551458167 + + + 3126701396 + 3126701396 + + + 3880200042 + 3880200042 + + + 3255615729 + 3255615729 + + + 3255615729 + 3255615729 + + + 167237906 + 167237906 + + + 177811234 + 177811234 + + + 3930851132 + 3930851132 + + + 2361415202 + 2361415202 + + + 259868705 + 259868705 + + + 259868705 + 259868705 + + + 3793441059 + 3793441059 + + + 3793441059 + 3793441059 + + + 776215953 + 776215953 + + + 776215953 + 776215953 + + + 1630722604 + 1630722604 + + + 310524955 + 310524955 + + + 310524955 + 310524955 + + + 473010817 + 473010817 + + + 473010817 + 473010817 + + + 1970368353 + 1970368353 + + + 1970368353 + 1970368353 + + + 647803737 + 647803737 + + + 647803737 + 647803737 + + + 3042379069 + 3042379069 + + + 3042379069 + 3042379069 + + + 669358715 + 669358715 + + + 669358715 + 669358715 + + + 2075478837 + 2075478837 + + + 2075478837 + 2075478837 + + + 2299140636 + 2299140636 + + + 109292002 + 109292002 + + + 1421489007 + 1421489007 + + + 1421489007 + 1421489007 + + + 287343763 + 287343763 + + + 287343763 + 287343763 + + + 3186940620 + 3186940620 + + + 1829132124 + 1829132124 + + + 2748750790 + 2748750790 + + + 941660988 + 941660988 + + + 3989581123 + 3989581123 + + + 3989581123 + 3989581123 + + + 3479493952 + 3479493952 + + + 2417781066 + 2417781066 + + + 601527218 + 601527218 + + + 4256439559 + 4256439559 + + + 4256439559 + 4256439559 + + + 3226376894 + 3226376894 + + + 1568788209 + 1568788209 + + + 1568788209 + 1568788209 + + + 1198739057 + 1198739057 + + + 1198739057 + 1198739057 + + + 2138619156 + 2138619156 + + + 4076377133 + 4076377133 + + + 4076377133 + 4076377133 + + + 2825882502 + 2825882502 + + + 3801137760 + 3801137760 + + + 4062777255 + 4062777255 + + + 4062777255 + 4062777255 + + + 2620626957 + 2620626957 + + + 2620626957 + 2620626957 + + + 1775667486 + 1775667486 + + + 3346291068 + 3346291068 + + + 2956234822 + 2956234822 + + + 178482033 + 178482033 + + + 178482033 + 178482033 + + + 918842470 + 918842470 + + + 3377617071 + 3377617071 + + + 3377617071 + 3377617071 + + + 390937317 + 390937317 + + + 390937317 + 390937317 + + + 3876107121 + 3876107121 + + + 3876107121 + 3876107121 + + + 670291604 + 670291604 + + + 1859681623 + 1859681623 + + + 1859681623 + 1859681623 + + + 1241175627 + 1241175627 + + + 1241175627 + 1241175627 + + + 3807848133 + 3807848133 + + + 3807848133 + 3807848133 + + + 1315739433 + 1315739433 + + + 1315739433 + 1315739433 + + + 2355967322 + 2355967322 + + + 1786883066 + 1786883066 + + + 4239032041 + 4239032041 + + + 4239032041 + 4239032041 + + + 2148764457 + 2148764457 + + + 2148764457 + 2148764457 + + + 2427983947 + 2427983947 + + + 2427983947 + 2427983947 + + + 607596425 + 607596425 + + + 607596425 + 607596425 + + + 3869918764 + 3869918764 + + + 3401943278 + 3401943278 + + + 2421236149 + 2421236149 + + + 2421236149 + 2421236149 + + + 159865104 + 159865104 + + + 411876340 + 411876340 + + + 2056892401 + 2056892401 + + + 2056892401 + 2056892401 + + + 2652233125 + 2652233125 + + + 2652233125 + 2652233125 + + + 2298524549 + 2298524549 + + + 2298524549 + 2298524549 + + + 257760945 + 257760945 + + + 257760945 + 257760945 + + + 2663762324 + 2663762324 + + + 2492774796 + 2492774796 + + + 3862418431 + 3862418431 + + + 3862418431 + 3862418431 + + + 3743837736 + 3743837736 + + + 2975706254 + 2975706254 + + + 3435288264 + 3435288264 + + + 2784034063 + 2784034063 + + + 2784034063 + 2784034063 + + + 286273879 + 286273879 + + + 286273879 + 286273879 + + + 1481537722 + 1481537722 + + + 258343568 + 258343568 + + + 4029502563 + 4029502563 + + + 4029502563 + 4029502563 + + + 3862464713 + 3862464713 + + + 3862464713 + 3862464713 + + + 2327152015 + 2327152015 + + + 2327152015 + 2327152015 + + + 2764558328 + 2764558328 + + + 967560929 + 967560929 + + + 967560929 + 967560929 + + + 2868860431 + 2868860431 + + + 2868860431 + 2868860431 + + + 190104374 + 190104374 + + + 430136711 + 430136711 + + + 430136711 + 430136711 + + + 2491360284 + 2491360284 + + + 2774454326 + 2774454326 + + + 5018725 + 5018725 + + + 5018725 + 5018725 + + + 183526573 + 183526573 + + + 183526573 + 183526573 + + + 3254104696 + 3254104696 + + + + diff --git a/test/legacy_archives/multimap_int_0.txt b/test/legacy_archives/multimap_int_0.txt new file mode 100644 index 00000000..0c851da6 --- /dev/null +++ b/test/legacy_archives/multimap_int_0.txt @@ -0,0 +1 @@ +22 serialization::archive 19 0 0 0 0 0 0 0 0 0 diff --git a/test/legacy_archives/multimap_int_0.xml b/test/legacy_archives/multimap_int_0.xml new file mode 100644 index 00000000..059687d4 --- /dev/null +++ b/test/legacy_archives/multimap_int_0.xml @@ -0,0 +1,14 @@ + + + + + 0 + 0 + 0 + + + 0 + 0 + + + diff --git a/test/legacy_archives/multimap_int_10.txt b/test/legacy_archives/multimap_int_10.txt new file mode 100644 index 00000000..f664835a --- /dev/null +++ b/test/legacy_archives/multimap_int_10.txt @@ -0,0 +1 @@ +22 serialization::archive 19 0 0 14 29 0 0 0 -938475945 -938475945 -938475945 -938475945 -1785808236 -1785808236 -1694006096 -1694006096 1021729225 1021729225 1021729225 1021729225 581989062 581989062 -1168265900 -1168265900 2097663454 2097663454 1354395138 1354395138 -743509129 -743509129 -743509129 -743509129 1832705803 1832705803 1832705803 1832705803 0 0 14 0 -938475945 -938475945 -938475945 -938475945 -1694006096 -1694006096 -1785808236 -1785808236 1021729225 1021729225 1021729225 1021729225 1832705803 1832705803 1832705803 1832705803 581989062 581989062 1354395138 1354395138 2097663454 2097663454 -743509129 -743509129 -743509129 -743509129 -1168265900 -1168265900 diff --git a/test/legacy_archives/multimap_int_10.xml b/test/legacy_archives/multimap_int_10.xml new file mode 100644 index 00000000..b771e291 --- /dev/null +++ b/test/legacy_archives/multimap_int_10.xml @@ -0,0 +1,126 @@ + + + + + 14 + 29 + 0 + + -938475945 + -938475945 + + + -938475945 + -938475945 + + + -1785808236 + -1785808236 + + + -1694006096 + -1694006096 + + + 1021729225 + 1021729225 + + + 1021729225 + 1021729225 + + + 581989062 + 581989062 + + + -1168265900 + -1168265900 + + + 2097663454 + 2097663454 + + + 1354395138 + 1354395138 + + + -743509129 + -743509129 + + + -743509129 + -743509129 + + + 1832705803 + 1832705803 + + + 1832705803 + 1832705803 + + + + 14 + 0 + + -938475945 + -938475945 + + + -938475945 + -938475945 + + + -1694006096 + -1694006096 + + + -1785808236 + -1785808236 + + + 1021729225 + 1021729225 + + + 1021729225 + 1021729225 + + + 1832705803 + 1832705803 + + + 1832705803 + 1832705803 + + + 581989062 + 581989062 + + + 1354395138 + 1354395138 + + + 2097663454 + 2097663454 + + + -743509129 + -743509129 + + + -743509129 + -743509129 + + + -1168265900 + -1168265900 + + + + diff --git a/test/legacy_archives/multimap_int_100.txt b/test/legacy_archives/multimap_int_100.txt new file mode 100644 index 00000000..0321a888 --- /dev/null +++ b/test/legacy_archives/multimap_int_100.txt @@ -0,0 +1 @@ +22 serialization::archive 19 0 0 152 193 0 0 0 1775667486 1775667486 -948676228 -948676228 -1108026676 -1108026676 -1866983349 -1866983349 -1866983349 -1866983349 258343568 258343568 -1068590402 -1068590402 -432548865 -432548865 -432548865 -432548865 177811234 177811234 5018725 5018725 5018725 5018725 190104374 190104374 1315739433 1315739433 1315739433 1315739433 -1995826660 -1995826660 -305386173 -305386173 -305386173 -305386173 287343763 287343763 287343763 287343763 1241175627 1241175627 1241175627 1241175627 109292002 109292002 1021729225 1021729225 1021729225 1021729225 -1426106865 -1426106865 -1426106865 -1426106865 918842470 918842470 -1338732474 -1338732474 669358715 669358715 669358715 669358715 183526573 183526573 183526573 183526573 -938475945 -938475945 -938475945 -938475945 -1694006096 -1694006096 1630722604 1630722604 -1933552094 -1933552094 257760945 257760945 257760945 257760945 -1510933233 -1510933233 -1510933233 -1510933233 390937317 390937317 390937317 390937317 259868705 259868705 259868705 259868705 -38527737 -38527737 -38527737 -38527737 -551129560 -551129560 1832705803 1832705803 1832705803 1832705803 607596425 607596425 607596425 607596425 -1520512970 -1520512970 -1674340339 -1674340339 -1674340339 -1674340339 -1873731147 -1873731147 -1873731147 -1873731147 1421489007 1421489007 1421489007 1421489007 -501526237 -501526237 -501526237 -501526237 -1877186230 -1877186230 -218590163 -218590163 -218590163 -218590163 647803737 647803737 647803737 647803737 -859679032 -859679032 967560929 967560929 967560929 967560929 -815473344 -815473344 -487119163 -487119163 -487119163 -487119163 -1546216506 -1546216506 1859681623 1859681623 1859681623 1859681623 -1040862600 -1040862600 -893024018 -893024018 -1319261042 -1319261042 -1252588227 -1252588227 -1252588227 -1252588227 -1785808236 -1785808236 1198739057 1198739057 1198739057 1198739057 -1469084794 -1469084794 473010817 473010817 473010817 473010817 1481537722 1481537722 2138619156 2138619156 -1039351567 -1039351567 -1039351567 -1039351567 -493829536 -493829536 411876340 411876340 -364116164 -364116164 776215953 776215953 776215953 776215953 1568788209 1568788209 1568788209 1568788209 -1631204972 -1631204972 601527218 601527218 286273879 286273879 286273879 286273879 -232190041 -232190041 -232190041 -232190041 2075478837 2075478837 2075478837 2075478837 -1168265900 -1168265900 581989062 581989062 178482033 178482033 178482033 178482033 1354395138 1354395138 -1530408968 -1530408968 -414767254 -414767254 1970368353 1970368353 1970368353 1970368353 -1967815281 -1967815281 -1967815281 -1967815281 941660988 941660988 1786883066 1786883066 670291604 670291604 -1803607012 -1803607012 1829132124 1829132124 -432502583 -432502583 -432502583 -432502583 -1642734171 -1642734171 -1642734171 -1642734171 -425048532 -425048532 2097663454 2097663454 -1938999974 -1938999974 -1802192500 -1802192500 2056892401 2056892401 2056892401 2056892401 -917350225 -917350225 -917350225 -917350225 -55935255 -55935255 -55935255 -55935255 -418860175 -418860175 -418860175 -418860175 -2146202839 -2146202839 -2146202839 -2146202839 310524955 310524955 310524955 310524955 159865104 159865104 -265464733 -265464733 -265464733 -265464733 -1996442747 -1996442747 -1996442747 -1996442747 430136711 430136711 430136711 430136711 -743509129 -743509129 -743509129 -743509129 167237906 167237906 0 0 152 0 -938475945 -938475945 -938475945 -938475945 -1694006096 -1694006096 -1785808236 -1785808236 1021729225 1021729225 1021729225 1021729225 1832705803 1832705803 1832705803 1832705803 581989062 581989062 1354395138 1354395138 2097663454 2097663454 -743509129 -743509129 -743509129 -743509129 -1168265900 -1168265900 -414767254 -414767254 -1039351567 -1039351567 -1039351567 -1039351567 167237906 167237906 177811234 177811234 -364116164 -364116164 -1933552094 -1933552094 259868705 259868705 259868705 259868705 -501526237 -501526237 -501526237 -501526237 776215953 776215953 776215953 776215953 1630722604 1630722604 310524955 310524955 310524955 310524955 473010817 473010817 473010817 473010817 1970368353 1970368353 1970368353 1970368353 647803737 647803737 647803737 647803737 -1252588227 -1252588227 -1252588227 -1252588227 669358715 669358715 669358715 669358715 2075478837 2075478837 2075478837 2075478837 -1995826660 -1995826660 109292002 109292002 1421489007 1421489007 1421489007 1421489007 287343763 287343763 287343763 287343763 -1108026676 -1108026676 1829132124 1829132124 -1546216506 -1546216506 941660988 941660988 -305386173 -305386173 -305386173 -305386173 -815473344 -815473344 -1877186230 -1877186230 601527218 601527218 -38527737 -38527737 -38527737 -38527737 -1068590402 -1068590402 1568788209 1568788209 1568788209 1568788209 1198739057 1198739057 1198739057 1198739057 2138619156 2138619156 -218590163 -218590163 -218590163 -218590163 -1469084794 -1469084794 -493829536 -493829536 -232190041 -232190041 -232190041 -232190041 -1674340339 -1674340339 -1674340339 -1674340339 1775667486 1775667486 -948676228 -948676228 -1338732474 -1338732474 178482033 178482033 178482033 178482033 918842470 918842470 -917350225 -917350225 -917350225 -917350225 390937317 390937317 390937317 390937317 -418860175 -418860175 -418860175 -418860175 670291604 670291604 1859681623 1859681623 1859681623 1859681623 1241175627 1241175627 1241175627 1241175627 -487119163 -487119163 -487119163 -487119163 1315739433 1315739433 1315739433 1315739433 -1938999974 -1938999974 1786883066 1786883066 -55935255 -55935255 -55935255 -55935255 -2146202839 -2146202839 -2146202839 -2146202839 -1866983349 -1866983349 -1866983349 -1866983349 607596425 607596425 607596425 607596425 -425048532 -425048532 -893024018 -893024018 -1873731147 -1873731147 -1873731147 -1873731147 159865104 159865104 411876340 411876340 2056892401 2056892401 2056892401 2056892401 -1642734171 -1642734171 -1642734171 -1642734171 -1996442747 -1996442747 -1996442747 -1996442747 257760945 257760945 257760945 257760945 -1631204972 -1631204972 -1802192500 -1802192500 -432548865 -432548865 -432548865 -432548865 -551129560 -551129560 -1319261042 -1319261042 -859679032 -859679032 -1510933233 -1510933233 -1510933233 -1510933233 286273879 286273879 286273879 286273879 1481537722 1481537722 258343568 258343568 -265464733 -265464733 -265464733 -265464733 -432502583 -432502583 -432502583 -432502583 -1967815281 -1967815281 -1967815281 -1967815281 -1530408968 -1530408968 967560929 967560929 967560929 967560929 -1426106865 -1426106865 -1426106865 -1426106865 190104374 190104374 430136711 430136711 430136711 430136711 -1803607012 -1803607012 -1520512970 -1520512970 5018725 5018725 5018725 5018725 183526573 183526573 183526573 183526573 -1040862600 -1040862600 diff --git a/test/legacy_archives/multimap_int_100.xml b/test/legacy_archives/multimap_int_100.xml new file mode 100644 index 00000000..113b7c56 --- /dev/null +++ b/test/legacy_archives/multimap_int_100.xml @@ -0,0 +1,1230 @@ + + + + + 152 + 193 + 0 + + 1775667486 + 1775667486 + + + -948676228 + -948676228 + + + -1108026676 + -1108026676 + + + -1866983349 + -1866983349 + + + -1866983349 + -1866983349 + + + 258343568 + 258343568 + + + -1068590402 + -1068590402 + + + -432548865 + -432548865 + + + -432548865 + -432548865 + + + 177811234 + 177811234 + + + 5018725 + 5018725 + + + 5018725 + 5018725 + + + 190104374 + 190104374 + + + 1315739433 + 1315739433 + + + 1315739433 + 1315739433 + + + -1995826660 + -1995826660 + + + -305386173 + -305386173 + + + -305386173 + -305386173 + + + 287343763 + 287343763 + + + 287343763 + 287343763 + + + 1241175627 + 1241175627 + + + 1241175627 + 1241175627 + + + 109292002 + 109292002 + + + 1021729225 + 1021729225 + + + 1021729225 + 1021729225 + + + -1426106865 + -1426106865 + + + -1426106865 + -1426106865 + + + 918842470 + 918842470 + + + -1338732474 + -1338732474 + + + 669358715 + 669358715 + + + 669358715 + 669358715 + + + 183526573 + 183526573 + + + 183526573 + 183526573 + + + -938475945 + -938475945 + + + -938475945 + -938475945 + + + -1694006096 + -1694006096 + + + 1630722604 + 1630722604 + + + -1933552094 + -1933552094 + + + 257760945 + 257760945 + + + 257760945 + 257760945 + + + -1510933233 + -1510933233 + + + -1510933233 + -1510933233 + + + 390937317 + 390937317 + + + 390937317 + 390937317 + + + 259868705 + 259868705 + + + 259868705 + 259868705 + + + -38527737 + -38527737 + + + -38527737 + -38527737 + + + -551129560 + -551129560 + + + 1832705803 + 1832705803 + + + 1832705803 + 1832705803 + + + 607596425 + 607596425 + + + 607596425 + 607596425 + + + -1520512970 + -1520512970 + + + -1674340339 + -1674340339 + + + -1674340339 + -1674340339 + + + -1873731147 + -1873731147 + + + -1873731147 + -1873731147 + + + 1421489007 + 1421489007 + + + 1421489007 + 1421489007 + + + -501526237 + -501526237 + + + -501526237 + -501526237 + + + -1877186230 + -1877186230 + + + -218590163 + -218590163 + + + -218590163 + -218590163 + + + 647803737 + 647803737 + + + 647803737 + 647803737 + + + -859679032 + -859679032 + + + 967560929 + 967560929 + + + 967560929 + 967560929 + + + -815473344 + -815473344 + + + -487119163 + -487119163 + + + -487119163 + -487119163 + + + -1546216506 + -1546216506 + + + 1859681623 + 1859681623 + + + 1859681623 + 1859681623 + + + -1040862600 + -1040862600 + + + -893024018 + -893024018 + + + -1319261042 + -1319261042 + + + -1252588227 + -1252588227 + + + -1252588227 + -1252588227 + + + -1785808236 + -1785808236 + + + 1198739057 + 1198739057 + + + 1198739057 + 1198739057 + + + -1469084794 + -1469084794 + + + 473010817 + 473010817 + + + 473010817 + 473010817 + + + 1481537722 + 1481537722 + + + 2138619156 + 2138619156 + + + -1039351567 + -1039351567 + + + -1039351567 + -1039351567 + + + -493829536 + -493829536 + + + 411876340 + 411876340 + + + -364116164 + -364116164 + + + 776215953 + 776215953 + + + 776215953 + 776215953 + + + 1568788209 + 1568788209 + + + 1568788209 + 1568788209 + + + -1631204972 + -1631204972 + + + 601527218 + 601527218 + + + 286273879 + 286273879 + + + 286273879 + 286273879 + + + -232190041 + -232190041 + + + -232190041 + -232190041 + + + 2075478837 + 2075478837 + + + 2075478837 + 2075478837 + + + -1168265900 + -1168265900 + + + 581989062 + 581989062 + + + 178482033 + 178482033 + + + 178482033 + 178482033 + + + 1354395138 + 1354395138 + + + -1530408968 + -1530408968 + + + -414767254 + -414767254 + + + 1970368353 + 1970368353 + + + 1970368353 + 1970368353 + + + -1967815281 + -1967815281 + + + -1967815281 + -1967815281 + + + 941660988 + 941660988 + + + 1786883066 + 1786883066 + + + 670291604 + 670291604 + + + -1803607012 + -1803607012 + + + 1829132124 + 1829132124 + + + -432502583 + -432502583 + + + -432502583 + -432502583 + + + -1642734171 + -1642734171 + + + -1642734171 + -1642734171 + + + -425048532 + -425048532 + + + 2097663454 + 2097663454 + + + -1938999974 + -1938999974 + + + -1802192500 + -1802192500 + + + 2056892401 + 2056892401 + + + 2056892401 + 2056892401 + + + -917350225 + -917350225 + + + -917350225 + -917350225 + + + -55935255 + -55935255 + + + -55935255 + -55935255 + + + -418860175 + -418860175 + + + -418860175 + -418860175 + + + -2146202839 + -2146202839 + + + -2146202839 + -2146202839 + + + 310524955 + 310524955 + + + 310524955 + 310524955 + + + 159865104 + 159865104 + + + -265464733 + -265464733 + + + -265464733 + -265464733 + + + -1996442747 + -1996442747 + + + -1996442747 + -1996442747 + + + 430136711 + 430136711 + + + 430136711 + 430136711 + + + -743509129 + -743509129 + + + -743509129 + -743509129 + + + 167237906 + 167237906 + + + + 152 + 0 + + -938475945 + -938475945 + + + -938475945 + -938475945 + + + -1694006096 + -1694006096 + + + -1785808236 + -1785808236 + + + 1021729225 + 1021729225 + + + 1021729225 + 1021729225 + + + 1832705803 + 1832705803 + + + 1832705803 + 1832705803 + + + 581989062 + 581989062 + + + 1354395138 + 1354395138 + + + 2097663454 + 2097663454 + + + -743509129 + -743509129 + + + -743509129 + -743509129 + + + -1168265900 + -1168265900 + + + -414767254 + -414767254 + + + -1039351567 + -1039351567 + + + -1039351567 + -1039351567 + + + 167237906 + 167237906 + + + 177811234 + 177811234 + + + -364116164 + -364116164 + + + -1933552094 + -1933552094 + + + 259868705 + 259868705 + + + 259868705 + 259868705 + + + -501526237 + -501526237 + + + -501526237 + -501526237 + + + 776215953 + 776215953 + + + 776215953 + 776215953 + + + 1630722604 + 1630722604 + + + 310524955 + 310524955 + + + 310524955 + 310524955 + + + 473010817 + 473010817 + + + 473010817 + 473010817 + + + 1970368353 + 1970368353 + + + 1970368353 + 1970368353 + + + 647803737 + 647803737 + + + 647803737 + 647803737 + + + -1252588227 + -1252588227 + + + -1252588227 + -1252588227 + + + 669358715 + 669358715 + + + 669358715 + 669358715 + + + 2075478837 + 2075478837 + + + 2075478837 + 2075478837 + + + -1995826660 + -1995826660 + + + 109292002 + 109292002 + + + 1421489007 + 1421489007 + + + 1421489007 + 1421489007 + + + 287343763 + 287343763 + + + 287343763 + 287343763 + + + -1108026676 + -1108026676 + + + 1829132124 + 1829132124 + + + -1546216506 + -1546216506 + + + 941660988 + 941660988 + + + -305386173 + -305386173 + + + -305386173 + -305386173 + + + -815473344 + -815473344 + + + -1877186230 + -1877186230 + + + 601527218 + 601527218 + + + -38527737 + -38527737 + + + -38527737 + -38527737 + + + -1068590402 + -1068590402 + + + 1568788209 + 1568788209 + + + 1568788209 + 1568788209 + + + 1198739057 + 1198739057 + + + 1198739057 + 1198739057 + + + 2138619156 + 2138619156 + + + -218590163 + -218590163 + + + -218590163 + -218590163 + + + -1469084794 + -1469084794 + + + -493829536 + -493829536 + + + -232190041 + -232190041 + + + -232190041 + -232190041 + + + -1674340339 + -1674340339 + + + -1674340339 + -1674340339 + + + 1775667486 + 1775667486 + + + -948676228 + -948676228 + + + -1338732474 + -1338732474 + + + 178482033 + 178482033 + + + 178482033 + 178482033 + + + 918842470 + 918842470 + + + -917350225 + -917350225 + + + -917350225 + -917350225 + + + 390937317 + 390937317 + + + 390937317 + 390937317 + + + -418860175 + -418860175 + + + -418860175 + -418860175 + + + 670291604 + 670291604 + + + 1859681623 + 1859681623 + + + 1859681623 + 1859681623 + + + 1241175627 + 1241175627 + + + 1241175627 + 1241175627 + + + -487119163 + -487119163 + + + -487119163 + -487119163 + + + 1315739433 + 1315739433 + + + 1315739433 + 1315739433 + + + -1938999974 + -1938999974 + + + 1786883066 + 1786883066 + + + -55935255 + -55935255 + + + -55935255 + -55935255 + + + -2146202839 + -2146202839 + + + -2146202839 + -2146202839 + + + -1866983349 + -1866983349 + + + -1866983349 + -1866983349 + + + 607596425 + 607596425 + + + 607596425 + 607596425 + + + -425048532 + -425048532 + + + -893024018 + -893024018 + + + -1873731147 + -1873731147 + + + -1873731147 + -1873731147 + + + 159865104 + 159865104 + + + 411876340 + 411876340 + + + 2056892401 + 2056892401 + + + 2056892401 + 2056892401 + + + -1642734171 + -1642734171 + + + -1642734171 + -1642734171 + + + -1996442747 + -1996442747 + + + -1996442747 + -1996442747 + + + 257760945 + 257760945 + + + 257760945 + 257760945 + + + -1631204972 + -1631204972 + + + -1802192500 + -1802192500 + + + -432548865 + -432548865 + + + -432548865 + -432548865 + + + -551129560 + -551129560 + + + -1319261042 + -1319261042 + + + -859679032 + -859679032 + + + -1510933233 + -1510933233 + + + -1510933233 + -1510933233 + + + 286273879 + 286273879 + + + 286273879 + 286273879 + + + 1481537722 + 1481537722 + + + 258343568 + 258343568 + + + -265464733 + -265464733 + + + -265464733 + -265464733 + + + -432502583 + -432502583 + + + -432502583 + -432502583 + + + -1967815281 + -1967815281 + + + -1967815281 + -1967815281 + + + -1530408968 + -1530408968 + + + 967560929 + 967560929 + + + 967560929 + 967560929 + + + -1426106865 + -1426106865 + + + -1426106865 + -1426106865 + + + 190104374 + 190104374 + + + 430136711 + 430136711 + + + 430136711 + 430136711 + + + -1803607012 + -1803607012 + + + -1520512970 + -1520512970 + + + 5018725 + 5018725 + + + 5018725 + 5018725 + + + 183526573 + 183526573 + + + 183526573 + 183526573 + + + -1040862600 + -1040862600 + + + + diff --git a/test/legacy_archives/multimap_string_0.txt b/test/legacy_archives/multimap_string_0.txt new file mode 100644 index 00000000..0c851da6 --- /dev/null +++ b/test/legacy_archives/multimap_string_0.txt @@ -0,0 +1 @@ +22 serialization::archive 19 0 0 0 0 0 0 0 0 0 diff --git a/test/legacy_archives/multimap_string_0.xml b/test/legacy_archives/multimap_string_0.xml new file mode 100644 index 00000000..059687d4 --- /dev/null +++ b/test/legacy_archives/multimap_string_0.xml @@ -0,0 +1,14 @@ + + + + + 0 + 0 + 0 + + + 0 + 0 + + + diff --git a/test/legacy_archives/multimap_string_10.txt b/test/legacy_archives/multimap_string_10.txt new file mode 100644 index 00000000..0b9ebb96 --- /dev/null +++ b/test/legacy_archives/multimap_string_10.txt @@ -0,0 +1 @@ +22 serialization::archive 19 0 0 14 29 0 0 0 10 3551458167 10 3551458167 10 3551458167 10 3551458167 10 2600961200 10 2600961200 10 3126701396 10 3126701396 9 581989062 9 581989062 10 1832705803 10 1832705803 10 1832705803 10 1832705803 10 3356491351 10 3356491351 10 3356491351 10 3356491351 10 1021729225 10 1021729225 10 1021729225 10 1021729225 10 2097663454 10 2097663454 10 1354395138 10 1354395138 10 2509159060 10 2509159060 0 0 14 0 10 3356491351 10 3356491351 10 3356491351 10 3356491351 10 2600961200 10 2600961200 10 2509159060 10 2509159060 10 1021729225 10 1021729225 10 1021729225 10 1021729225 10 1832705803 10 1832705803 10 1832705803 10 1832705803 9 581989062 9 581989062 10 1354395138 10 1354395138 10 2097663454 10 2097663454 10 3551458167 10 3551458167 10 3551458167 10 3551458167 10 3126701396 10 3126701396 diff --git a/test/legacy_archives/multimap_string_10.xml b/test/legacy_archives/multimap_string_10.xml new file mode 100644 index 00000000..2f43fd37 --- /dev/null +++ b/test/legacy_archives/multimap_string_10.xml @@ -0,0 +1,126 @@ + + + + + 14 + 29 + 0 + + 3551458167 + 3551458167 + + + 3551458167 + 3551458167 + + + 2600961200 + 2600961200 + + + 3126701396 + 3126701396 + + + 581989062 + 581989062 + + + 1832705803 + 1832705803 + + + 1832705803 + 1832705803 + + + 3356491351 + 3356491351 + + + 3356491351 + 3356491351 + + + 1021729225 + 1021729225 + + + 1021729225 + 1021729225 + + + 2097663454 + 2097663454 + + + 1354395138 + 1354395138 + + + 2509159060 + 2509159060 + + + + 14 + 0 + + 3356491351 + 3356491351 + + + 3356491351 + 3356491351 + + + 2600961200 + 2600961200 + + + 2509159060 + 2509159060 + + + 1021729225 + 1021729225 + + + 1021729225 + 1021729225 + + + 1832705803 + 1832705803 + + + 1832705803 + 1832705803 + + + 581989062 + 581989062 + + + 1354395138 + 1354395138 + + + 2097663454 + 2097663454 + + + 3551458167 + 3551458167 + + + 3551458167 + 3551458167 + + + 3126701396 + 3126701396 + + + + diff --git a/test/legacy_archives/multimap_string_100.txt b/test/legacy_archives/multimap_string_100.txt new file mode 100644 index 00000000..8c259d74 --- /dev/null +++ b/test/legacy_archives/multimap_string_100.txt @@ -0,0 +1 @@ +22 serialization::archive 19 0 0 152 193 0 0 0 9 178482033 9 178482033 9 178482033 9 178482033 10 1786883066 10 1786883066 9 286273879 9 286273879 9 286273879 9 286273879 10 2298524549 10 2298524549 10 2298524549 10 2298524549 9 259868705 9 259868705 9 259868705 9 259868705 9 601527218 9 601527218 9 411876340 9 411876340 10 4029502563 10 4029502563 10 4029502563 10 4029502563 9 109292002 9 109292002 9 941660988 9 941660988 10 4256439559 10 4256439559 10 4256439559 10 4256439559 10 3401943278 10 3401943278 10 2663762324 10 2663762324 10 3042379069 10 3042379069 10 3042379069 10 3042379069 10 2509159060 10 2509159060 10 1859681623 10 1859681623 10 1859681623 10 1859681623 10 3356491351 10 3356491351 10 3356491351 10 3356491351 10 2620626957 10 2620626957 10 2620626957 10 2620626957 10 2652233125 10 2652233125 10 2652233125 10 2652233125 9 607596425 9 607596425 9 607596425 9 607596425 10 1568788209 10 1568788209 10 1568788209 10 1568788209 10 2868860431 10 2868860431 10 2868860431 10 2868860431 9 670291604 9 670291604 10 2764558328 10 2764558328 10 3226376894 10 3226376894 10 3930851132 10 3930851132 10 3801137760 10 3801137760 9 287343763 9 287343763 9 287343763 9 287343763 10 2138619156 10 2138619156 9 967560929 9 967560929 9 967560929 9 967560929 9 257760945 9 257760945 9 257760945 9 257760945 10 2056892401 10 2056892401 10 2056892401 10 2056892401 10 1829132124 10 1829132124 10 3807848133 10 3807848133 10 3807848133 10 3807848133 9 190104374 9 190104374 9 310524955 9 310524955 9 310524955 9 310524955 10 1481537722 10 1481537722 10 2361415202 10 2361415202 10 1970368353 10 1970368353 10 1970368353 10 1970368353 10 2417781066 10 2417781066 10 3186940620 10 3186940620 10 1421489007 10 1421489007 10 1421489007 10 1421489007 9 776215953 9 776215953 9 776215953 9 776215953 10 1775667486 10 1775667486 9 159865104 9 159865104 10 2355967322 10 2355967322 10 2748750790 10 2748750790 10 1832705803 10 1832705803 10 1832705803 10 1832705803 10 4239032041 10 4239032041 10 4239032041 10 4239032041 10 3876107121 10 3876107121 10 3876107121 10 3876107121 10 3479493952 10 3479493952 10 2600961200 10 2600961200 10 1241175627 10 1241175627 10 1241175627 10 1241175627 9 258343568 9 258343568 10 1630722604 10 1630722604 10 3255615729 10 3255615729 10 3255615729 10 3255615729 7 5018725 7 5018725 7 5018725 7 5018725 10 2774454326 10 2774454326 10 2825882502 10 2825882502 9 581989062 9 581989062 10 2148764457 10 2148764457 10 2148764457 10 2148764457 10 3862464713 10 3862464713 10 3862464713 10 3862464713 10 3862418431 10 3862418431 10 3862418431 10 3862418431 9 918842470 9 918842470 9 183526573 9 183526573 9 183526573 9 183526573 10 2097663454 10 2097663454 10 3377617071 10 3377617071 10 3377617071 10 3377617071 9 167237906 9 167237906 10 2492774796 10 2492774796 10 3254104696 10 3254104696 10 3551458167 10 3551458167 10 3551458167 10 3551458167 10 3989581123 10 3989581123 10 3989581123 10 3989581123 9 430136711 9 430136711 9 430136711 9 430136711 10 2427983947 10 2427983947 10 2427983947 10 2427983947 10 2975706254 10 2975706254 10 1198739057 10 1198739057 10 1198739057 10 1198739057 9 473010817 9 473010817 9 473010817 9 473010817 10 2075478837 10 2075478837 10 2075478837 10 2075478837 10 2956234822 10 2956234822 10 3435288264 10 3435288264 10 2491360284 10 2491360284 10 4076377133 10 4076377133 10 4076377133 10 4076377133 10 3869918764 10 3869918764 9 647803737 9 647803737 9 647803737 9 647803737 9 669358715 9 669358715 9 669358715 9 669358715 9 177811234 9 177811234 10 1021729225 10 1021729225 10 1021729225 10 1021729225 10 2327152015 10 2327152015 10 2327152015 10 2327152015 10 3793441059 10 3793441059 10 3793441059 10 3793441059 9 390937317 9 390937317 9 390937317 9 390937317 10 2421236149 10 2421236149 10 2421236149 10 2421236149 10 3346291068 10 3346291068 10 3880200042 10 3880200042 10 2299140636 10 2299140636 10 3743837736 10 3743837736 10 2784034063 10 2784034063 10 2784034063 10 2784034063 10 1315739433 10 1315739433 10 1315739433 10 1315739433 10 1354395138 10 1354395138 10 4062777255 10 4062777255 10 4062777255 10 4062777255 10 3126701396 10 3126701396 0 0 152 0 10 3356491351 10 3356491351 10 3356491351 10 3356491351 10 2600961200 10 2600961200 10 2509159060 10 2509159060 10 1021729225 10 1021729225 10 1021729225 10 1021729225 10 1832705803 10 1832705803 10 1832705803 10 1832705803 9 581989062 9 581989062 10 1354395138 10 1354395138 10 2097663454 10 2097663454 10 3551458167 10 3551458167 10 3551458167 10 3551458167 10 3126701396 10 3126701396 10 3880200042 10 3880200042 10 3255615729 10 3255615729 10 3255615729 10 3255615729 9 167237906 9 167237906 9 177811234 9 177811234 10 3930851132 10 3930851132 10 2361415202 10 2361415202 9 259868705 9 259868705 9 259868705 9 259868705 10 3793441059 10 3793441059 10 3793441059 10 3793441059 9 776215953 9 776215953 9 776215953 9 776215953 10 1630722604 10 1630722604 9 310524955 9 310524955 9 310524955 9 310524955 9 473010817 9 473010817 9 473010817 9 473010817 10 1970368353 10 1970368353 10 1970368353 10 1970368353 9 647803737 9 647803737 9 647803737 9 647803737 10 3042379069 10 3042379069 10 3042379069 10 3042379069 9 669358715 9 669358715 9 669358715 9 669358715 10 2075478837 10 2075478837 10 2075478837 10 2075478837 10 2299140636 10 2299140636 9 109292002 9 109292002 10 1421489007 10 1421489007 10 1421489007 10 1421489007 9 287343763 9 287343763 9 287343763 9 287343763 10 3186940620 10 3186940620 10 1829132124 10 1829132124 10 2748750790 10 2748750790 9 941660988 9 941660988 10 3989581123 10 3989581123 10 3989581123 10 3989581123 10 3479493952 10 3479493952 10 2417781066 10 2417781066 9 601527218 9 601527218 10 4256439559 10 4256439559 10 4256439559 10 4256439559 10 3226376894 10 3226376894 10 1568788209 10 1568788209 10 1568788209 10 1568788209 10 1198739057 10 1198739057 10 1198739057 10 1198739057 10 2138619156 10 2138619156 10 4076377133 10 4076377133 10 4076377133 10 4076377133 10 2825882502 10 2825882502 10 3801137760 10 3801137760 10 4062777255 10 4062777255 10 4062777255 10 4062777255 10 2620626957 10 2620626957 10 2620626957 10 2620626957 10 1775667486 10 1775667486 10 3346291068 10 3346291068 10 2956234822 10 2956234822 9 178482033 9 178482033 9 178482033 9 178482033 9 918842470 9 918842470 10 3377617071 10 3377617071 10 3377617071 10 3377617071 9 390937317 9 390937317 9 390937317 9 390937317 10 3876107121 10 3876107121 10 3876107121 10 3876107121 9 670291604 9 670291604 10 1859681623 10 1859681623 10 1859681623 10 1859681623 10 1241175627 10 1241175627 10 1241175627 10 1241175627 10 3807848133 10 3807848133 10 3807848133 10 3807848133 10 1315739433 10 1315739433 10 1315739433 10 1315739433 10 2355967322 10 2355967322 10 1786883066 10 1786883066 10 4239032041 10 4239032041 10 4239032041 10 4239032041 10 2148764457 10 2148764457 10 2148764457 10 2148764457 10 2427983947 10 2427983947 10 2427983947 10 2427983947 9 607596425 9 607596425 9 607596425 9 607596425 10 3869918764 10 3869918764 10 3401943278 10 3401943278 10 2421236149 10 2421236149 10 2421236149 10 2421236149 9 159865104 9 159865104 9 411876340 9 411876340 10 2056892401 10 2056892401 10 2056892401 10 2056892401 10 2652233125 10 2652233125 10 2652233125 10 2652233125 10 2298524549 10 2298524549 10 2298524549 10 2298524549 9 257760945 9 257760945 9 257760945 9 257760945 10 2663762324 10 2663762324 10 2492774796 10 2492774796 10 3862418431 10 3862418431 10 3862418431 10 3862418431 10 3743837736 10 3743837736 10 2975706254 10 2975706254 10 3435288264 10 3435288264 10 2784034063 10 2784034063 10 2784034063 10 2784034063 9 286273879 9 286273879 9 286273879 9 286273879 10 1481537722 10 1481537722 9 258343568 9 258343568 10 4029502563 10 4029502563 10 4029502563 10 4029502563 10 3862464713 10 3862464713 10 3862464713 10 3862464713 10 2327152015 10 2327152015 10 2327152015 10 2327152015 10 2764558328 10 2764558328 9 967560929 9 967560929 9 967560929 9 967560929 10 2868860431 10 2868860431 10 2868860431 10 2868860431 9 190104374 9 190104374 9 430136711 9 430136711 9 430136711 9 430136711 10 2491360284 10 2491360284 10 2774454326 10 2774454326 7 5018725 7 5018725 7 5018725 7 5018725 9 183526573 9 183526573 9 183526573 9 183526573 10 3254104696 10 3254104696 diff --git a/test/legacy_archives/multimap_string_100.xml b/test/legacy_archives/multimap_string_100.xml new file mode 100644 index 00000000..3202e3ad --- /dev/null +++ b/test/legacy_archives/multimap_string_100.xml @@ -0,0 +1,1230 @@ + + + + + 152 + 193 + 0 + + 178482033 + 178482033 + + + 178482033 + 178482033 + + + 1786883066 + 1786883066 + + + 286273879 + 286273879 + + + 286273879 + 286273879 + + + 2298524549 + 2298524549 + + + 2298524549 + 2298524549 + + + 259868705 + 259868705 + + + 259868705 + 259868705 + + + 601527218 + 601527218 + + + 411876340 + 411876340 + + + 4029502563 + 4029502563 + + + 4029502563 + 4029502563 + + + 109292002 + 109292002 + + + 941660988 + 941660988 + + + 4256439559 + 4256439559 + + + 4256439559 + 4256439559 + + + 3401943278 + 3401943278 + + + 2663762324 + 2663762324 + + + 3042379069 + 3042379069 + + + 3042379069 + 3042379069 + + + 2509159060 + 2509159060 + + + 1859681623 + 1859681623 + + + 1859681623 + 1859681623 + + + 3356491351 + 3356491351 + + + 3356491351 + 3356491351 + + + 2620626957 + 2620626957 + + + 2620626957 + 2620626957 + + + 2652233125 + 2652233125 + + + 2652233125 + 2652233125 + + + 607596425 + 607596425 + + + 607596425 + 607596425 + + + 1568788209 + 1568788209 + + + 1568788209 + 1568788209 + + + 2868860431 + 2868860431 + + + 2868860431 + 2868860431 + + + 670291604 + 670291604 + + + 2764558328 + 2764558328 + + + 3226376894 + 3226376894 + + + 3930851132 + 3930851132 + + + 3801137760 + 3801137760 + + + 287343763 + 287343763 + + + 287343763 + 287343763 + + + 2138619156 + 2138619156 + + + 967560929 + 967560929 + + + 967560929 + 967560929 + + + 257760945 + 257760945 + + + 257760945 + 257760945 + + + 2056892401 + 2056892401 + + + 2056892401 + 2056892401 + + + 1829132124 + 1829132124 + + + 3807848133 + 3807848133 + + + 3807848133 + 3807848133 + + + 190104374 + 190104374 + + + 310524955 + 310524955 + + + 310524955 + 310524955 + + + 1481537722 + 1481537722 + + + 2361415202 + 2361415202 + + + 1970368353 + 1970368353 + + + 1970368353 + 1970368353 + + + 2417781066 + 2417781066 + + + 3186940620 + 3186940620 + + + 1421489007 + 1421489007 + + + 1421489007 + 1421489007 + + + 776215953 + 776215953 + + + 776215953 + 776215953 + + + 1775667486 + 1775667486 + + + 159865104 + 159865104 + + + 2355967322 + 2355967322 + + + 2748750790 + 2748750790 + + + 1832705803 + 1832705803 + + + 1832705803 + 1832705803 + + + 4239032041 + 4239032041 + + + 4239032041 + 4239032041 + + + 3876107121 + 3876107121 + + + 3876107121 + 3876107121 + + + 3479493952 + 3479493952 + + + 2600961200 + 2600961200 + + + 1241175627 + 1241175627 + + + 1241175627 + 1241175627 + + + 258343568 + 258343568 + + + 1630722604 + 1630722604 + + + 3255615729 + 3255615729 + + + 3255615729 + 3255615729 + + + 5018725 + 5018725 + + + 5018725 + 5018725 + + + 2774454326 + 2774454326 + + + 2825882502 + 2825882502 + + + 581989062 + 581989062 + + + 2148764457 + 2148764457 + + + 2148764457 + 2148764457 + + + 3862464713 + 3862464713 + + + 3862464713 + 3862464713 + + + 3862418431 + 3862418431 + + + 3862418431 + 3862418431 + + + 918842470 + 918842470 + + + 183526573 + 183526573 + + + 183526573 + 183526573 + + + 2097663454 + 2097663454 + + + 3377617071 + 3377617071 + + + 3377617071 + 3377617071 + + + 167237906 + 167237906 + + + 2492774796 + 2492774796 + + + 3254104696 + 3254104696 + + + 3551458167 + 3551458167 + + + 3551458167 + 3551458167 + + + 3989581123 + 3989581123 + + + 3989581123 + 3989581123 + + + 430136711 + 430136711 + + + 430136711 + 430136711 + + + 2427983947 + 2427983947 + + + 2427983947 + 2427983947 + + + 2975706254 + 2975706254 + + + 1198739057 + 1198739057 + + + 1198739057 + 1198739057 + + + 473010817 + 473010817 + + + 473010817 + 473010817 + + + 2075478837 + 2075478837 + + + 2075478837 + 2075478837 + + + 2956234822 + 2956234822 + + + 3435288264 + 3435288264 + + + 2491360284 + 2491360284 + + + 4076377133 + 4076377133 + + + 4076377133 + 4076377133 + + + 3869918764 + 3869918764 + + + 647803737 + 647803737 + + + 647803737 + 647803737 + + + 669358715 + 669358715 + + + 669358715 + 669358715 + + + 177811234 + 177811234 + + + 1021729225 + 1021729225 + + + 1021729225 + 1021729225 + + + 2327152015 + 2327152015 + + + 2327152015 + 2327152015 + + + 3793441059 + 3793441059 + + + 3793441059 + 3793441059 + + + 390937317 + 390937317 + + + 390937317 + 390937317 + + + 2421236149 + 2421236149 + + + 2421236149 + 2421236149 + + + 3346291068 + 3346291068 + + + 3880200042 + 3880200042 + + + 2299140636 + 2299140636 + + + 3743837736 + 3743837736 + + + 2784034063 + 2784034063 + + + 2784034063 + 2784034063 + + + 1315739433 + 1315739433 + + + 1315739433 + 1315739433 + + + 1354395138 + 1354395138 + + + 4062777255 + 4062777255 + + + 4062777255 + 4062777255 + + + 3126701396 + 3126701396 + + + + 152 + 0 + + 3356491351 + 3356491351 + + + 3356491351 + 3356491351 + + + 2600961200 + 2600961200 + + + 2509159060 + 2509159060 + + + 1021729225 + 1021729225 + + + 1021729225 + 1021729225 + + + 1832705803 + 1832705803 + + + 1832705803 + 1832705803 + + + 581989062 + 581989062 + + + 1354395138 + 1354395138 + + + 2097663454 + 2097663454 + + + 3551458167 + 3551458167 + + + 3551458167 + 3551458167 + + + 3126701396 + 3126701396 + + + 3880200042 + 3880200042 + + + 3255615729 + 3255615729 + + + 3255615729 + 3255615729 + + + 167237906 + 167237906 + + + 177811234 + 177811234 + + + 3930851132 + 3930851132 + + + 2361415202 + 2361415202 + + + 259868705 + 259868705 + + + 259868705 + 259868705 + + + 3793441059 + 3793441059 + + + 3793441059 + 3793441059 + + + 776215953 + 776215953 + + + 776215953 + 776215953 + + + 1630722604 + 1630722604 + + + 310524955 + 310524955 + + + 310524955 + 310524955 + + + 473010817 + 473010817 + + + 473010817 + 473010817 + + + 1970368353 + 1970368353 + + + 1970368353 + 1970368353 + + + 647803737 + 647803737 + + + 647803737 + 647803737 + + + 3042379069 + 3042379069 + + + 3042379069 + 3042379069 + + + 669358715 + 669358715 + + + 669358715 + 669358715 + + + 2075478837 + 2075478837 + + + 2075478837 + 2075478837 + + + 2299140636 + 2299140636 + + + 109292002 + 109292002 + + + 1421489007 + 1421489007 + + + 1421489007 + 1421489007 + + + 287343763 + 287343763 + + + 287343763 + 287343763 + + + 3186940620 + 3186940620 + + + 1829132124 + 1829132124 + + + 2748750790 + 2748750790 + + + 941660988 + 941660988 + + + 3989581123 + 3989581123 + + + 3989581123 + 3989581123 + + + 3479493952 + 3479493952 + + + 2417781066 + 2417781066 + + + 601527218 + 601527218 + + + 4256439559 + 4256439559 + + + 4256439559 + 4256439559 + + + 3226376894 + 3226376894 + + + 1568788209 + 1568788209 + + + 1568788209 + 1568788209 + + + 1198739057 + 1198739057 + + + 1198739057 + 1198739057 + + + 2138619156 + 2138619156 + + + 4076377133 + 4076377133 + + + 4076377133 + 4076377133 + + + 2825882502 + 2825882502 + + + 3801137760 + 3801137760 + + + 4062777255 + 4062777255 + + + 4062777255 + 4062777255 + + + 2620626957 + 2620626957 + + + 2620626957 + 2620626957 + + + 1775667486 + 1775667486 + + + 3346291068 + 3346291068 + + + 2956234822 + 2956234822 + + + 178482033 + 178482033 + + + 178482033 + 178482033 + + + 918842470 + 918842470 + + + 3377617071 + 3377617071 + + + 3377617071 + 3377617071 + + + 390937317 + 390937317 + + + 390937317 + 390937317 + + + 3876107121 + 3876107121 + + + 3876107121 + 3876107121 + + + 670291604 + 670291604 + + + 1859681623 + 1859681623 + + + 1859681623 + 1859681623 + + + 1241175627 + 1241175627 + + + 1241175627 + 1241175627 + + + 3807848133 + 3807848133 + + + 3807848133 + 3807848133 + + + 1315739433 + 1315739433 + + + 1315739433 + 1315739433 + + + 2355967322 + 2355967322 + + + 1786883066 + 1786883066 + + + 4239032041 + 4239032041 + + + 4239032041 + 4239032041 + + + 2148764457 + 2148764457 + + + 2148764457 + 2148764457 + + + 2427983947 + 2427983947 + + + 2427983947 + 2427983947 + + + 607596425 + 607596425 + + + 607596425 + 607596425 + + + 3869918764 + 3869918764 + + + 3401943278 + 3401943278 + + + 2421236149 + 2421236149 + + + 2421236149 + 2421236149 + + + 159865104 + 159865104 + + + 411876340 + 411876340 + + + 2056892401 + 2056892401 + + + 2056892401 + 2056892401 + + + 2652233125 + 2652233125 + + + 2652233125 + 2652233125 + + + 2298524549 + 2298524549 + + + 2298524549 + 2298524549 + + + 257760945 + 257760945 + + + 257760945 + 257760945 + + + 2663762324 + 2663762324 + + + 2492774796 + 2492774796 + + + 3862418431 + 3862418431 + + + 3862418431 + 3862418431 + + + 3743837736 + 3743837736 + + + 2975706254 + 2975706254 + + + 3435288264 + 3435288264 + + + 2784034063 + 2784034063 + + + 2784034063 + 2784034063 + + + 286273879 + 286273879 + + + 286273879 + 286273879 + + + 1481537722 + 1481537722 + + + 258343568 + 258343568 + + + 4029502563 + 4029502563 + + + 4029502563 + 4029502563 + + + 3862464713 + 3862464713 + + + 3862464713 + 3862464713 + + + 2327152015 + 2327152015 + + + 2327152015 + 2327152015 + + + 2764558328 + 2764558328 + + + 967560929 + 967560929 + + + 967560929 + 967560929 + + + 2868860431 + 2868860431 + + + 2868860431 + 2868860431 + + + 190104374 + 190104374 + + + 430136711 + 430136711 + + + 430136711 + 430136711 + + + 2491360284 + 2491360284 + + + 2774454326 + 2774454326 + + + 5018725 + 5018725 + + + 5018725 + 5018725 + + + 183526573 + 183526573 + + + 183526573 + 183526573 + + + 3254104696 + 3254104696 + + + + diff --git a/test/legacy_archives/multiset_int_0.txt b/test/legacy_archives/multiset_int_0.txt new file mode 100644 index 00000000..0ddbd128 --- /dev/null +++ b/test/legacy_archives/multiset_int_0.txt @@ -0,0 +1 @@ +22 serialization::archive 19 0 0 0 0 0 0 0 diff --git a/test/legacy_archives/multiset_int_0.xml b/test/legacy_archives/multiset_int_0.xml new file mode 100644 index 00000000..6f8e63e7 --- /dev/null +++ b/test/legacy_archives/multiset_int_0.xml @@ -0,0 +1,14 @@ + + + + + 0 + 0 + 0 + + + 0 + 0 + + + diff --git a/test/legacy_archives/multiset_int_10.txt b/test/legacy_archives/multiset_int_10.txt new file mode 100644 index 00000000..2cf7a1a5 --- /dev/null +++ b/test/legacy_archives/multiset_int_10.txt @@ -0,0 +1 @@ +22 serialization::archive 19 0 0 14 29 0 -938475945 -938475945 -1785808236 -1694006096 1021729225 1021729225 581989062 -1168265900 2097663454 1354395138 -743509129 -743509129 1832705803 1832705803 14 0 -938475945 -938475945 -1694006096 -1785808236 1021729225 1021729225 1832705803 1832705803 581989062 1354395138 2097663454 -743509129 -743509129 -1168265900 diff --git a/test/legacy_archives/multiset_int_10.xml b/test/legacy_archives/multiset_int_10.xml new file mode 100644 index 00000000..631f9343 --- /dev/null +++ b/test/legacy_archives/multiset_int_10.xml @@ -0,0 +1,42 @@ + + + + + 14 + 29 + 0 + -938475945 + -938475945 + -1785808236 + -1694006096 + 1021729225 + 1021729225 + 581989062 + -1168265900 + 2097663454 + 1354395138 + -743509129 + -743509129 + 1832705803 + 1832705803 + + + 14 + 0 + -938475945 + -938475945 + -1694006096 + -1785808236 + 1021729225 + 1021729225 + 1832705803 + 1832705803 + 581989062 + 1354395138 + 2097663454 + -743509129 + -743509129 + -1168265900 + + + diff --git a/test/legacy_archives/multiset_int_100.txt b/test/legacy_archives/multiset_int_100.txt new file mode 100644 index 00000000..2b7f67b9 --- /dev/null +++ b/test/legacy_archives/multiset_int_100.txt @@ -0,0 +1 @@ +22 serialization::archive 19 0 0 152 193 0 1775667486 -948676228 -1108026676 -1866983349 -1866983349 258343568 -1068590402 -432548865 -432548865 177811234 5018725 5018725 190104374 1315739433 1315739433 -1995826660 -305386173 -305386173 287343763 287343763 1241175627 1241175627 109292002 1021729225 1021729225 -1426106865 -1426106865 918842470 -1338732474 669358715 669358715 183526573 183526573 -938475945 -938475945 -1694006096 1630722604 -1933552094 257760945 257760945 -1510933233 -1510933233 390937317 390937317 259868705 259868705 -38527737 -38527737 -551129560 1832705803 1832705803 607596425 607596425 -1520512970 -1674340339 -1674340339 -1873731147 -1873731147 1421489007 1421489007 -501526237 -501526237 -1877186230 -218590163 -218590163 647803737 647803737 -859679032 967560929 967560929 -815473344 -487119163 -487119163 -1546216506 1859681623 1859681623 -1040862600 -893024018 -1319261042 -1252588227 -1252588227 -1785808236 1198739057 1198739057 -1469084794 473010817 473010817 1481537722 2138619156 -1039351567 -1039351567 -493829536 411876340 -364116164 776215953 776215953 1568788209 1568788209 -1631204972 601527218 286273879 286273879 -232190041 -232190041 2075478837 2075478837 -1168265900 581989062 178482033 178482033 1354395138 -1530408968 -414767254 1970368353 1970368353 -1967815281 -1967815281 941660988 1786883066 670291604 -1803607012 1829132124 -432502583 -432502583 -1642734171 -1642734171 -425048532 2097663454 -1938999974 -1802192500 2056892401 2056892401 -917350225 -917350225 -55935255 -55935255 -418860175 -418860175 -2146202839 -2146202839 310524955 310524955 159865104 -265464733 -265464733 -1996442747 -1996442747 430136711 430136711 -743509129 -743509129 167237906 152 0 -938475945 -938475945 -1694006096 -1785808236 1021729225 1021729225 1832705803 1832705803 581989062 1354395138 2097663454 -743509129 -743509129 -1168265900 -414767254 -1039351567 -1039351567 167237906 177811234 -364116164 -1933552094 259868705 259868705 -501526237 -501526237 776215953 776215953 1630722604 310524955 310524955 473010817 473010817 1970368353 1970368353 647803737 647803737 -1252588227 -1252588227 669358715 669358715 2075478837 2075478837 -1995826660 109292002 1421489007 1421489007 287343763 287343763 -1108026676 1829132124 -1546216506 941660988 -305386173 -305386173 -815473344 -1877186230 601527218 -38527737 -38527737 -1068590402 1568788209 1568788209 1198739057 1198739057 2138619156 -218590163 -218590163 -1469084794 -493829536 -232190041 -232190041 -1674340339 -1674340339 1775667486 -948676228 -1338732474 178482033 178482033 918842470 -917350225 -917350225 390937317 390937317 -418860175 -418860175 670291604 1859681623 1859681623 1241175627 1241175627 -487119163 -487119163 1315739433 1315739433 -1938999974 1786883066 -55935255 -55935255 -2146202839 -2146202839 -1866983349 -1866983349 607596425 607596425 -425048532 -893024018 -1873731147 -1873731147 159865104 411876340 2056892401 2056892401 -1642734171 -1642734171 -1996442747 -1996442747 257760945 257760945 -1631204972 -1802192500 -432548865 -432548865 -551129560 -1319261042 -859679032 -1510933233 -1510933233 286273879 286273879 1481537722 258343568 -265464733 -265464733 -432502583 -432502583 -1967815281 -1967815281 -1530408968 967560929 967560929 -1426106865 -1426106865 190104374 430136711 430136711 -1803607012 -1520512970 5018725 5018725 183526573 183526573 -1040862600 diff --git a/test/legacy_archives/multiset_int_100.xml b/test/legacy_archives/multiset_int_100.xml new file mode 100644 index 00000000..a9e67076 --- /dev/null +++ b/test/legacy_archives/multiset_int_100.xml @@ -0,0 +1,318 @@ + + + + + 152 + 193 + 0 + 1775667486 + -948676228 + -1108026676 + -1866983349 + -1866983349 + 258343568 + -1068590402 + -432548865 + -432548865 + 177811234 + 5018725 + 5018725 + 190104374 + 1315739433 + 1315739433 + -1995826660 + -305386173 + -305386173 + 287343763 + 287343763 + 1241175627 + 1241175627 + 109292002 + 1021729225 + 1021729225 + -1426106865 + -1426106865 + 918842470 + -1338732474 + 669358715 + 669358715 + 183526573 + 183526573 + -938475945 + -938475945 + -1694006096 + 1630722604 + -1933552094 + 257760945 + 257760945 + -1510933233 + -1510933233 + 390937317 + 390937317 + 259868705 + 259868705 + -38527737 + -38527737 + -551129560 + 1832705803 + 1832705803 + 607596425 + 607596425 + -1520512970 + -1674340339 + -1674340339 + -1873731147 + -1873731147 + 1421489007 + 1421489007 + -501526237 + -501526237 + -1877186230 + -218590163 + -218590163 + 647803737 + 647803737 + -859679032 + 967560929 + 967560929 + -815473344 + -487119163 + -487119163 + -1546216506 + 1859681623 + 1859681623 + -1040862600 + -893024018 + -1319261042 + -1252588227 + -1252588227 + -1785808236 + 1198739057 + 1198739057 + -1469084794 + 473010817 + 473010817 + 1481537722 + 2138619156 + -1039351567 + -1039351567 + -493829536 + 411876340 + -364116164 + 776215953 + 776215953 + 1568788209 + 1568788209 + -1631204972 + 601527218 + 286273879 + 286273879 + -232190041 + -232190041 + 2075478837 + 2075478837 + -1168265900 + 581989062 + 178482033 + 178482033 + 1354395138 + -1530408968 + -414767254 + 1970368353 + 1970368353 + -1967815281 + -1967815281 + 941660988 + 1786883066 + 670291604 + -1803607012 + 1829132124 + -432502583 + -432502583 + -1642734171 + -1642734171 + -425048532 + 2097663454 + -1938999974 + -1802192500 + 2056892401 + 2056892401 + -917350225 + -917350225 + -55935255 + -55935255 + -418860175 + -418860175 + -2146202839 + -2146202839 + 310524955 + 310524955 + 159865104 + -265464733 + -265464733 + -1996442747 + -1996442747 + 430136711 + 430136711 + -743509129 + -743509129 + 167237906 + + + 152 + 0 + -938475945 + -938475945 + -1694006096 + -1785808236 + 1021729225 + 1021729225 + 1832705803 + 1832705803 + 581989062 + 1354395138 + 2097663454 + -743509129 + -743509129 + -1168265900 + -414767254 + -1039351567 + -1039351567 + 167237906 + 177811234 + -364116164 + -1933552094 + 259868705 + 259868705 + -501526237 + -501526237 + 776215953 + 776215953 + 1630722604 + 310524955 + 310524955 + 473010817 + 473010817 + 1970368353 + 1970368353 + 647803737 + 647803737 + -1252588227 + -1252588227 + 669358715 + 669358715 + 2075478837 + 2075478837 + -1995826660 + 109292002 + 1421489007 + 1421489007 + 287343763 + 287343763 + -1108026676 + 1829132124 + -1546216506 + 941660988 + -305386173 + -305386173 + -815473344 + -1877186230 + 601527218 + -38527737 + -38527737 + -1068590402 + 1568788209 + 1568788209 + 1198739057 + 1198739057 + 2138619156 + -218590163 + -218590163 + -1469084794 + -493829536 + -232190041 + -232190041 + -1674340339 + -1674340339 + 1775667486 + -948676228 + -1338732474 + 178482033 + 178482033 + 918842470 + -917350225 + -917350225 + 390937317 + 390937317 + -418860175 + -418860175 + 670291604 + 1859681623 + 1859681623 + 1241175627 + 1241175627 + -487119163 + -487119163 + 1315739433 + 1315739433 + -1938999974 + 1786883066 + -55935255 + -55935255 + -2146202839 + -2146202839 + -1866983349 + -1866983349 + 607596425 + 607596425 + -425048532 + -893024018 + -1873731147 + -1873731147 + 159865104 + 411876340 + 2056892401 + 2056892401 + -1642734171 + -1642734171 + -1996442747 + -1996442747 + 257760945 + 257760945 + -1631204972 + -1802192500 + -432548865 + -432548865 + -551129560 + -1319261042 + -859679032 + -1510933233 + -1510933233 + 286273879 + 286273879 + 1481537722 + 258343568 + -265464733 + -265464733 + -432502583 + -432502583 + -1967815281 + -1967815281 + -1530408968 + 967560929 + 967560929 + -1426106865 + -1426106865 + 190104374 + 430136711 + 430136711 + -1803607012 + -1520512970 + 5018725 + 5018725 + 183526573 + 183526573 + -1040862600 + + + diff --git a/test/legacy_archives/multiset_string_0.txt b/test/legacy_archives/multiset_string_0.txt new file mode 100644 index 00000000..0c851da6 --- /dev/null +++ b/test/legacy_archives/multiset_string_0.txt @@ -0,0 +1 @@ +22 serialization::archive 19 0 0 0 0 0 0 0 0 0 diff --git a/test/legacy_archives/multiset_string_0.xml b/test/legacy_archives/multiset_string_0.xml new file mode 100644 index 00000000..059687d4 --- /dev/null +++ b/test/legacy_archives/multiset_string_0.xml @@ -0,0 +1,14 @@ + + + + + 0 + 0 + 0 + + + 0 + 0 + + + diff --git a/test/legacy_archives/multiset_string_10.txt b/test/legacy_archives/multiset_string_10.txt new file mode 100644 index 00000000..43e97d6a --- /dev/null +++ b/test/legacy_archives/multiset_string_10.txt @@ -0,0 +1 @@ +22 serialization::archive 19 0 0 14 29 0 10 3551458167 10 3551458167 10 2600961200 10 3126701396 9 581989062 10 1832705803 10 1832705803 10 3356491351 10 3356491351 10 1021729225 10 1021729225 10 2097663454 10 1354395138 10 2509159060 0 0 14 0 10 3356491351 10 3356491351 10 2600961200 10 2509159060 10 1021729225 10 1021729225 10 1832705803 10 1832705803 9 581989062 10 1354395138 10 2097663454 10 3551458167 10 3551458167 10 3126701396 diff --git a/test/legacy_archives/multiset_string_10.xml b/test/legacy_archives/multiset_string_10.xml new file mode 100644 index 00000000..b278b2f1 --- /dev/null +++ b/test/legacy_archives/multiset_string_10.xml @@ -0,0 +1,42 @@ + + + + + 14 + 29 + 0 + 3551458167 + 3551458167 + 2600961200 + 3126701396 + 581989062 + 1832705803 + 1832705803 + 3356491351 + 3356491351 + 1021729225 + 1021729225 + 2097663454 + 1354395138 + 2509159060 + + + 14 + 0 + 3356491351 + 3356491351 + 2600961200 + 2509159060 + 1021729225 + 1021729225 + 1832705803 + 1832705803 + 581989062 + 1354395138 + 2097663454 + 3551458167 + 3551458167 + 3126701396 + + + diff --git a/test/legacy_archives/multiset_string_100.txt b/test/legacy_archives/multiset_string_100.txt new file mode 100644 index 00000000..7e6548dc --- /dev/null +++ b/test/legacy_archives/multiset_string_100.txt @@ -0,0 +1 @@ +22 serialization::archive 19 0 0 152 193 0 9 178482033 9 178482033 10 1786883066 9 286273879 9 286273879 10 2298524549 10 2298524549 9 259868705 9 259868705 9 601527218 9 411876340 10 4029502563 10 4029502563 9 109292002 9 941660988 10 4256439559 10 4256439559 10 3401943278 10 2663762324 10 3042379069 10 3042379069 10 2509159060 10 1859681623 10 1859681623 10 3356491351 10 3356491351 10 2620626957 10 2620626957 10 2652233125 10 2652233125 9 607596425 9 607596425 10 1568788209 10 1568788209 10 2868860431 10 2868860431 9 670291604 10 2764558328 10 3226376894 10 3930851132 10 3801137760 9 287343763 9 287343763 10 2138619156 9 967560929 9 967560929 9 257760945 9 257760945 10 2056892401 10 2056892401 10 1829132124 10 3807848133 10 3807848133 9 190104374 9 310524955 9 310524955 10 1481537722 10 2361415202 10 1970368353 10 1970368353 10 2417781066 10 3186940620 10 1421489007 10 1421489007 9 776215953 9 776215953 10 1775667486 9 159865104 10 2355967322 10 2748750790 10 1832705803 10 1832705803 10 4239032041 10 4239032041 10 3876107121 10 3876107121 10 3479493952 10 2600961200 10 1241175627 10 1241175627 9 258343568 10 1630722604 10 3255615729 10 3255615729 7 5018725 7 5018725 10 2774454326 10 2825882502 9 581989062 10 2148764457 10 2148764457 10 3862464713 10 3862464713 10 3862418431 10 3862418431 9 918842470 9 183526573 9 183526573 10 2097663454 10 3377617071 10 3377617071 9 167237906 10 2492774796 10 3254104696 10 3551458167 10 3551458167 10 3989581123 10 3989581123 9 430136711 9 430136711 10 2427983947 10 2427983947 10 2975706254 10 1198739057 10 1198739057 9 473010817 9 473010817 10 2075478837 10 2075478837 10 2956234822 10 3435288264 10 2491360284 10 4076377133 10 4076377133 10 3869918764 9 647803737 9 647803737 9 669358715 9 669358715 9 177811234 10 1021729225 10 1021729225 10 2327152015 10 2327152015 10 3793441059 10 3793441059 9 390937317 9 390937317 10 2421236149 10 2421236149 10 3346291068 10 3880200042 10 2299140636 10 3743837736 10 2784034063 10 2784034063 10 1315739433 10 1315739433 10 1354395138 10 4062777255 10 4062777255 10 3126701396 0 0 152 0 10 3356491351 10 3356491351 10 2600961200 10 2509159060 10 1021729225 10 1021729225 10 1832705803 10 1832705803 9 581989062 10 1354395138 10 2097663454 10 3551458167 10 3551458167 10 3126701396 10 3880200042 10 3255615729 10 3255615729 9 167237906 9 177811234 10 3930851132 10 2361415202 9 259868705 9 259868705 10 3793441059 10 3793441059 9 776215953 9 776215953 10 1630722604 9 310524955 9 310524955 9 473010817 9 473010817 10 1970368353 10 1970368353 9 647803737 9 647803737 10 3042379069 10 3042379069 9 669358715 9 669358715 10 2075478837 10 2075478837 10 2299140636 9 109292002 10 1421489007 10 1421489007 9 287343763 9 287343763 10 3186940620 10 1829132124 10 2748750790 9 941660988 10 3989581123 10 3989581123 10 3479493952 10 2417781066 9 601527218 10 4256439559 10 4256439559 10 3226376894 10 1568788209 10 1568788209 10 1198739057 10 1198739057 10 2138619156 10 4076377133 10 4076377133 10 2825882502 10 3801137760 10 4062777255 10 4062777255 10 2620626957 10 2620626957 10 1775667486 10 3346291068 10 2956234822 9 178482033 9 178482033 9 918842470 10 3377617071 10 3377617071 9 390937317 9 390937317 10 3876107121 10 3876107121 9 670291604 10 1859681623 10 1859681623 10 1241175627 10 1241175627 10 3807848133 10 3807848133 10 1315739433 10 1315739433 10 2355967322 10 1786883066 10 4239032041 10 4239032041 10 2148764457 10 2148764457 10 2427983947 10 2427983947 9 607596425 9 607596425 10 3869918764 10 3401943278 10 2421236149 10 2421236149 9 159865104 9 411876340 10 2056892401 10 2056892401 10 2652233125 10 2652233125 10 2298524549 10 2298524549 9 257760945 9 257760945 10 2663762324 10 2492774796 10 3862418431 10 3862418431 10 3743837736 10 2975706254 10 3435288264 10 2784034063 10 2784034063 9 286273879 9 286273879 10 1481537722 9 258343568 10 4029502563 10 4029502563 10 3862464713 10 3862464713 10 2327152015 10 2327152015 10 2764558328 9 967560929 9 967560929 10 2868860431 10 2868860431 9 190104374 9 430136711 9 430136711 10 2491360284 10 2774454326 7 5018725 7 5018725 9 183526573 9 183526573 10 3254104696 diff --git a/test/legacy_archives/multiset_string_100.xml b/test/legacy_archives/multiset_string_100.xml new file mode 100644 index 00000000..1aed46a4 --- /dev/null +++ b/test/legacy_archives/multiset_string_100.xml @@ -0,0 +1,318 @@ + + + + + 152 + 193 + 0 + 178482033 + 178482033 + 1786883066 + 286273879 + 286273879 + 2298524549 + 2298524549 + 259868705 + 259868705 + 601527218 + 411876340 + 4029502563 + 4029502563 + 109292002 + 941660988 + 4256439559 + 4256439559 + 3401943278 + 2663762324 + 3042379069 + 3042379069 + 2509159060 + 1859681623 + 1859681623 + 3356491351 + 3356491351 + 2620626957 + 2620626957 + 2652233125 + 2652233125 + 607596425 + 607596425 + 1568788209 + 1568788209 + 2868860431 + 2868860431 + 670291604 + 2764558328 + 3226376894 + 3930851132 + 3801137760 + 287343763 + 287343763 + 2138619156 + 967560929 + 967560929 + 257760945 + 257760945 + 2056892401 + 2056892401 + 1829132124 + 3807848133 + 3807848133 + 190104374 + 310524955 + 310524955 + 1481537722 + 2361415202 + 1970368353 + 1970368353 + 2417781066 + 3186940620 + 1421489007 + 1421489007 + 776215953 + 776215953 + 1775667486 + 159865104 + 2355967322 + 2748750790 + 1832705803 + 1832705803 + 4239032041 + 4239032041 + 3876107121 + 3876107121 + 3479493952 + 2600961200 + 1241175627 + 1241175627 + 258343568 + 1630722604 + 3255615729 + 3255615729 + 5018725 + 5018725 + 2774454326 + 2825882502 + 581989062 + 2148764457 + 2148764457 + 3862464713 + 3862464713 + 3862418431 + 3862418431 + 918842470 + 183526573 + 183526573 + 2097663454 + 3377617071 + 3377617071 + 167237906 + 2492774796 + 3254104696 + 3551458167 + 3551458167 + 3989581123 + 3989581123 + 430136711 + 430136711 + 2427983947 + 2427983947 + 2975706254 + 1198739057 + 1198739057 + 473010817 + 473010817 + 2075478837 + 2075478837 + 2956234822 + 3435288264 + 2491360284 + 4076377133 + 4076377133 + 3869918764 + 647803737 + 647803737 + 669358715 + 669358715 + 177811234 + 1021729225 + 1021729225 + 2327152015 + 2327152015 + 3793441059 + 3793441059 + 390937317 + 390937317 + 2421236149 + 2421236149 + 3346291068 + 3880200042 + 2299140636 + 3743837736 + 2784034063 + 2784034063 + 1315739433 + 1315739433 + 1354395138 + 4062777255 + 4062777255 + 3126701396 + + + 152 + 0 + 3356491351 + 3356491351 + 2600961200 + 2509159060 + 1021729225 + 1021729225 + 1832705803 + 1832705803 + 581989062 + 1354395138 + 2097663454 + 3551458167 + 3551458167 + 3126701396 + 3880200042 + 3255615729 + 3255615729 + 167237906 + 177811234 + 3930851132 + 2361415202 + 259868705 + 259868705 + 3793441059 + 3793441059 + 776215953 + 776215953 + 1630722604 + 310524955 + 310524955 + 473010817 + 473010817 + 1970368353 + 1970368353 + 647803737 + 647803737 + 3042379069 + 3042379069 + 669358715 + 669358715 + 2075478837 + 2075478837 + 2299140636 + 109292002 + 1421489007 + 1421489007 + 287343763 + 287343763 + 3186940620 + 1829132124 + 2748750790 + 941660988 + 3989581123 + 3989581123 + 3479493952 + 2417781066 + 601527218 + 4256439559 + 4256439559 + 3226376894 + 1568788209 + 1568788209 + 1198739057 + 1198739057 + 2138619156 + 4076377133 + 4076377133 + 2825882502 + 3801137760 + 4062777255 + 4062777255 + 2620626957 + 2620626957 + 1775667486 + 3346291068 + 2956234822 + 178482033 + 178482033 + 918842470 + 3377617071 + 3377617071 + 390937317 + 390937317 + 3876107121 + 3876107121 + 670291604 + 1859681623 + 1859681623 + 1241175627 + 1241175627 + 3807848133 + 3807848133 + 1315739433 + 1315739433 + 2355967322 + 1786883066 + 4239032041 + 4239032041 + 2148764457 + 2148764457 + 2427983947 + 2427983947 + 607596425 + 607596425 + 3869918764 + 3401943278 + 2421236149 + 2421236149 + 159865104 + 411876340 + 2056892401 + 2056892401 + 2652233125 + 2652233125 + 2298524549 + 2298524549 + 257760945 + 257760945 + 2663762324 + 2492774796 + 3862418431 + 3862418431 + 3743837736 + 2975706254 + 3435288264 + 2784034063 + 2784034063 + 286273879 + 286273879 + 1481537722 + 258343568 + 4029502563 + 4029502563 + 3862464713 + 3862464713 + 2327152015 + 2327152015 + 2764558328 + 967560929 + 967560929 + 2868860431 + 2868860431 + 190104374 + 430136711 + 430136711 + 2491360284 + 2774454326 + 5018725 + 5018725 + 183526573 + 183526573 + 3254104696 + + + diff --git a/test/legacy_archives/set_int_0.txt b/test/legacy_archives/set_int_0.txt new file mode 100644 index 00000000..0ddbd128 --- /dev/null +++ b/test/legacy_archives/set_int_0.txt @@ -0,0 +1 @@ +22 serialization::archive 19 0 0 0 0 0 0 0 diff --git a/test/legacy_archives/set_int_0.xml b/test/legacy_archives/set_int_0.xml new file mode 100644 index 00000000..6f8e63e7 --- /dev/null +++ b/test/legacy_archives/set_int_0.xml @@ -0,0 +1,14 @@ + + + + + 0 + 0 + 0 + + + 0 + 0 + + + diff --git a/test/legacy_archives/set_int_10.txt b/test/legacy_archives/set_int_10.txt new file mode 100644 index 00000000..fdda5f54 --- /dev/null +++ b/test/legacy_archives/set_int_10.txt @@ -0,0 +1 @@ +22 serialization::archive 19 0 0 10 13 0 2097663454 -1785808236 -938475945 1354395138 581989062 -1694006096 1832705803 -743509129 1021729225 -1168265900 14 0 -938475945 -938475945 -1694006096 -1785808236 1021729225 1021729225 1832705803 1832705803 581989062 1354395138 2097663454 -743509129 -743509129 -1168265900 diff --git a/test/legacy_archives/set_int_10.xml b/test/legacy_archives/set_int_10.xml new file mode 100644 index 00000000..9276b8a8 --- /dev/null +++ b/test/legacy_archives/set_int_10.xml @@ -0,0 +1,38 @@ + + + + + 10 + 13 + 0 + 2097663454 + -1785808236 + -938475945 + 1354395138 + 581989062 + -1694006096 + 1832705803 + -743509129 + 1021729225 + -1168265900 + + + 14 + 0 + -938475945 + -938475945 + -1694006096 + -1785808236 + 1021729225 + 1021729225 + 1832705803 + 1832705803 + 581989062 + 1354395138 + 2097663454 + -743509129 + -743509129 + -1168265900 + + + diff --git a/test/legacy_archives/set_int_100.txt b/test/legacy_archives/set_int_100.txt new file mode 100644 index 00000000..e92611eb --- /dev/null +++ b/test/legacy_archives/set_int_100.txt @@ -0,0 +1 @@ +22 serialization::archive 19 0 0 100 193 0 1775667486 -948676228 -1108026676 -1866983349 258343568 -1068590402 -432548865 177811234 5018725 190104374 1315739433 -1995826660 -305386173 287343763 1241175627 109292002 1021729225 918842470 -1426106865 -1338732474 669358715 183526573 -938475945 -1694006096 1630722604 -1933552094 257760945 390937317 -1510933233 259868705 -38527737 -551129560 1832705803 607596425 -1520512970 -1674340339 1421489007 -501526237 -1873731147 -1877186230 -218590163 647803737 -859679032 967560929 -815473344 -487119163 -1546216506 1859681623 -1040862600 -893024018 -1252588227 -1319261042 -1785808236 1198739057 -1469084794 473010817 1481537722 2138619156 -1039351567 -493829536 411876340 -364116164 776215953 1568788209 -1631204972 601527218 -232190041 286273879 2075478837 -1168265900 581989062 178482033 1354395138 -1530408968 -414767254 1970368353 -1967815281 941660988 1786883066 670291604 -1803607012 1829132124 -432502583 -1642734171 -425048532 2097663454 -1938999974 -917350225 2056892401 -55935255 -1802192500 -418860175 -2146202839 310524955 159865104 -265464733 -1996442747 430136711 -743509129 167237906 152 0 -938475945 -938475945 -1694006096 -1785808236 1021729225 1021729225 1832705803 1832705803 581989062 1354395138 2097663454 -743509129 -743509129 -1168265900 -414767254 -1039351567 -1039351567 167237906 177811234 -364116164 -1933552094 259868705 259868705 -501526237 -501526237 776215953 776215953 1630722604 310524955 310524955 473010817 473010817 1970368353 1970368353 647803737 647803737 -1252588227 -1252588227 669358715 669358715 2075478837 2075478837 -1995826660 109292002 1421489007 1421489007 287343763 287343763 -1108026676 1829132124 -1546216506 941660988 -305386173 -305386173 -815473344 -1877186230 601527218 -38527737 -38527737 -1068590402 1568788209 1568788209 1198739057 1198739057 2138619156 -218590163 -218590163 -1469084794 -493829536 -232190041 -232190041 -1674340339 -1674340339 1775667486 -948676228 -1338732474 178482033 178482033 918842470 -917350225 -917350225 390937317 390937317 -418860175 -418860175 670291604 1859681623 1859681623 1241175627 1241175627 -487119163 -487119163 1315739433 1315739433 -1938999974 1786883066 -55935255 -55935255 -2146202839 -2146202839 -1866983349 -1866983349 607596425 607596425 -425048532 -893024018 -1873731147 -1873731147 159865104 411876340 2056892401 2056892401 -1642734171 -1642734171 -1996442747 -1996442747 257760945 257760945 -1631204972 -1802192500 -432548865 -432548865 -551129560 -1319261042 -859679032 -1510933233 -1510933233 286273879 286273879 1481537722 258343568 -265464733 -265464733 -432502583 -432502583 -1967815281 -1967815281 -1530408968 967560929 967560929 -1426106865 -1426106865 190104374 430136711 430136711 -1803607012 -1520512970 5018725 5018725 183526573 183526573 -1040862600 diff --git a/test/legacy_archives/set_int_100.xml b/test/legacy_archives/set_int_100.xml new file mode 100644 index 00000000..9f312124 --- /dev/null +++ b/test/legacy_archives/set_int_100.xml @@ -0,0 +1,266 @@ + + + + + 100 + 193 + 0 + 1775667486 + -948676228 + -1108026676 + -1866983349 + 258343568 + -1068590402 + -432548865 + 177811234 + 5018725 + 190104374 + 1315739433 + -1995826660 + -305386173 + 287343763 + 1241175627 + 109292002 + 1021729225 + 918842470 + -1426106865 + -1338732474 + 669358715 + 183526573 + -938475945 + -1694006096 + 1630722604 + -1933552094 + 257760945 + 390937317 + -1510933233 + 259868705 + -38527737 + -551129560 + 1832705803 + 607596425 + -1520512970 + -1674340339 + 1421489007 + -501526237 + -1873731147 + -1877186230 + -218590163 + 647803737 + -859679032 + 967560929 + -815473344 + -487119163 + -1546216506 + 1859681623 + -1040862600 + -893024018 + -1252588227 + -1319261042 + -1785808236 + 1198739057 + -1469084794 + 473010817 + 1481537722 + 2138619156 + -1039351567 + -493829536 + 411876340 + -364116164 + 776215953 + 1568788209 + -1631204972 + 601527218 + -232190041 + 286273879 + 2075478837 + -1168265900 + 581989062 + 178482033 + 1354395138 + -1530408968 + -414767254 + 1970368353 + -1967815281 + 941660988 + 1786883066 + 670291604 + -1803607012 + 1829132124 + -432502583 + -1642734171 + -425048532 + 2097663454 + -1938999974 + -917350225 + 2056892401 + -55935255 + -1802192500 + -418860175 + -2146202839 + 310524955 + 159865104 + -265464733 + -1996442747 + 430136711 + -743509129 + 167237906 + + + 152 + 0 + -938475945 + -938475945 + -1694006096 + -1785808236 + 1021729225 + 1021729225 + 1832705803 + 1832705803 + 581989062 + 1354395138 + 2097663454 + -743509129 + -743509129 + -1168265900 + -414767254 + -1039351567 + -1039351567 + 167237906 + 177811234 + -364116164 + -1933552094 + 259868705 + 259868705 + -501526237 + -501526237 + 776215953 + 776215953 + 1630722604 + 310524955 + 310524955 + 473010817 + 473010817 + 1970368353 + 1970368353 + 647803737 + 647803737 + -1252588227 + -1252588227 + 669358715 + 669358715 + 2075478837 + 2075478837 + -1995826660 + 109292002 + 1421489007 + 1421489007 + 287343763 + 287343763 + -1108026676 + 1829132124 + -1546216506 + 941660988 + -305386173 + -305386173 + -815473344 + -1877186230 + 601527218 + -38527737 + -38527737 + -1068590402 + 1568788209 + 1568788209 + 1198739057 + 1198739057 + 2138619156 + -218590163 + -218590163 + -1469084794 + -493829536 + -232190041 + -232190041 + -1674340339 + -1674340339 + 1775667486 + -948676228 + -1338732474 + 178482033 + 178482033 + 918842470 + -917350225 + -917350225 + 390937317 + 390937317 + -418860175 + -418860175 + 670291604 + 1859681623 + 1859681623 + 1241175627 + 1241175627 + -487119163 + -487119163 + 1315739433 + 1315739433 + -1938999974 + 1786883066 + -55935255 + -55935255 + -2146202839 + -2146202839 + -1866983349 + -1866983349 + 607596425 + 607596425 + -425048532 + -893024018 + -1873731147 + -1873731147 + 159865104 + 411876340 + 2056892401 + 2056892401 + -1642734171 + -1642734171 + -1996442747 + -1996442747 + 257760945 + 257760945 + -1631204972 + -1802192500 + -432548865 + -432548865 + -551129560 + -1319261042 + -859679032 + -1510933233 + -1510933233 + 286273879 + 286273879 + 1481537722 + 258343568 + -265464733 + -265464733 + -432502583 + -432502583 + -1967815281 + -1967815281 + -1530408968 + 967560929 + 967560929 + -1426106865 + -1426106865 + 190104374 + 430136711 + 430136711 + -1803607012 + -1520512970 + 5018725 + 5018725 + 183526573 + 183526573 + -1040862600 + + + diff --git a/test/legacy_archives/set_string_0.txt b/test/legacy_archives/set_string_0.txt new file mode 100644 index 00000000..0c851da6 --- /dev/null +++ b/test/legacy_archives/set_string_0.txt @@ -0,0 +1 @@ +22 serialization::archive 19 0 0 0 0 0 0 0 0 0 diff --git a/test/legacy_archives/set_string_0.xml b/test/legacy_archives/set_string_0.xml new file mode 100644 index 00000000..059687d4 --- /dev/null +++ b/test/legacy_archives/set_string_0.xml @@ -0,0 +1,14 @@ + + + + + 0 + 0 + 0 + + + 0 + 0 + + + diff --git a/test/legacy_archives/set_string_10.txt b/test/legacy_archives/set_string_10.txt new file mode 100644 index 00000000..8ed26324 --- /dev/null +++ b/test/legacy_archives/set_string_10.txt @@ -0,0 +1 @@ +22 serialization::archive 19 0 0 10 13 0 10 1832705803 10 2097663454 10 3551458167 10 2509159060 10 2600961200 9 581989062 10 1021729225 10 3126701396 10 1354395138 10 3356491351 0 0 14 0 10 3356491351 10 3356491351 10 2600961200 10 2509159060 10 1021729225 10 1021729225 10 1832705803 10 1832705803 9 581989062 10 1354395138 10 2097663454 10 3551458167 10 3551458167 10 3126701396 diff --git a/test/legacy_archives/set_string_10.xml b/test/legacy_archives/set_string_10.xml new file mode 100644 index 00000000..b0506fac --- /dev/null +++ b/test/legacy_archives/set_string_10.xml @@ -0,0 +1,38 @@ + + + + + 10 + 13 + 0 + 1832705803 + 2097663454 + 3551458167 + 2509159060 + 2600961200 + 581989062 + 1021729225 + 3126701396 + 1354395138 + 3356491351 + + + 14 + 0 + 3356491351 + 3356491351 + 2600961200 + 2509159060 + 1021729225 + 1021729225 + 1832705803 + 1832705803 + 581989062 + 1354395138 + 2097663454 + 3551458167 + 3551458167 + 3126701396 + + + diff --git a/test/legacy_archives/set_string_100.txt b/test/legacy_archives/set_string_100.txt new file mode 100644 index 00000000..b96f16d4 --- /dev/null +++ b/test/legacy_archives/set_string_100.txt @@ -0,0 +1 @@ +22 serialization::archive 19 0 0 100 193 0 10 1970368353 10 2417781066 10 3186940620 10 1421489007 9 776215953 10 1775667486 9 159865104 10 2355967322 10 2748750790 10 1832705803 10 4239032041 10 3876107121 10 3479493952 10 2600961200 10 1241175627 9 258343568 10 1630722604 10 3255615729 7 5018725 10 2774454326 10 2825882502 9 581989062 9 178482033 10 1786883066 9 286273879 10 2298524549 9 259868705 9 601527218 9 411876340 10 4029502563 9 109292002 9 941660988 10 4256439559 10 3401943278 10 2663762324 10 3042379069 10 2509159060 10 1859681623 10 3356491351 10 2620626957 10 2652233125 10 1568788209 9 607596425 10 2868860431 9 670291604 10 2764558328 10 3226376894 10 3930851132 10 3801137760 9 287343763 10 2138619156 9 257760945 9 967560929 10 2056892401 10 1829132124 10 3807848133 9 310524955 9 190104374 10 1481537722 10 2361415202 10 2148764457 10 3862464713 10 3862418431 9 918842470 9 183526573 10 2097663454 10 3377617071 9 167237906 10 2492774796 10 3254104696 10 3551458167 10 3989581123 10 2427983947 9 430136711 10 2975706254 10 1198739057 9 473010817 10 2075478837 10 2956234822 10 3435288264 10 2491360284 10 4076377133 10 3869918764 9 647803737 9 669358715 9 177811234 10 1021729225 10 2327152015 10 3793441059 9 390937317 10 2421236149 10 3346291068 10 3880200042 10 2299140636 10 3743837736 10 1315739433 10 2784034063 10 1354395138 10 4062777255 10 3126701396 0 0 152 0 10 3356491351 10 3356491351 10 2600961200 10 2509159060 10 1021729225 10 1021729225 10 1832705803 10 1832705803 9 581989062 10 1354395138 10 2097663454 10 3551458167 10 3551458167 10 3126701396 10 3880200042 10 3255615729 10 3255615729 9 167237906 9 177811234 10 3930851132 10 2361415202 9 259868705 9 259868705 10 3793441059 10 3793441059 9 776215953 9 776215953 10 1630722604 9 310524955 9 310524955 9 473010817 9 473010817 10 1970368353 10 1970368353 9 647803737 9 647803737 10 3042379069 10 3042379069 9 669358715 9 669358715 10 2075478837 10 2075478837 10 2299140636 9 109292002 10 1421489007 10 1421489007 9 287343763 9 287343763 10 3186940620 10 1829132124 10 2748750790 9 941660988 10 3989581123 10 3989581123 10 3479493952 10 2417781066 9 601527218 10 4256439559 10 4256439559 10 3226376894 10 1568788209 10 1568788209 10 1198739057 10 1198739057 10 2138619156 10 4076377133 10 4076377133 10 2825882502 10 3801137760 10 4062777255 10 4062777255 10 2620626957 10 2620626957 10 1775667486 10 3346291068 10 2956234822 9 178482033 9 178482033 9 918842470 10 3377617071 10 3377617071 9 390937317 9 390937317 10 3876107121 10 3876107121 9 670291604 10 1859681623 10 1859681623 10 1241175627 10 1241175627 10 3807848133 10 3807848133 10 1315739433 10 1315739433 10 2355967322 10 1786883066 10 4239032041 10 4239032041 10 2148764457 10 2148764457 10 2427983947 10 2427983947 9 607596425 9 607596425 10 3869918764 10 3401943278 10 2421236149 10 2421236149 9 159865104 9 411876340 10 2056892401 10 2056892401 10 2652233125 10 2652233125 10 2298524549 10 2298524549 9 257760945 9 257760945 10 2663762324 10 2492774796 10 3862418431 10 3862418431 10 3743837736 10 2975706254 10 3435288264 10 2784034063 10 2784034063 9 286273879 9 286273879 10 1481537722 9 258343568 10 4029502563 10 4029502563 10 3862464713 10 3862464713 10 2327152015 10 2327152015 10 2764558328 9 967560929 9 967560929 10 2868860431 10 2868860431 9 190104374 9 430136711 9 430136711 10 2491360284 10 2774454326 7 5018725 7 5018725 9 183526573 9 183526573 10 3254104696 diff --git a/test/legacy_archives/set_string_100.xml b/test/legacy_archives/set_string_100.xml new file mode 100644 index 00000000..f59dd672 --- /dev/null +++ b/test/legacy_archives/set_string_100.xml @@ -0,0 +1,266 @@ + + + + + 100 + 193 + 0 + 1970368353 + 2417781066 + 3186940620 + 1421489007 + 776215953 + 1775667486 + 159865104 + 2355967322 + 2748750790 + 1832705803 + 4239032041 + 3876107121 + 3479493952 + 2600961200 + 1241175627 + 258343568 + 1630722604 + 3255615729 + 5018725 + 2774454326 + 2825882502 + 581989062 + 178482033 + 1786883066 + 286273879 + 2298524549 + 259868705 + 601527218 + 411876340 + 4029502563 + 109292002 + 941660988 + 4256439559 + 3401943278 + 2663762324 + 3042379069 + 2509159060 + 1859681623 + 3356491351 + 2620626957 + 2652233125 + 1568788209 + 607596425 + 2868860431 + 670291604 + 2764558328 + 3226376894 + 3930851132 + 3801137760 + 287343763 + 2138619156 + 257760945 + 967560929 + 2056892401 + 1829132124 + 3807848133 + 310524955 + 190104374 + 1481537722 + 2361415202 + 2148764457 + 3862464713 + 3862418431 + 918842470 + 183526573 + 2097663454 + 3377617071 + 167237906 + 2492774796 + 3254104696 + 3551458167 + 3989581123 + 2427983947 + 430136711 + 2975706254 + 1198739057 + 473010817 + 2075478837 + 2956234822 + 3435288264 + 2491360284 + 4076377133 + 3869918764 + 647803737 + 669358715 + 177811234 + 1021729225 + 2327152015 + 3793441059 + 390937317 + 2421236149 + 3346291068 + 3880200042 + 2299140636 + 3743837736 + 1315739433 + 2784034063 + 1354395138 + 4062777255 + 3126701396 + + + 152 + 0 + 3356491351 + 3356491351 + 2600961200 + 2509159060 + 1021729225 + 1021729225 + 1832705803 + 1832705803 + 581989062 + 1354395138 + 2097663454 + 3551458167 + 3551458167 + 3126701396 + 3880200042 + 3255615729 + 3255615729 + 167237906 + 177811234 + 3930851132 + 2361415202 + 259868705 + 259868705 + 3793441059 + 3793441059 + 776215953 + 776215953 + 1630722604 + 310524955 + 310524955 + 473010817 + 473010817 + 1970368353 + 1970368353 + 647803737 + 647803737 + 3042379069 + 3042379069 + 669358715 + 669358715 + 2075478837 + 2075478837 + 2299140636 + 109292002 + 1421489007 + 1421489007 + 287343763 + 287343763 + 3186940620 + 1829132124 + 2748750790 + 941660988 + 3989581123 + 3989581123 + 3479493952 + 2417781066 + 601527218 + 4256439559 + 4256439559 + 3226376894 + 1568788209 + 1568788209 + 1198739057 + 1198739057 + 2138619156 + 4076377133 + 4076377133 + 2825882502 + 3801137760 + 4062777255 + 4062777255 + 2620626957 + 2620626957 + 1775667486 + 3346291068 + 2956234822 + 178482033 + 178482033 + 918842470 + 3377617071 + 3377617071 + 390937317 + 390937317 + 3876107121 + 3876107121 + 670291604 + 1859681623 + 1859681623 + 1241175627 + 1241175627 + 3807848133 + 3807848133 + 1315739433 + 1315739433 + 2355967322 + 1786883066 + 4239032041 + 4239032041 + 2148764457 + 2148764457 + 2427983947 + 2427983947 + 607596425 + 607596425 + 3869918764 + 3401943278 + 2421236149 + 2421236149 + 159865104 + 411876340 + 2056892401 + 2056892401 + 2652233125 + 2652233125 + 2298524549 + 2298524549 + 257760945 + 257760945 + 2663762324 + 2492774796 + 3862418431 + 3862418431 + 3743837736 + 2975706254 + 3435288264 + 2784034063 + 2784034063 + 286273879 + 286273879 + 1481537722 + 258343568 + 4029502563 + 4029502563 + 3862464713 + 3862464713 + 2327152015 + 2327152015 + 2764558328 + 967560929 + 967560929 + 2868860431 + 2868860431 + 190104374 + 430136711 + 430136711 + 2491360284 + 2774454326 + 5018725 + 5018725 + 183526573 + 183526573 + 3254104696 + + + diff --git a/test/unordered/serialization_tests.cpp b/test/unordered/serialization_tests.cpp index 370ac6dd..22208513 100644 --- a/test/unordered/serialization_tests.cpp +++ b/test/unordered/serialization_tests.cpp @@ -14,8 +14,12 @@ #include #include #include +#include +#include #include #include +#include +#include #ifndef BOOST_NO_CXX11_HDR_RANDOM #include @@ -101,6 +105,9 @@ namespace { } } + // used by legacy_serialization_test, passed as argv[1] + const char* test_dir="."; + using test::default_generator; std::pair< @@ -136,7 +143,66 @@ namespace { ((test_map)(test_multimap)(test_set)(test_multiset)) ((text_archive)(xml_archive)) ((default_generator))) + + template + void legacy_serialization_test( + std::pair lc, std::pair la) + { + typedef typename Container::value_type value_type; + typedef std::vector value_vector; + + static const std::size_t sizes[] = {0, 10, 100}; + + BOOST_LIGHTWEIGHT_TEST_OSTREAM << "legacy_serialization_test\n"; + + for(int i = 0; i < sizeof(sizes)/sizeof(sizes[0]); ++i) { + char filename[1024]; + std::sprintf( + filename, "%s/legacy_archives/%s_%d.%s", + test_dir, lc.second, (int)sizes[i], la.second); + std::ifstream ifs(filename); + Archive ia(ifs); + Container c; + value_vector v; + ia >> boost::serialization::make_nvp("container", c); + ia >> boost::serialization::make_nvp("values", v); + BOOST_TEST(v.size() >= sizes[i]); // values generated with some degree of repetition + BOOST_TEST((c==Container(v.begin(),v.end()))); + } + } + + std::pair*, const char*> + labeled_map_int(0, "map_int"); + std::pair*, const char*> + labeled_map_string(0, "map_string"); + std::pair*, const char*> + labeled_multimap_int(0, "multimap_int"); + std::pair*, const char*> + labeled_multimap_string(0, "multimap_string"); + std::pair*, const char*> + labeled_set_int(0, "set_int"); + std::pair*, const char*> + labeled_set_string(0, "set_string"); + std::pair*, const char*> + labeled_multiset_int(0, "multiset_int"); + std::pair*, const char*> + labeled_multiset_string(0, "multiset_string"); + + std::pair labeled_text_iarchive(0, "txt"); + std::pair labeled_xml_iarchive(0, "xml"); + + UNORDERED_TEST(legacy_serialization_test, + ((labeled_map_int)(labeled_map_string)(labeled_multimap_int)(labeled_multimap_string) + (labeled_set_int)(labeled_set_string)(labeled_multiset_int)(labeled_multiset_string)) + ((labeled_text_iarchive)(labeled_xml_iarchive))) #endif } -RUN_TESTS() +int main(int argc, char* argv[]) +{ + if (argc > 1) test_dir = argv[1]; + + BOOST_UNORDERED_TEST_COMPILER_INFO() + ::test::get_state().run_tests(); + return boost::report_errors(); +} From 651727508be80fb76f8f143824c72c0f44b72589 Mon Sep 17 00:00:00 2001 From: joaquintides Date: Tue, 15 Aug 2023 20:03:05 +0200 Subject: [PATCH 15/31] removed unneeded working directory passing --- test/Jamfile.v2 | 7 ++----- test/unordered/serialization_tests.cpp | 20 +++++--------------- 2 files changed, 7 insertions(+), 20 deletions(-) diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index bc35f135..1c2dec79 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -85,10 +85,8 @@ run unordered/copy_tests.cpp : : : BOOST_UNORDERED_USE_MOVE : bmove_copy run unordered/move_tests.cpp : : : BOOST_UNORDERED_USE_MOVE : bmove_move ; run unordered/assign_tests.cpp : : : BOOST_UNORDERED_USE_MOVE : bmove_assign ; -path-constant BOOST_UNORDERED_TEST_DIR : . ; - run unordered/serialization_tests.cpp - : $(BOOST_UNORDERED_TEST_DIR) + : : : BOOST_UNORDERED_ENABLE_SERIALIZATION_COMPATIBILITY_V0 off # Boost.Serialization headers are not warning-free @@ -162,8 +160,7 @@ run unordered/hash_is_avalanching_test.cpp ; run unordered/serialization_tests.cpp : : - : $(CPP11) - BOOST_UNORDERED_FOA_TESTS + : $(CPP11) BOOST_UNORDERED_FOA_TESTS off # Boost.Serialization headers are not warning-free /boost//serialization/off : foa_serialization_tests ; diff --git a/test/unordered/serialization_tests.cpp b/test/unordered/serialization_tests.cpp index 22208513..f38d964d 100644 --- a/test/unordered/serialization_tests.cpp +++ b/test/unordered/serialization_tests.cpp @@ -105,9 +105,6 @@ namespace { } } - // used by legacy_serialization_test, passed as argv[1] - const char* test_dir="."; - using test::default_generator; std::pair< @@ -148,8 +145,8 @@ namespace { void legacy_serialization_test( std::pair lc, std::pair la) { - typedef typename Container::value_type value_type; - typedef std::vector value_vector; + typedef typename Container::value_type value_type; + typedef std::vector value_vector; static const std::size_t sizes[] = {0, 10, 100}; @@ -158,8 +155,8 @@ namespace { for(int i = 0; i < sizeof(sizes)/sizeof(sizes[0]); ++i) { char filename[1024]; std::sprintf( - filename, "%s/legacy_archives/%s_%d.%s", - test_dir, lc.second, (int)sizes[i], la.second); + filename, "./legacy_archives/%s_%d.%s", + lc.second, (int)sizes[i], la.second); std::ifstream ifs(filename); Archive ia(ifs); Container c; @@ -198,11 +195,4 @@ namespace { #endif } -int main(int argc, char* argv[]) -{ - if (argc > 1) test_dir = argv[1]; - - BOOST_UNORDERED_TEST_COMPILER_INFO() - ::test::get_state().run_tests(); - return boost::report_errors(); -} +RUN_TESTS() From 81707161566f71118d0bf1a4923cce2480601b6b Mon Sep 17 00:00:00 2001 From: joaquintides Date: Tue, 15 Aug 2023 20:07:08 +0200 Subject: [PATCH 16/31] de-constified values in legacy_serialization_test to appease some defective C++03 compilers --- test/legacy_archives/map_int_10.txt | 2 +- test/legacy_archives/map_int_10.xml | 2 +- test/legacy_archives/map_int_100.txt | 2 +- test/legacy_archives/map_int_100.xml | 2 +- test/legacy_archives/map_string_10.txt | 2 +- test/legacy_archives/map_string_10.xml | 2 +- test/legacy_archives/map_string_100.txt | 2 +- test/legacy_archives/map_string_100.xml | 2 +- test/legacy_archives/multimap_int_10.txt | 2 +- test/legacy_archives/multimap_int_10.xml | 2 +- test/legacy_archives/multimap_int_100.txt | 2 +- test/legacy_archives/multimap_int_100.xml | 2 +- test/legacy_archives/multimap_string_10.txt | 2 +- test/legacy_archives/multimap_string_10.xml | 2 +- test/legacy_archives/multimap_string_100.txt | 2 +- test/legacy_archives/multimap_string_100.xml | 2 +- test/unordered/serialization_tests.cpp | 24 ++++++++++++++++++-- 17 files changed, 38 insertions(+), 18 deletions(-) diff --git a/test/legacy_archives/map_int_10.txt b/test/legacy_archives/map_int_10.txt index 30e8d408..bdb23135 100644 --- a/test/legacy_archives/map_int_10.txt +++ b/test/legacy_archives/map_int_10.txt @@ -1 +1 @@ -22 serialization::archive 19 0 0 10 13 0 0 0 2097663454 2097663454 -1785808236 -1785808236 -938475945 -938475945 1354395138 1354395138 581989062 581989062 -1694006096 -1694006096 1832705803 1832705803 -743509129 -743509129 1021729225 1021729225 -1168265900 -1168265900 0 0 14 0 -938475945 -938475945 -938475945 -938475945 -1694006096 -1694006096 -1785808236 -1785808236 1021729225 1021729225 1021729225 1021729225 1832705803 1832705803 1832705803 1832705803 581989062 581989062 1354395138 1354395138 2097663454 2097663454 -743509129 -743509129 -743509129 -743509129 -1168265900 -1168265900 +22 serialization::archive 19 0 0 10 13 0 0 0 2097663454 2097663454 -1785808236 -1785808236 -938475945 -938475945 1354395138 1354395138 581989062 581989062 -1694006096 -1694006096 1832705803 1832705803 -743509129 -743509129 1021729225 1021729225 -1168265900 -1168265900 0 0 14 0 0 0 -938475945 -938475945 -938475945 -938475945 -1694006096 -1694006096 -1785808236 -1785808236 1021729225 1021729225 1021729225 1021729225 1832705803 1832705803 1832705803 1832705803 581989062 581989062 1354395138 1354395138 2097663454 2097663454 -743509129 -743509129 -743509129 -743509129 -1168265900 -1168265900 diff --git a/test/legacy_archives/map_int_10.xml b/test/legacy_archives/map_int_10.xml index 62cdfc76..1d7232eb 100644 --- a/test/legacy_archives/map_int_10.xml +++ b/test/legacy_archives/map_int_10.xml @@ -49,7 +49,7 @@ 14 0 - + -938475945 -938475945 diff --git a/test/legacy_archives/map_int_100.txt b/test/legacy_archives/map_int_100.txt index 82983912..1274e1da 100644 --- a/test/legacy_archives/map_int_100.txt +++ b/test/legacy_archives/map_int_100.txt @@ -1 +1 @@ -22 serialization::archive 19 0 0 100 193 0 0 0 1775667486 1775667486 -948676228 -948676228 -1108026676 -1108026676 -1866983349 -1866983349 258343568 258343568 -1068590402 -1068590402 -432548865 -432548865 177811234 177811234 5018725 5018725 190104374 190104374 1315739433 1315739433 -1995826660 -1995826660 -305386173 -305386173 287343763 287343763 1241175627 1241175627 109292002 109292002 1021729225 1021729225 918842470 918842470 -1426106865 -1426106865 -1338732474 -1338732474 669358715 669358715 183526573 183526573 -938475945 -938475945 -1694006096 -1694006096 1630722604 1630722604 -1933552094 -1933552094 257760945 257760945 390937317 390937317 -1510933233 -1510933233 259868705 259868705 -38527737 -38527737 -551129560 -551129560 1832705803 1832705803 607596425 607596425 -1520512970 -1520512970 -1674340339 -1674340339 1421489007 1421489007 -501526237 -501526237 -1873731147 -1873731147 -1877186230 -1877186230 -218590163 -218590163 647803737 647803737 -859679032 -859679032 967560929 967560929 -815473344 -815473344 -487119163 -487119163 -1546216506 -1546216506 1859681623 1859681623 -1040862600 -1040862600 -893024018 -893024018 -1252588227 -1252588227 -1319261042 -1319261042 -1785808236 -1785808236 1198739057 1198739057 -1469084794 -1469084794 473010817 473010817 1481537722 1481537722 2138619156 2138619156 -1039351567 -1039351567 -493829536 -493829536 411876340 411876340 -364116164 -364116164 776215953 776215953 1568788209 1568788209 -1631204972 -1631204972 601527218 601527218 -232190041 -232190041 286273879 286273879 2075478837 2075478837 -1168265900 -1168265900 581989062 581989062 178482033 178482033 1354395138 1354395138 -1530408968 -1530408968 -414767254 -414767254 1970368353 1970368353 -1967815281 -1967815281 941660988 941660988 1786883066 1786883066 670291604 670291604 -1803607012 -1803607012 1829132124 1829132124 -432502583 -432502583 -1642734171 -1642734171 -425048532 -425048532 2097663454 2097663454 -1938999974 -1938999974 -917350225 -917350225 2056892401 2056892401 -55935255 -55935255 -1802192500 -1802192500 -418860175 -418860175 -2146202839 -2146202839 310524955 310524955 159865104 159865104 -265464733 -265464733 -1996442747 -1996442747 430136711 430136711 -743509129 -743509129 167237906 167237906 0 0 152 0 -938475945 -938475945 -938475945 -938475945 -1694006096 -1694006096 -1785808236 -1785808236 1021729225 1021729225 1021729225 1021729225 1832705803 1832705803 1832705803 1832705803 581989062 581989062 1354395138 1354395138 2097663454 2097663454 -743509129 -743509129 -743509129 -743509129 -1168265900 -1168265900 -414767254 -414767254 -1039351567 -1039351567 -1039351567 -1039351567 167237906 167237906 177811234 177811234 -364116164 -364116164 -1933552094 -1933552094 259868705 259868705 259868705 259868705 -501526237 -501526237 -501526237 -501526237 776215953 776215953 776215953 776215953 1630722604 1630722604 310524955 310524955 310524955 310524955 473010817 473010817 473010817 473010817 1970368353 1970368353 1970368353 1970368353 647803737 647803737 647803737 647803737 -1252588227 -1252588227 -1252588227 -1252588227 669358715 669358715 669358715 669358715 2075478837 2075478837 2075478837 2075478837 -1995826660 -1995826660 109292002 109292002 1421489007 1421489007 1421489007 1421489007 287343763 287343763 287343763 287343763 -1108026676 -1108026676 1829132124 1829132124 -1546216506 -1546216506 941660988 941660988 -305386173 -305386173 -305386173 -305386173 -815473344 -815473344 -1877186230 -1877186230 601527218 601527218 -38527737 -38527737 -38527737 -38527737 -1068590402 -1068590402 1568788209 1568788209 1568788209 1568788209 1198739057 1198739057 1198739057 1198739057 2138619156 2138619156 -218590163 -218590163 -218590163 -218590163 -1469084794 -1469084794 -493829536 -493829536 -232190041 -232190041 -232190041 -232190041 -1674340339 -1674340339 -1674340339 -1674340339 1775667486 1775667486 -948676228 -948676228 -1338732474 -1338732474 178482033 178482033 178482033 178482033 918842470 918842470 -917350225 -917350225 -917350225 -917350225 390937317 390937317 390937317 390937317 -418860175 -418860175 -418860175 -418860175 670291604 670291604 1859681623 1859681623 1859681623 1859681623 1241175627 1241175627 1241175627 1241175627 -487119163 -487119163 -487119163 -487119163 1315739433 1315739433 1315739433 1315739433 -1938999974 -1938999974 1786883066 1786883066 -55935255 -55935255 -55935255 -55935255 -2146202839 -2146202839 -2146202839 -2146202839 -1866983349 -1866983349 -1866983349 -1866983349 607596425 607596425 607596425 607596425 -425048532 -425048532 -893024018 -893024018 -1873731147 -1873731147 -1873731147 -1873731147 159865104 159865104 411876340 411876340 2056892401 2056892401 2056892401 2056892401 -1642734171 -1642734171 -1642734171 -1642734171 -1996442747 -1996442747 -1996442747 -1996442747 257760945 257760945 257760945 257760945 -1631204972 -1631204972 -1802192500 -1802192500 -432548865 -432548865 -432548865 -432548865 -551129560 -551129560 -1319261042 -1319261042 -859679032 -859679032 -1510933233 -1510933233 -1510933233 -1510933233 286273879 286273879 286273879 286273879 1481537722 1481537722 258343568 258343568 -265464733 -265464733 -265464733 -265464733 -432502583 -432502583 -432502583 -432502583 -1967815281 -1967815281 -1967815281 -1967815281 -1530408968 -1530408968 967560929 967560929 967560929 967560929 -1426106865 -1426106865 -1426106865 -1426106865 190104374 190104374 430136711 430136711 430136711 430136711 -1803607012 -1803607012 -1520512970 -1520512970 5018725 5018725 5018725 5018725 183526573 183526573 183526573 183526573 -1040862600 -1040862600 +22 serialization::archive 19 0 0 100 193 0 0 0 1775667486 1775667486 -948676228 -948676228 -1108026676 -1108026676 -1866983349 -1866983349 258343568 258343568 -1068590402 -1068590402 -432548865 -432548865 177811234 177811234 5018725 5018725 190104374 190104374 1315739433 1315739433 -1995826660 -1995826660 -305386173 -305386173 287343763 287343763 1241175627 1241175627 109292002 109292002 1021729225 1021729225 918842470 918842470 -1426106865 -1426106865 -1338732474 -1338732474 669358715 669358715 183526573 183526573 -938475945 -938475945 -1694006096 -1694006096 1630722604 1630722604 -1933552094 -1933552094 257760945 257760945 390937317 390937317 -1510933233 -1510933233 259868705 259868705 -38527737 -38527737 -551129560 -551129560 1832705803 1832705803 607596425 607596425 -1520512970 -1520512970 -1674340339 -1674340339 1421489007 1421489007 -501526237 -501526237 -1873731147 -1873731147 -1877186230 -1877186230 -218590163 -218590163 647803737 647803737 -859679032 -859679032 967560929 967560929 -815473344 -815473344 -487119163 -487119163 -1546216506 -1546216506 1859681623 1859681623 -1040862600 -1040862600 -893024018 -893024018 -1252588227 -1252588227 -1319261042 -1319261042 -1785808236 -1785808236 1198739057 1198739057 -1469084794 -1469084794 473010817 473010817 1481537722 1481537722 2138619156 2138619156 -1039351567 -1039351567 -493829536 -493829536 411876340 411876340 -364116164 -364116164 776215953 776215953 1568788209 1568788209 -1631204972 -1631204972 601527218 601527218 -232190041 -232190041 286273879 286273879 2075478837 2075478837 -1168265900 -1168265900 581989062 581989062 178482033 178482033 1354395138 1354395138 -1530408968 -1530408968 -414767254 -414767254 1970368353 1970368353 -1967815281 -1967815281 941660988 941660988 1786883066 1786883066 670291604 670291604 -1803607012 -1803607012 1829132124 1829132124 -432502583 -432502583 -1642734171 -1642734171 -425048532 -425048532 2097663454 2097663454 -1938999974 -1938999974 -917350225 -917350225 2056892401 2056892401 -55935255 -55935255 -1802192500 -1802192500 -418860175 -418860175 -2146202839 -2146202839 310524955 310524955 159865104 159865104 -265464733 -265464733 -1996442747 -1996442747 430136711 430136711 -743509129 -743509129 167237906 167237906 0 0 152 0 0 0 -938475945 -938475945 -938475945 -938475945 -1694006096 -1694006096 -1785808236 -1785808236 1021729225 1021729225 1021729225 1021729225 1832705803 1832705803 1832705803 1832705803 581989062 581989062 1354395138 1354395138 2097663454 2097663454 -743509129 -743509129 -743509129 -743509129 -1168265900 -1168265900 -414767254 -414767254 -1039351567 -1039351567 -1039351567 -1039351567 167237906 167237906 177811234 177811234 -364116164 -364116164 -1933552094 -1933552094 259868705 259868705 259868705 259868705 -501526237 -501526237 -501526237 -501526237 776215953 776215953 776215953 776215953 1630722604 1630722604 310524955 310524955 310524955 310524955 473010817 473010817 473010817 473010817 1970368353 1970368353 1970368353 1970368353 647803737 647803737 647803737 647803737 -1252588227 -1252588227 -1252588227 -1252588227 669358715 669358715 669358715 669358715 2075478837 2075478837 2075478837 2075478837 -1995826660 -1995826660 109292002 109292002 1421489007 1421489007 1421489007 1421489007 287343763 287343763 287343763 287343763 -1108026676 -1108026676 1829132124 1829132124 -1546216506 -1546216506 941660988 941660988 -305386173 -305386173 -305386173 -305386173 -815473344 -815473344 -1877186230 -1877186230 601527218 601527218 -38527737 -38527737 -38527737 -38527737 -1068590402 -1068590402 1568788209 1568788209 1568788209 1568788209 1198739057 1198739057 1198739057 1198739057 2138619156 2138619156 -218590163 -218590163 -218590163 -218590163 -1469084794 -1469084794 -493829536 -493829536 -232190041 -232190041 -232190041 -232190041 -1674340339 -1674340339 -1674340339 -1674340339 1775667486 1775667486 -948676228 -948676228 -1338732474 -1338732474 178482033 178482033 178482033 178482033 918842470 918842470 -917350225 -917350225 -917350225 -917350225 390937317 390937317 390937317 390937317 -418860175 -418860175 -418860175 -418860175 670291604 670291604 1859681623 1859681623 1859681623 1859681623 1241175627 1241175627 1241175627 1241175627 -487119163 -487119163 -487119163 -487119163 1315739433 1315739433 1315739433 1315739433 -1938999974 -1938999974 1786883066 1786883066 -55935255 -55935255 -55935255 -55935255 -2146202839 -2146202839 -2146202839 -2146202839 -1866983349 -1866983349 -1866983349 -1866983349 607596425 607596425 607596425 607596425 -425048532 -425048532 -893024018 -893024018 -1873731147 -1873731147 -1873731147 -1873731147 159865104 159865104 411876340 411876340 2056892401 2056892401 2056892401 2056892401 -1642734171 -1642734171 -1642734171 -1642734171 -1996442747 -1996442747 -1996442747 -1996442747 257760945 257760945 257760945 257760945 -1631204972 -1631204972 -1802192500 -1802192500 -432548865 -432548865 -432548865 -432548865 -551129560 -551129560 -1319261042 -1319261042 -859679032 -859679032 -1510933233 -1510933233 -1510933233 -1510933233 286273879 286273879 286273879 286273879 1481537722 1481537722 258343568 258343568 -265464733 -265464733 -265464733 -265464733 -432502583 -432502583 -432502583 -432502583 -1967815281 -1967815281 -1967815281 -1967815281 -1530408968 -1530408968 967560929 967560929 967560929 967560929 -1426106865 -1426106865 -1426106865 -1426106865 190104374 190104374 430136711 430136711 430136711 430136711 -1803607012 -1803607012 -1520512970 -1520512970 5018725 5018725 5018725 5018725 183526573 183526573 183526573 183526573 -1040862600 -1040862600 diff --git a/test/legacy_archives/map_int_100.xml b/test/legacy_archives/map_int_100.xml index b59ee8ee..2bee9ee2 100644 --- a/test/legacy_archives/map_int_100.xml +++ b/test/legacy_archives/map_int_100.xml @@ -409,7 +409,7 @@ 152 0 - + -938475945 -938475945 diff --git a/test/legacy_archives/map_string_10.txt b/test/legacy_archives/map_string_10.txt index b27a92d9..39b7c207 100644 --- a/test/legacy_archives/map_string_10.txt +++ b/test/legacy_archives/map_string_10.txt @@ -1 +1 @@ -22 serialization::archive 19 0 0 10 13 0 0 0 10 1832705803 10 1832705803 10 2097663454 10 2097663454 10 3551458167 10 3551458167 10 2509159060 10 2509159060 10 2600961200 10 2600961200 9 581989062 9 581989062 10 1021729225 10 1021729225 10 3126701396 10 3126701396 10 1354395138 10 1354395138 10 3356491351 10 3356491351 0 0 14 0 10 3356491351 10 3356491351 10 3356491351 10 3356491351 10 2600961200 10 2600961200 10 2509159060 10 2509159060 10 1021729225 10 1021729225 10 1021729225 10 1021729225 10 1832705803 10 1832705803 10 1832705803 10 1832705803 9 581989062 9 581989062 10 1354395138 10 1354395138 10 2097663454 10 2097663454 10 3551458167 10 3551458167 10 3551458167 10 3551458167 10 3126701396 10 3126701396 +22 serialization::archive 19 0 0 10 13 0 0 0 10 1832705803 10 1832705803 10 2097663454 10 2097663454 10 3551458167 10 3551458167 10 2509159060 10 2509159060 10 2600961200 10 2600961200 9 581989062 9 581989062 10 1021729225 10 1021729225 10 3126701396 10 3126701396 10 1354395138 10 1354395138 10 3356491351 10 3356491351 0 0 14 0 0 0 10 3356491351 10 3356491351 10 3356491351 10 3356491351 10 2600961200 10 2600961200 10 2509159060 10 2509159060 10 1021729225 10 1021729225 10 1021729225 10 1021729225 10 1832705803 10 1832705803 10 1832705803 10 1832705803 9 581989062 9 581989062 10 1354395138 10 1354395138 10 2097663454 10 2097663454 10 3551458167 10 3551458167 10 3551458167 10 3551458167 10 3126701396 10 3126701396 diff --git a/test/legacy_archives/map_string_10.xml b/test/legacy_archives/map_string_10.xml index 6913e25d..3d4304f3 100644 --- a/test/legacy_archives/map_string_10.xml +++ b/test/legacy_archives/map_string_10.xml @@ -49,7 +49,7 @@ 14 0 - + 3356491351 3356491351 diff --git a/test/legacy_archives/map_string_100.txt b/test/legacy_archives/map_string_100.txt index 38bd6d2f..1be2c3a4 100644 --- a/test/legacy_archives/map_string_100.txt +++ b/test/legacy_archives/map_string_100.txt @@ -1 +1 @@ -22 serialization::archive 19 0 0 100 193 0 0 0 10 1970368353 10 1970368353 10 2417781066 10 2417781066 10 3186940620 10 3186940620 10 1421489007 10 1421489007 9 776215953 9 776215953 10 1775667486 10 1775667486 9 159865104 9 159865104 10 2355967322 10 2355967322 10 2748750790 10 2748750790 10 1832705803 10 1832705803 10 4239032041 10 4239032041 10 3876107121 10 3876107121 10 3479493952 10 3479493952 10 2600961200 10 2600961200 10 1241175627 10 1241175627 9 258343568 9 258343568 10 1630722604 10 1630722604 10 3255615729 10 3255615729 7 5018725 7 5018725 10 2774454326 10 2774454326 10 2825882502 10 2825882502 9 581989062 9 581989062 9 178482033 9 178482033 10 1786883066 10 1786883066 9 286273879 9 286273879 10 2298524549 10 2298524549 9 259868705 9 259868705 9 601527218 9 601527218 9 411876340 9 411876340 10 4029502563 10 4029502563 9 109292002 9 109292002 9 941660988 9 941660988 10 4256439559 10 4256439559 10 3401943278 10 3401943278 10 2663762324 10 2663762324 10 3042379069 10 3042379069 10 2509159060 10 2509159060 10 1859681623 10 1859681623 10 3356491351 10 3356491351 10 2620626957 10 2620626957 10 2652233125 10 2652233125 10 1568788209 10 1568788209 9 607596425 9 607596425 10 2868860431 10 2868860431 9 670291604 9 670291604 10 2764558328 10 2764558328 10 3226376894 10 3226376894 10 3930851132 10 3930851132 10 3801137760 10 3801137760 9 287343763 9 287343763 10 2138619156 10 2138619156 9 257760945 9 257760945 9 967560929 9 967560929 10 2056892401 10 2056892401 10 1829132124 10 1829132124 10 3807848133 10 3807848133 9 310524955 9 310524955 9 190104374 9 190104374 10 1481537722 10 1481537722 10 2361415202 10 2361415202 10 2148764457 10 2148764457 10 3862464713 10 3862464713 10 3862418431 10 3862418431 9 918842470 9 918842470 9 183526573 9 183526573 10 2097663454 10 2097663454 10 3377617071 10 3377617071 9 167237906 9 167237906 10 2492774796 10 2492774796 10 3254104696 10 3254104696 10 3551458167 10 3551458167 10 3989581123 10 3989581123 10 2427983947 10 2427983947 9 430136711 9 430136711 10 2975706254 10 2975706254 10 1198739057 10 1198739057 9 473010817 9 473010817 10 2075478837 10 2075478837 10 2956234822 10 2956234822 10 3435288264 10 3435288264 10 2491360284 10 2491360284 10 4076377133 10 4076377133 10 3869918764 10 3869918764 9 647803737 9 647803737 9 669358715 9 669358715 9 177811234 9 177811234 10 1021729225 10 1021729225 10 2327152015 10 2327152015 10 3793441059 10 3793441059 9 390937317 9 390937317 10 2421236149 10 2421236149 10 3346291068 10 3346291068 10 3880200042 10 3880200042 10 2299140636 10 2299140636 10 3743837736 10 3743837736 10 1315739433 10 1315739433 10 2784034063 10 2784034063 10 1354395138 10 1354395138 10 4062777255 10 4062777255 10 3126701396 10 3126701396 0 0 152 0 10 3356491351 10 3356491351 10 3356491351 10 3356491351 10 2600961200 10 2600961200 10 2509159060 10 2509159060 10 1021729225 10 1021729225 10 1021729225 10 1021729225 10 1832705803 10 1832705803 10 1832705803 10 1832705803 9 581989062 9 581989062 10 1354395138 10 1354395138 10 2097663454 10 2097663454 10 3551458167 10 3551458167 10 3551458167 10 3551458167 10 3126701396 10 3126701396 10 3880200042 10 3880200042 10 3255615729 10 3255615729 10 3255615729 10 3255615729 9 167237906 9 167237906 9 177811234 9 177811234 10 3930851132 10 3930851132 10 2361415202 10 2361415202 9 259868705 9 259868705 9 259868705 9 259868705 10 3793441059 10 3793441059 10 3793441059 10 3793441059 9 776215953 9 776215953 9 776215953 9 776215953 10 1630722604 10 1630722604 9 310524955 9 310524955 9 310524955 9 310524955 9 473010817 9 473010817 9 473010817 9 473010817 10 1970368353 10 1970368353 10 1970368353 10 1970368353 9 647803737 9 647803737 9 647803737 9 647803737 10 3042379069 10 3042379069 10 3042379069 10 3042379069 9 669358715 9 669358715 9 669358715 9 669358715 10 2075478837 10 2075478837 10 2075478837 10 2075478837 10 2299140636 10 2299140636 9 109292002 9 109292002 10 1421489007 10 1421489007 10 1421489007 10 1421489007 9 287343763 9 287343763 9 287343763 9 287343763 10 3186940620 10 3186940620 10 1829132124 10 1829132124 10 2748750790 10 2748750790 9 941660988 9 941660988 10 3989581123 10 3989581123 10 3989581123 10 3989581123 10 3479493952 10 3479493952 10 2417781066 10 2417781066 9 601527218 9 601527218 10 4256439559 10 4256439559 10 4256439559 10 4256439559 10 3226376894 10 3226376894 10 1568788209 10 1568788209 10 1568788209 10 1568788209 10 1198739057 10 1198739057 10 1198739057 10 1198739057 10 2138619156 10 2138619156 10 4076377133 10 4076377133 10 4076377133 10 4076377133 10 2825882502 10 2825882502 10 3801137760 10 3801137760 10 4062777255 10 4062777255 10 4062777255 10 4062777255 10 2620626957 10 2620626957 10 2620626957 10 2620626957 10 1775667486 10 1775667486 10 3346291068 10 3346291068 10 2956234822 10 2956234822 9 178482033 9 178482033 9 178482033 9 178482033 9 918842470 9 918842470 10 3377617071 10 3377617071 10 3377617071 10 3377617071 9 390937317 9 390937317 9 390937317 9 390937317 10 3876107121 10 3876107121 10 3876107121 10 3876107121 9 670291604 9 670291604 10 1859681623 10 1859681623 10 1859681623 10 1859681623 10 1241175627 10 1241175627 10 1241175627 10 1241175627 10 3807848133 10 3807848133 10 3807848133 10 3807848133 10 1315739433 10 1315739433 10 1315739433 10 1315739433 10 2355967322 10 2355967322 10 1786883066 10 1786883066 10 4239032041 10 4239032041 10 4239032041 10 4239032041 10 2148764457 10 2148764457 10 2148764457 10 2148764457 10 2427983947 10 2427983947 10 2427983947 10 2427983947 9 607596425 9 607596425 9 607596425 9 607596425 10 3869918764 10 3869918764 10 3401943278 10 3401943278 10 2421236149 10 2421236149 10 2421236149 10 2421236149 9 159865104 9 159865104 9 411876340 9 411876340 10 2056892401 10 2056892401 10 2056892401 10 2056892401 10 2652233125 10 2652233125 10 2652233125 10 2652233125 10 2298524549 10 2298524549 10 2298524549 10 2298524549 9 257760945 9 257760945 9 257760945 9 257760945 10 2663762324 10 2663762324 10 2492774796 10 2492774796 10 3862418431 10 3862418431 10 3862418431 10 3862418431 10 3743837736 10 3743837736 10 2975706254 10 2975706254 10 3435288264 10 3435288264 10 2784034063 10 2784034063 10 2784034063 10 2784034063 9 286273879 9 286273879 9 286273879 9 286273879 10 1481537722 10 1481537722 9 258343568 9 258343568 10 4029502563 10 4029502563 10 4029502563 10 4029502563 10 3862464713 10 3862464713 10 3862464713 10 3862464713 10 2327152015 10 2327152015 10 2327152015 10 2327152015 10 2764558328 10 2764558328 9 967560929 9 967560929 9 967560929 9 967560929 10 2868860431 10 2868860431 10 2868860431 10 2868860431 9 190104374 9 190104374 9 430136711 9 430136711 9 430136711 9 430136711 10 2491360284 10 2491360284 10 2774454326 10 2774454326 7 5018725 7 5018725 7 5018725 7 5018725 9 183526573 9 183526573 9 183526573 9 183526573 10 3254104696 10 3254104696 +22 serialization::archive 19 0 0 100 193 0 0 0 10 1970368353 10 1970368353 10 2417781066 10 2417781066 10 3186940620 10 3186940620 10 1421489007 10 1421489007 9 776215953 9 776215953 10 1775667486 10 1775667486 9 159865104 9 159865104 10 2355967322 10 2355967322 10 2748750790 10 2748750790 10 1832705803 10 1832705803 10 4239032041 10 4239032041 10 3876107121 10 3876107121 10 3479493952 10 3479493952 10 2600961200 10 2600961200 10 1241175627 10 1241175627 9 258343568 9 258343568 10 1630722604 10 1630722604 10 3255615729 10 3255615729 7 5018725 7 5018725 10 2774454326 10 2774454326 10 2825882502 10 2825882502 9 581989062 9 581989062 9 178482033 9 178482033 10 1786883066 10 1786883066 9 286273879 9 286273879 10 2298524549 10 2298524549 9 259868705 9 259868705 9 601527218 9 601527218 9 411876340 9 411876340 10 4029502563 10 4029502563 9 109292002 9 109292002 9 941660988 9 941660988 10 4256439559 10 4256439559 10 3401943278 10 3401943278 10 2663762324 10 2663762324 10 3042379069 10 3042379069 10 2509159060 10 2509159060 10 1859681623 10 1859681623 10 3356491351 10 3356491351 10 2620626957 10 2620626957 10 2652233125 10 2652233125 10 1568788209 10 1568788209 9 607596425 9 607596425 10 2868860431 10 2868860431 9 670291604 9 670291604 10 2764558328 10 2764558328 10 3226376894 10 3226376894 10 3930851132 10 3930851132 10 3801137760 10 3801137760 9 287343763 9 287343763 10 2138619156 10 2138619156 9 257760945 9 257760945 9 967560929 9 967560929 10 2056892401 10 2056892401 10 1829132124 10 1829132124 10 3807848133 10 3807848133 9 310524955 9 310524955 9 190104374 9 190104374 10 1481537722 10 1481537722 10 2361415202 10 2361415202 10 2148764457 10 2148764457 10 3862464713 10 3862464713 10 3862418431 10 3862418431 9 918842470 9 918842470 9 183526573 9 183526573 10 2097663454 10 2097663454 10 3377617071 10 3377617071 9 167237906 9 167237906 10 2492774796 10 2492774796 10 3254104696 10 3254104696 10 3551458167 10 3551458167 10 3989581123 10 3989581123 10 2427983947 10 2427983947 9 430136711 9 430136711 10 2975706254 10 2975706254 10 1198739057 10 1198739057 9 473010817 9 473010817 10 2075478837 10 2075478837 10 2956234822 10 2956234822 10 3435288264 10 3435288264 10 2491360284 10 2491360284 10 4076377133 10 4076377133 10 3869918764 10 3869918764 9 647803737 9 647803737 9 669358715 9 669358715 9 177811234 9 177811234 10 1021729225 10 1021729225 10 2327152015 10 2327152015 10 3793441059 10 3793441059 9 390937317 9 390937317 10 2421236149 10 2421236149 10 3346291068 10 3346291068 10 3880200042 10 3880200042 10 2299140636 10 2299140636 10 3743837736 10 3743837736 10 1315739433 10 1315739433 10 2784034063 10 2784034063 10 1354395138 10 1354395138 10 4062777255 10 4062777255 10 3126701396 10 3126701396 0 0 152 0 0 0 10 3356491351 10 3356491351 10 3356491351 10 3356491351 10 2600961200 10 2600961200 10 2509159060 10 2509159060 10 1021729225 10 1021729225 10 1021729225 10 1021729225 10 1832705803 10 1832705803 10 1832705803 10 1832705803 9 581989062 9 581989062 10 1354395138 10 1354395138 10 2097663454 10 2097663454 10 3551458167 10 3551458167 10 3551458167 10 3551458167 10 3126701396 10 3126701396 10 3880200042 10 3880200042 10 3255615729 10 3255615729 10 3255615729 10 3255615729 9 167237906 9 167237906 9 177811234 9 177811234 10 3930851132 10 3930851132 10 2361415202 10 2361415202 9 259868705 9 259868705 9 259868705 9 259868705 10 3793441059 10 3793441059 10 3793441059 10 3793441059 9 776215953 9 776215953 9 776215953 9 776215953 10 1630722604 10 1630722604 9 310524955 9 310524955 9 310524955 9 310524955 9 473010817 9 473010817 9 473010817 9 473010817 10 1970368353 10 1970368353 10 1970368353 10 1970368353 9 647803737 9 647803737 9 647803737 9 647803737 10 3042379069 10 3042379069 10 3042379069 10 3042379069 9 669358715 9 669358715 9 669358715 9 669358715 10 2075478837 10 2075478837 10 2075478837 10 2075478837 10 2299140636 10 2299140636 9 109292002 9 109292002 10 1421489007 10 1421489007 10 1421489007 10 1421489007 9 287343763 9 287343763 9 287343763 9 287343763 10 3186940620 10 3186940620 10 1829132124 10 1829132124 10 2748750790 10 2748750790 9 941660988 9 941660988 10 3989581123 10 3989581123 10 3989581123 10 3989581123 10 3479493952 10 3479493952 10 2417781066 10 2417781066 9 601527218 9 601527218 10 4256439559 10 4256439559 10 4256439559 10 4256439559 10 3226376894 10 3226376894 10 1568788209 10 1568788209 10 1568788209 10 1568788209 10 1198739057 10 1198739057 10 1198739057 10 1198739057 10 2138619156 10 2138619156 10 4076377133 10 4076377133 10 4076377133 10 4076377133 10 2825882502 10 2825882502 10 3801137760 10 3801137760 10 4062777255 10 4062777255 10 4062777255 10 4062777255 10 2620626957 10 2620626957 10 2620626957 10 2620626957 10 1775667486 10 1775667486 10 3346291068 10 3346291068 10 2956234822 10 2956234822 9 178482033 9 178482033 9 178482033 9 178482033 9 918842470 9 918842470 10 3377617071 10 3377617071 10 3377617071 10 3377617071 9 390937317 9 390937317 9 390937317 9 390937317 10 3876107121 10 3876107121 10 3876107121 10 3876107121 9 670291604 9 670291604 10 1859681623 10 1859681623 10 1859681623 10 1859681623 10 1241175627 10 1241175627 10 1241175627 10 1241175627 10 3807848133 10 3807848133 10 3807848133 10 3807848133 10 1315739433 10 1315739433 10 1315739433 10 1315739433 10 2355967322 10 2355967322 10 1786883066 10 1786883066 10 4239032041 10 4239032041 10 4239032041 10 4239032041 10 2148764457 10 2148764457 10 2148764457 10 2148764457 10 2427983947 10 2427983947 10 2427983947 10 2427983947 9 607596425 9 607596425 9 607596425 9 607596425 10 3869918764 10 3869918764 10 3401943278 10 3401943278 10 2421236149 10 2421236149 10 2421236149 10 2421236149 9 159865104 9 159865104 9 411876340 9 411876340 10 2056892401 10 2056892401 10 2056892401 10 2056892401 10 2652233125 10 2652233125 10 2652233125 10 2652233125 10 2298524549 10 2298524549 10 2298524549 10 2298524549 9 257760945 9 257760945 9 257760945 9 257760945 10 2663762324 10 2663762324 10 2492774796 10 2492774796 10 3862418431 10 3862418431 10 3862418431 10 3862418431 10 3743837736 10 3743837736 10 2975706254 10 2975706254 10 3435288264 10 3435288264 10 2784034063 10 2784034063 10 2784034063 10 2784034063 9 286273879 9 286273879 9 286273879 9 286273879 10 1481537722 10 1481537722 9 258343568 9 258343568 10 4029502563 10 4029502563 10 4029502563 10 4029502563 10 3862464713 10 3862464713 10 3862464713 10 3862464713 10 2327152015 10 2327152015 10 2327152015 10 2327152015 10 2764558328 10 2764558328 9 967560929 9 967560929 9 967560929 9 967560929 10 2868860431 10 2868860431 10 2868860431 10 2868860431 9 190104374 9 190104374 9 430136711 9 430136711 9 430136711 9 430136711 10 2491360284 10 2491360284 10 2774454326 10 2774454326 7 5018725 7 5018725 7 5018725 7 5018725 9 183526573 9 183526573 9 183526573 9 183526573 10 3254104696 10 3254104696 diff --git a/test/legacy_archives/map_string_100.xml b/test/legacy_archives/map_string_100.xml index 66eaf75c..9178f59d 100644 --- a/test/legacy_archives/map_string_100.xml +++ b/test/legacy_archives/map_string_100.xml @@ -409,7 +409,7 @@ 152 0 - + 3356491351 3356491351 diff --git a/test/legacy_archives/multimap_int_10.txt b/test/legacy_archives/multimap_int_10.txt index f664835a..db010e1c 100644 --- a/test/legacy_archives/multimap_int_10.txt +++ b/test/legacy_archives/multimap_int_10.txt @@ -1 +1 @@ -22 serialization::archive 19 0 0 14 29 0 0 0 -938475945 -938475945 -938475945 -938475945 -1785808236 -1785808236 -1694006096 -1694006096 1021729225 1021729225 1021729225 1021729225 581989062 581989062 -1168265900 -1168265900 2097663454 2097663454 1354395138 1354395138 -743509129 -743509129 -743509129 -743509129 1832705803 1832705803 1832705803 1832705803 0 0 14 0 -938475945 -938475945 -938475945 -938475945 -1694006096 -1694006096 -1785808236 -1785808236 1021729225 1021729225 1021729225 1021729225 1832705803 1832705803 1832705803 1832705803 581989062 581989062 1354395138 1354395138 2097663454 2097663454 -743509129 -743509129 -743509129 -743509129 -1168265900 -1168265900 +22 serialization::archive 19 0 0 14 29 0 0 0 -938475945 -938475945 -938475945 -938475945 -1785808236 -1785808236 -1694006096 -1694006096 1021729225 1021729225 1021729225 1021729225 581989062 581989062 -1168265900 -1168265900 2097663454 2097663454 1354395138 1354395138 -743509129 -743509129 -743509129 -743509129 1832705803 1832705803 1832705803 1832705803 0 0 14 0 0 0 -938475945 -938475945 -938475945 -938475945 -1694006096 -1694006096 -1785808236 -1785808236 1021729225 1021729225 1021729225 1021729225 1832705803 1832705803 1832705803 1832705803 581989062 581989062 1354395138 1354395138 2097663454 2097663454 -743509129 -743509129 -743509129 -743509129 -1168265900 -1168265900 diff --git a/test/legacy_archives/multimap_int_10.xml b/test/legacy_archives/multimap_int_10.xml index b771e291..40160a0d 100644 --- a/test/legacy_archives/multimap_int_10.xml +++ b/test/legacy_archives/multimap_int_10.xml @@ -65,7 +65,7 @@ 14 0 - + -938475945 -938475945 diff --git a/test/legacy_archives/multimap_int_100.txt b/test/legacy_archives/multimap_int_100.txt index 0321a888..906a7869 100644 --- a/test/legacy_archives/multimap_int_100.txt +++ b/test/legacy_archives/multimap_int_100.txt @@ -1 +1 @@ -22 serialization::archive 19 0 0 152 193 0 0 0 1775667486 1775667486 -948676228 -948676228 -1108026676 -1108026676 -1866983349 -1866983349 -1866983349 -1866983349 258343568 258343568 -1068590402 -1068590402 -432548865 -432548865 -432548865 -432548865 177811234 177811234 5018725 5018725 5018725 5018725 190104374 190104374 1315739433 1315739433 1315739433 1315739433 -1995826660 -1995826660 -305386173 -305386173 -305386173 -305386173 287343763 287343763 287343763 287343763 1241175627 1241175627 1241175627 1241175627 109292002 109292002 1021729225 1021729225 1021729225 1021729225 -1426106865 -1426106865 -1426106865 -1426106865 918842470 918842470 -1338732474 -1338732474 669358715 669358715 669358715 669358715 183526573 183526573 183526573 183526573 -938475945 -938475945 -938475945 -938475945 -1694006096 -1694006096 1630722604 1630722604 -1933552094 -1933552094 257760945 257760945 257760945 257760945 -1510933233 -1510933233 -1510933233 -1510933233 390937317 390937317 390937317 390937317 259868705 259868705 259868705 259868705 -38527737 -38527737 -38527737 -38527737 -551129560 -551129560 1832705803 1832705803 1832705803 1832705803 607596425 607596425 607596425 607596425 -1520512970 -1520512970 -1674340339 -1674340339 -1674340339 -1674340339 -1873731147 -1873731147 -1873731147 -1873731147 1421489007 1421489007 1421489007 1421489007 -501526237 -501526237 -501526237 -501526237 -1877186230 -1877186230 -218590163 -218590163 -218590163 -218590163 647803737 647803737 647803737 647803737 -859679032 -859679032 967560929 967560929 967560929 967560929 -815473344 -815473344 -487119163 -487119163 -487119163 -487119163 -1546216506 -1546216506 1859681623 1859681623 1859681623 1859681623 -1040862600 -1040862600 -893024018 -893024018 -1319261042 -1319261042 -1252588227 -1252588227 -1252588227 -1252588227 -1785808236 -1785808236 1198739057 1198739057 1198739057 1198739057 -1469084794 -1469084794 473010817 473010817 473010817 473010817 1481537722 1481537722 2138619156 2138619156 -1039351567 -1039351567 -1039351567 -1039351567 -493829536 -493829536 411876340 411876340 -364116164 -364116164 776215953 776215953 776215953 776215953 1568788209 1568788209 1568788209 1568788209 -1631204972 -1631204972 601527218 601527218 286273879 286273879 286273879 286273879 -232190041 -232190041 -232190041 -232190041 2075478837 2075478837 2075478837 2075478837 -1168265900 -1168265900 581989062 581989062 178482033 178482033 178482033 178482033 1354395138 1354395138 -1530408968 -1530408968 -414767254 -414767254 1970368353 1970368353 1970368353 1970368353 -1967815281 -1967815281 -1967815281 -1967815281 941660988 941660988 1786883066 1786883066 670291604 670291604 -1803607012 -1803607012 1829132124 1829132124 -432502583 -432502583 -432502583 -432502583 -1642734171 -1642734171 -1642734171 -1642734171 -425048532 -425048532 2097663454 2097663454 -1938999974 -1938999974 -1802192500 -1802192500 2056892401 2056892401 2056892401 2056892401 -917350225 -917350225 -917350225 -917350225 -55935255 -55935255 -55935255 -55935255 -418860175 -418860175 -418860175 -418860175 -2146202839 -2146202839 -2146202839 -2146202839 310524955 310524955 310524955 310524955 159865104 159865104 -265464733 -265464733 -265464733 -265464733 -1996442747 -1996442747 -1996442747 -1996442747 430136711 430136711 430136711 430136711 -743509129 -743509129 -743509129 -743509129 167237906 167237906 0 0 152 0 -938475945 -938475945 -938475945 -938475945 -1694006096 -1694006096 -1785808236 -1785808236 1021729225 1021729225 1021729225 1021729225 1832705803 1832705803 1832705803 1832705803 581989062 581989062 1354395138 1354395138 2097663454 2097663454 -743509129 -743509129 -743509129 -743509129 -1168265900 -1168265900 -414767254 -414767254 -1039351567 -1039351567 -1039351567 -1039351567 167237906 167237906 177811234 177811234 -364116164 -364116164 -1933552094 -1933552094 259868705 259868705 259868705 259868705 -501526237 -501526237 -501526237 -501526237 776215953 776215953 776215953 776215953 1630722604 1630722604 310524955 310524955 310524955 310524955 473010817 473010817 473010817 473010817 1970368353 1970368353 1970368353 1970368353 647803737 647803737 647803737 647803737 -1252588227 -1252588227 -1252588227 -1252588227 669358715 669358715 669358715 669358715 2075478837 2075478837 2075478837 2075478837 -1995826660 -1995826660 109292002 109292002 1421489007 1421489007 1421489007 1421489007 287343763 287343763 287343763 287343763 -1108026676 -1108026676 1829132124 1829132124 -1546216506 -1546216506 941660988 941660988 -305386173 -305386173 -305386173 -305386173 -815473344 -815473344 -1877186230 -1877186230 601527218 601527218 -38527737 -38527737 -38527737 -38527737 -1068590402 -1068590402 1568788209 1568788209 1568788209 1568788209 1198739057 1198739057 1198739057 1198739057 2138619156 2138619156 -218590163 -218590163 -218590163 -218590163 -1469084794 -1469084794 -493829536 -493829536 -232190041 -232190041 -232190041 -232190041 -1674340339 -1674340339 -1674340339 -1674340339 1775667486 1775667486 -948676228 -948676228 -1338732474 -1338732474 178482033 178482033 178482033 178482033 918842470 918842470 -917350225 -917350225 -917350225 -917350225 390937317 390937317 390937317 390937317 -418860175 -418860175 -418860175 -418860175 670291604 670291604 1859681623 1859681623 1859681623 1859681623 1241175627 1241175627 1241175627 1241175627 -487119163 -487119163 -487119163 -487119163 1315739433 1315739433 1315739433 1315739433 -1938999974 -1938999974 1786883066 1786883066 -55935255 -55935255 -55935255 -55935255 -2146202839 -2146202839 -2146202839 -2146202839 -1866983349 -1866983349 -1866983349 -1866983349 607596425 607596425 607596425 607596425 -425048532 -425048532 -893024018 -893024018 -1873731147 -1873731147 -1873731147 -1873731147 159865104 159865104 411876340 411876340 2056892401 2056892401 2056892401 2056892401 -1642734171 -1642734171 -1642734171 -1642734171 -1996442747 -1996442747 -1996442747 -1996442747 257760945 257760945 257760945 257760945 -1631204972 -1631204972 -1802192500 -1802192500 -432548865 -432548865 -432548865 -432548865 -551129560 -551129560 -1319261042 -1319261042 -859679032 -859679032 -1510933233 -1510933233 -1510933233 -1510933233 286273879 286273879 286273879 286273879 1481537722 1481537722 258343568 258343568 -265464733 -265464733 -265464733 -265464733 -432502583 -432502583 -432502583 -432502583 -1967815281 -1967815281 -1967815281 -1967815281 -1530408968 -1530408968 967560929 967560929 967560929 967560929 -1426106865 -1426106865 -1426106865 -1426106865 190104374 190104374 430136711 430136711 430136711 430136711 -1803607012 -1803607012 -1520512970 -1520512970 5018725 5018725 5018725 5018725 183526573 183526573 183526573 183526573 -1040862600 -1040862600 +22 serialization::archive 19 0 0 152 193 0 0 0 1775667486 1775667486 -948676228 -948676228 -1108026676 -1108026676 -1866983349 -1866983349 -1866983349 -1866983349 258343568 258343568 -1068590402 -1068590402 -432548865 -432548865 -432548865 -432548865 177811234 177811234 5018725 5018725 5018725 5018725 190104374 190104374 1315739433 1315739433 1315739433 1315739433 -1995826660 -1995826660 -305386173 -305386173 -305386173 -305386173 287343763 287343763 287343763 287343763 1241175627 1241175627 1241175627 1241175627 109292002 109292002 1021729225 1021729225 1021729225 1021729225 -1426106865 -1426106865 -1426106865 -1426106865 918842470 918842470 -1338732474 -1338732474 669358715 669358715 669358715 669358715 183526573 183526573 183526573 183526573 -938475945 -938475945 -938475945 -938475945 -1694006096 -1694006096 1630722604 1630722604 -1933552094 -1933552094 257760945 257760945 257760945 257760945 -1510933233 -1510933233 -1510933233 -1510933233 390937317 390937317 390937317 390937317 259868705 259868705 259868705 259868705 -38527737 -38527737 -38527737 -38527737 -551129560 -551129560 1832705803 1832705803 1832705803 1832705803 607596425 607596425 607596425 607596425 -1520512970 -1520512970 -1674340339 -1674340339 -1674340339 -1674340339 -1873731147 -1873731147 -1873731147 -1873731147 1421489007 1421489007 1421489007 1421489007 -501526237 -501526237 -501526237 -501526237 -1877186230 -1877186230 -218590163 -218590163 -218590163 -218590163 647803737 647803737 647803737 647803737 -859679032 -859679032 967560929 967560929 967560929 967560929 -815473344 -815473344 -487119163 -487119163 -487119163 -487119163 -1546216506 -1546216506 1859681623 1859681623 1859681623 1859681623 -1040862600 -1040862600 -893024018 -893024018 -1319261042 -1319261042 -1252588227 -1252588227 -1252588227 -1252588227 -1785808236 -1785808236 1198739057 1198739057 1198739057 1198739057 -1469084794 -1469084794 473010817 473010817 473010817 473010817 1481537722 1481537722 2138619156 2138619156 -1039351567 -1039351567 -1039351567 -1039351567 -493829536 -493829536 411876340 411876340 -364116164 -364116164 776215953 776215953 776215953 776215953 1568788209 1568788209 1568788209 1568788209 -1631204972 -1631204972 601527218 601527218 286273879 286273879 286273879 286273879 -232190041 -232190041 -232190041 -232190041 2075478837 2075478837 2075478837 2075478837 -1168265900 -1168265900 581989062 581989062 178482033 178482033 178482033 178482033 1354395138 1354395138 -1530408968 -1530408968 -414767254 -414767254 1970368353 1970368353 1970368353 1970368353 -1967815281 -1967815281 -1967815281 -1967815281 941660988 941660988 1786883066 1786883066 670291604 670291604 -1803607012 -1803607012 1829132124 1829132124 -432502583 -432502583 -432502583 -432502583 -1642734171 -1642734171 -1642734171 -1642734171 -425048532 -425048532 2097663454 2097663454 -1938999974 -1938999974 -1802192500 -1802192500 2056892401 2056892401 2056892401 2056892401 -917350225 -917350225 -917350225 -917350225 -55935255 -55935255 -55935255 -55935255 -418860175 -418860175 -418860175 -418860175 -2146202839 -2146202839 -2146202839 -2146202839 310524955 310524955 310524955 310524955 159865104 159865104 -265464733 -265464733 -265464733 -265464733 -1996442747 -1996442747 -1996442747 -1996442747 430136711 430136711 430136711 430136711 -743509129 -743509129 -743509129 -743509129 167237906 167237906 0 0 152 0 0 0 -938475945 -938475945 -938475945 -938475945 -1694006096 -1694006096 -1785808236 -1785808236 1021729225 1021729225 1021729225 1021729225 1832705803 1832705803 1832705803 1832705803 581989062 581989062 1354395138 1354395138 2097663454 2097663454 -743509129 -743509129 -743509129 -743509129 -1168265900 -1168265900 -414767254 -414767254 -1039351567 -1039351567 -1039351567 -1039351567 167237906 167237906 177811234 177811234 -364116164 -364116164 -1933552094 -1933552094 259868705 259868705 259868705 259868705 -501526237 -501526237 -501526237 -501526237 776215953 776215953 776215953 776215953 1630722604 1630722604 310524955 310524955 310524955 310524955 473010817 473010817 473010817 473010817 1970368353 1970368353 1970368353 1970368353 647803737 647803737 647803737 647803737 -1252588227 -1252588227 -1252588227 -1252588227 669358715 669358715 669358715 669358715 2075478837 2075478837 2075478837 2075478837 -1995826660 -1995826660 109292002 109292002 1421489007 1421489007 1421489007 1421489007 287343763 287343763 287343763 287343763 -1108026676 -1108026676 1829132124 1829132124 -1546216506 -1546216506 941660988 941660988 -305386173 -305386173 -305386173 -305386173 -815473344 -815473344 -1877186230 -1877186230 601527218 601527218 -38527737 -38527737 -38527737 -38527737 -1068590402 -1068590402 1568788209 1568788209 1568788209 1568788209 1198739057 1198739057 1198739057 1198739057 2138619156 2138619156 -218590163 -218590163 -218590163 -218590163 -1469084794 -1469084794 -493829536 -493829536 -232190041 -232190041 -232190041 -232190041 -1674340339 -1674340339 -1674340339 -1674340339 1775667486 1775667486 -948676228 -948676228 -1338732474 -1338732474 178482033 178482033 178482033 178482033 918842470 918842470 -917350225 -917350225 -917350225 -917350225 390937317 390937317 390937317 390937317 -418860175 -418860175 -418860175 -418860175 670291604 670291604 1859681623 1859681623 1859681623 1859681623 1241175627 1241175627 1241175627 1241175627 -487119163 -487119163 -487119163 -487119163 1315739433 1315739433 1315739433 1315739433 -1938999974 -1938999974 1786883066 1786883066 -55935255 -55935255 -55935255 -55935255 -2146202839 -2146202839 -2146202839 -2146202839 -1866983349 -1866983349 -1866983349 -1866983349 607596425 607596425 607596425 607596425 -425048532 -425048532 -893024018 -893024018 -1873731147 -1873731147 -1873731147 -1873731147 159865104 159865104 411876340 411876340 2056892401 2056892401 2056892401 2056892401 -1642734171 -1642734171 -1642734171 -1642734171 -1996442747 -1996442747 -1996442747 -1996442747 257760945 257760945 257760945 257760945 -1631204972 -1631204972 -1802192500 -1802192500 -432548865 -432548865 -432548865 -432548865 -551129560 -551129560 -1319261042 -1319261042 -859679032 -859679032 -1510933233 -1510933233 -1510933233 -1510933233 286273879 286273879 286273879 286273879 1481537722 1481537722 258343568 258343568 -265464733 -265464733 -265464733 -265464733 -432502583 -432502583 -432502583 -432502583 -1967815281 -1967815281 -1967815281 -1967815281 -1530408968 -1530408968 967560929 967560929 967560929 967560929 -1426106865 -1426106865 -1426106865 -1426106865 190104374 190104374 430136711 430136711 430136711 430136711 -1803607012 -1803607012 -1520512970 -1520512970 5018725 5018725 5018725 5018725 183526573 183526573 183526573 183526573 -1040862600 -1040862600 diff --git a/test/legacy_archives/multimap_int_100.xml b/test/legacy_archives/multimap_int_100.xml index 113b7c56..10d803b2 100644 --- a/test/legacy_archives/multimap_int_100.xml +++ b/test/legacy_archives/multimap_int_100.xml @@ -617,7 +617,7 @@ 152 0 - + -938475945 -938475945 diff --git a/test/legacy_archives/multimap_string_10.txt b/test/legacy_archives/multimap_string_10.txt index 0b9ebb96..22b96f00 100644 --- a/test/legacy_archives/multimap_string_10.txt +++ b/test/legacy_archives/multimap_string_10.txt @@ -1 +1 @@ -22 serialization::archive 19 0 0 14 29 0 0 0 10 3551458167 10 3551458167 10 3551458167 10 3551458167 10 2600961200 10 2600961200 10 3126701396 10 3126701396 9 581989062 9 581989062 10 1832705803 10 1832705803 10 1832705803 10 1832705803 10 3356491351 10 3356491351 10 3356491351 10 3356491351 10 1021729225 10 1021729225 10 1021729225 10 1021729225 10 2097663454 10 2097663454 10 1354395138 10 1354395138 10 2509159060 10 2509159060 0 0 14 0 10 3356491351 10 3356491351 10 3356491351 10 3356491351 10 2600961200 10 2600961200 10 2509159060 10 2509159060 10 1021729225 10 1021729225 10 1021729225 10 1021729225 10 1832705803 10 1832705803 10 1832705803 10 1832705803 9 581989062 9 581989062 10 1354395138 10 1354395138 10 2097663454 10 2097663454 10 3551458167 10 3551458167 10 3551458167 10 3551458167 10 3126701396 10 3126701396 +22 serialization::archive 19 0 0 14 29 0 0 0 10 3551458167 10 3551458167 10 3551458167 10 3551458167 10 2600961200 10 2600961200 10 3126701396 10 3126701396 9 581989062 9 581989062 10 1832705803 10 1832705803 10 1832705803 10 1832705803 10 3356491351 10 3356491351 10 3356491351 10 3356491351 10 1021729225 10 1021729225 10 1021729225 10 1021729225 10 2097663454 10 2097663454 10 1354395138 10 1354395138 10 2509159060 10 2509159060 0 0 14 0 0 0 10 3356491351 10 3356491351 10 3356491351 10 3356491351 10 2600961200 10 2600961200 10 2509159060 10 2509159060 10 1021729225 10 1021729225 10 1021729225 10 1021729225 10 1832705803 10 1832705803 10 1832705803 10 1832705803 9 581989062 9 581989062 10 1354395138 10 1354395138 10 2097663454 10 2097663454 10 3551458167 10 3551458167 10 3551458167 10 3551458167 10 3126701396 10 3126701396 diff --git a/test/legacy_archives/multimap_string_10.xml b/test/legacy_archives/multimap_string_10.xml index 2f43fd37..abc3bcd8 100644 --- a/test/legacy_archives/multimap_string_10.xml +++ b/test/legacy_archives/multimap_string_10.xml @@ -65,7 +65,7 @@ 14 0 - + 3356491351 3356491351 diff --git a/test/legacy_archives/multimap_string_100.txt b/test/legacy_archives/multimap_string_100.txt index 8c259d74..bb48c6ca 100644 --- a/test/legacy_archives/multimap_string_100.txt +++ b/test/legacy_archives/multimap_string_100.txt @@ -1 +1 @@ -22 serialization::archive 19 0 0 152 193 0 0 0 9 178482033 9 178482033 9 178482033 9 178482033 10 1786883066 10 1786883066 9 286273879 9 286273879 9 286273879 9 286273879 10 2298524549 10 2298524549 10 2298524549 10 2298524549 9 259868705 9 259868705 9 259868705 9 259868705 9 601527218 9 601527218 9 411876340 9 411876340 10 4029502563 10 4029502563 10 4029502563 10 4029502563 9 109292002 9 109292002 9 941660988 9 941660988 10 4256439559 10 4256439559 10 4256439559 10 4256439559 10 3401943278 10 3401943278 10 2663762324 10 2663762324 10 3042379069 10 3042379069 10 3042379069 10 3042379069 10 2509159060 10 2509159060 10 1859681623 10 1859681623 10 1859681623 10 1859681623 10 3356491351 10 3356491351 10 3356491351 10 3356491351 10 2620626957 10 2620626957 10 2620626957 10 2620626957 10 2652233125 10 2652233125 10 2652233125 10 2652233125 9 607596425 9 607596425 9 607596425 9 607596425 10 1568788209 10 1568788209 10 1568788209 10 1568788209 10 2868860431 10 2868860431 10 2868860431 10 2868860431 9 670291604 9 670291604 10 2764558328 10 2764558328 10 3226376894 10 3226376894 10 3930851132 10 3930851132 10 3801137760 10 3801137760 9 287343763 9 287343763 9 287343763 9 287343763 10 2138619156 10 2138619156 9 967560929 9 967560929 9 967560929 9 967560929 9 257760945 9 257760945 9 257760945 9 257760945 10 2056892401 10 2056892401 10 2056892401 10 2056892401 10 1829132124 10 1829132124 10 3807848133 10 3807848133 10 3807848133 10 3807848133 9 190104374 9 190104374 9 310524955 9 310524955 9 310524955 9 310524955 10 1481537722 10 1481537722 10 2361415202 10 2361415202 10 1970368353 10 1970368353 10 1970368353 10 1970368353 10 2417781066 10 2417781066 10 3186940620 10 3186940620 10 1421489007 10 1421489007 10 1421489007 10 1421489007 9 776215953 9 776215953 9 776215953 9 776215953 10 1775667486 10 1775667486 9 159865104 9 159865104 10 2355967322 10 2355967322 10 2748750790 10 2748750790 10 1832705803 10 1832705803 10 1832705803 10 1832705803 10 4239032041 10 4239032041 10 4239032041 10 4239032041 10 3876107121 10 3876107121 10 3876107121 10 3876107121 10 3479493952 10 3479493952 10 2600961200 10 2600961200 10 1241175627 10 1241175627 10 1241175627 10 1241175627 9 258343568 9 258343568 10 1630722604 10 1630722604 10 3255615729 10 3255615729 10 3255615729 10 3255615729 7 5018725 7 5018725 7 5018725 7 5018725 10 2774454326 10 2774454326 10 2825882502 10 2825882502 9 581989062 9 581989062 10 2148764457 10 2148764457 10 2148764457 10 2148764457 10 3862464713 10 3862464713 10 3862464713 10 3862464713 10 3862418431 10 3862418431 10 3862418431 10 3862418431 9 918842470 9 918842470 9 183526573 9 183526573 9 183526573 9 183526573 10 2097663454 10 2097663454 10 3377617071 10 3377617071 10 3377617071 10 3377617071 9 167237906 9 167237906 10 2492774796 10 2492774796 10 3254104696 10 3254104696 10 3551458167 10 3551458167 10 3551458167 10 3551458167 10 3989581123 10 3989581123 10 3989581123 10 3989581123 9 430136711 9 430136711 9 430136711 9 430136711 10 2427983947 10 2427983947 10 2427983947 10 2427983947 10 2975706254 10 2975706254 10 1198739057 10 1198739057 10 1198739057 10 1198739057 9 473010817 9 473010817 9 473010817 9 473010817 10 2075478837 10 2075478837 10 2075478837 10 2075478837 10 2956234822 10 2956234822 10 3435288264 10 3435288264 10 2491360284 10 2491360284 10 4076377133 10 4076377133 10 4076377133 10 4076377133 10 3869918764 10 3869918764 9 647803737 9 647803737 9 647803737 9 647803737 9 669358715 9 669358715 9 669358715 9 669358715 9 177811234 9 177811234 10 1021729225 10 1021729225 10 1021729225 10 1021729225 10 2327152015 10 2327152015 10 2327152015 10 2327152015 10 3793441059 10 3793441059 10 3793441059 10 3793441059 9 390937317 9 390937317 9 390937317 9 390937317 10 2421236149 10 2421236149 10 2421236149 10 2421236149 10 3346291068 10 3346291068 10 3880200042 10 3880200042 10 2299140636 10 2299140636 10 3743837736 10 3743837736 10 2784034063 10 2784034063 10 2784034063 10 2784034063 10 1315739433 10 1315739433 10 1315739433 10 1315739433 10 1354395138 10 1354395138 10 4062777255 10 4062777255 10 4062777255 10 4062777255 10 3126701396 10 3126701396 0 0 152 0 10 3356491351 10 3356491351 10 3356491351 10 3356491351 10 2600961200 10 2600961200 10 2509159060 10 2509159060 10 1021729225 10 1021729225 10 1021729225 10 1021729225 10 1832705803 10 1832705803 10 1832705803 10 1832705803 9 581989062 9 581989062 10 1354395138 10 1354395138 10 2097663454 10 2097663454 10 3551458167 10 3551458167 10 3551458167 10 3551458167 10 3126701396 10 3126701396 10 3880200042 10 3880200042 10 3255615729 10 3255615729 10 3255615729 10 3255615729 9 167237906 9 167237906 9 177811234 9 177811234 10 3930851132 10 3930851132 10 2361415202 10 2361415202 9 259868705 9 259868705 9 259868705 9 259868705 10 3793441059 10 3793441059 10 3793441059 10 3793441059 9 776215953 9 776215953 9 776215953 9 776215953 10 1630722604 10 1630722604 9 310524955 9 310524955 9 310524955 9 310524955 9 473010817 9 473010817 9 473010817 9 473010817 10 1970368353 10 1970368353 10 1970368353 10 1970368353 9 647803737 9 647803737 9 647803737 9 647803737 10 3042379069 10 3042379069 10 3042379069 10 3042379069 9 669358715 9 669358715 9 669358715 9 669358715 10 2075478837 10 2075478837 10 2075478837 10 2075478837 10 2299140636 10 2299140636 9 109292002 9 109292002 10 1421489007 10 1421489007 10 1421489007 10 1421489007 9 287343763 9 287343763 9 287343763 9 287343763 10 3186940620 10 3186940620 10 1829132124 10 1829132124 10 2748750790 10 2748750790 9 941660988 9 941660988 10 3989581123 10 3989581123 10 3989581123 10 3989581123 10 3479493952 10 3479493952 10 2417781066 10 2417781066 9 601527218 9 601527218 10 4256439559 10 4256439559 10 4256439559 10 4256439559 10 3226376894 10 3226376894 10 1568788209 10 1568788209 10 1568788209 10 1568788209 10 1198739057 10 1198739057 10 1198739057 10 1198739057 10 2138619156 10 2138619156 10 4076377133 10 4076377133 10 4076377133 10 4076377133 10 2825882502 10 2825882502 10 3801137760 10 3801137760 10 4062777255 10 4062777255 10 4062777255 10 4062777255 10 2620626957 10 2620626957 10 2620626957 10 2620626957 10 1775667486 10 1775667486 10 3346291068 10 3346291068 10 2956234822 10 2956234822 9 178482033 9 178482033 9 178482033 9 178482033 9 918842470 9 918842470 10 3377617071 10 3377617071 10 3377617071 10 3377617071 9 390937317 9 390937317 9 390937317 9 390937317 10 3876107121 10 3876107121 10 3876107121 10 3876107121 9 670291604 9 670291604 10 1859681623 10 1859681623 10 1859681623 10 1859681623 10 1241175627 10 1241175627 10 1241175627 10 1241175627 10 3807848133 10 3807848133 10 3807848133 10 3807848133 10 1315739433 10 1315739433 10 1315739433 10 1315739433 10 2355967322 10 2355967322 10 1786883066 10 1786883066 10 4239032041 10 4239032041 10 4239032041 10 4239032041 10 2148764457 10 2148764457 10 2148764457 10 2148764457 10 2427983947 10 2427983947 10 2427983947 10 2427983947 9 607596425 9 607596425 9 607596425 9 607596425 10 3869918764 10 3869918764 10 3401943278 10 3401943278 10 2421236149 10 2421236149 10 2421236149 10 2421236149 9 159865104 9 159865104 9 411876340 9 411876340 10 2056892401 10 2056892401 10 2056892401 10 2056892401 10 2652233125 10 2652233125 10 2652233125 10 2652233125 10 2298524549 10 2298524549 10 2298524549 10 2298524549 9 257760945 9 257760945 9 257760945 9 257760945 10 2663762324 10 2663762324 10 2492774796 10 2492774796 10 3862418431 10 3862418431 10 3862418431 10 3862418431 10 3743837736 10 3743837736 10 2975706254 10 2975706254 10 3435288264 10 3435288264 10 2784034063 10 2784034063 10 2784034063 10 2784034063 9 286273879 9 286273879 9 286273879 9 286273879 10 1481537722 10 1481537722 9 258343568 9 258343568 10 4029502563 10 4029502563 10 4029502563 10 4029502563 10 3862464713 10 3862464713 10 3862464713 10 3862464713 10 2327152015 10 2327152015 10 2327152015 10 2327152015 10 2764558328 10 2764558328 9 967560929 9 967560929 9 967560929 9 967560929 10 2868860431 10 2868860431 10 2868860431 10 2868860431 9 190104374 9 190104374 9 430136711 9 430136711 9 430136711 9 430136711 10 2491360284 10 2491360284 10 2774454326 10 2774454326 7 5018725 7 5018725 7 5018725 7 5018725 9 183526573 9 183526573 9 183526573 9 183526573 10 3254104696 10 3254104696 +22 serialization::archive 19 0 0 152 193 0 0 0 9 178482033 9 178482033 9 178482033 9 178482033 10 1786883066 10 1786883066 9 286273879 9 286273879 9 286273879 9 286273879 10 2298524549 10 2298524549 10 2298524549 10 2298524549 9 259868705 9 259868705 9 259868705 9 259868705 9 601527218 9 601527218 9 411876340 9 411876340 10 4029502563 10 4029502563 10 4029502563 10 4029502563 9 109292002 9 109292002 9 941660988 9 941660988 10 4256439559 10 4256439559 10 4256439559 10 4256439559 10 3401943278 10 3401943278 10 2663762324 10 2663762324 10 3042379069 10 3042379069 10 3042379069 10 3042379069 10 2509159060 10 2509159060 10 1859681623 10 1859681623 10 1859681623 10 1859681623 10 3356491351 10 3356491351 10 3356491351 10 3356491351 10 2620626957 10 2620626957 10 2620626957 10 2620626957 10 2652233125 10 2652233125 10 2652233125 10 2652233125 9 607596425 9 607596425 9 607596425 9 607596425 10 1568788209 10 1568788209 10 1568788209 10 1568788209 10 2868860431 10 2868860431 10 2868860431 10 2868860431 9 670291604 9 670291604 10 2764558328 10 2764558328 10 3226376894 10 3226376894 10 3930851132 10 3930851132 10 3801137760 10 3801137760 9 287343763 9 287343763 9 287343763 9 287343763 10 2138619156 10 2138619156 9 967560929 9 967560929 9 967560929 9 967560929 9 257760945 9 257760945 9 257760945 9 257760945 10 2056892401 10 2056892401 10 2056892401 10 2056892401 10 1829132124 10 1829132124 10 3807848133 10 3807848133 10 3807848133 10 3807848133 9 190104374 9 190104374 9 310524955 9 310524955 9 310524955 9 310524955 10 1481537722 10 1481537722 10 2361415202 10 2361415202 10 1970368353 10 1970368353 10 1970368353 10 1970368353 10 2417781066 10 2417781066 10 3186940620 10 3186940620 10 1421489007 10 1421489007 10 1421489007 10 1421489007 9 776215953 9 776215953 9 776215953 9 776215953 10 1775667486 10 1775667486 9 159865104 9 159865104 10 2355967322 10 2355967322 10 2748750790 10 2748750790 10 1832705803 10 1832705803 10 1832705803 10 1832705803 10 4239032041 10 4239032041 10 4239032041 10 4239032041 10 3876107121 10 3876107121 10 3876107121 10 3876107121 10 3479493952 10 3479493952 10 2600961200 10 2600961200 10 1241175627 10 1241175627 10 1241175627 10 1241175627 9 258343568 9 258343568 10 1630722604 10 1630722604 10 3255615729 10 3255615729 10 3255615729 10 3255615729 7 5018725 7 5018725 7 5018725 7 5018725 10 2774454326 10 2774454326 10 2825882502 10 2825882502 9 581989062 9 581989062 10 2148764457 10 2148764457 10 2148764457 10 2148764457 10 3862464713 10 3862464713 10 3862464713 10 3862464713 10 3862418431 10 3862418431 10 3862418431 10 3862418431 9 918842470 9 918842470 9 183526573 9 183526573 9 183526573 9 183526573 10 2097663454 10 2097663454 10 3377617071 10 3377617071 10 3377617071 10 3377617071 9 167237906 9 167237906 10 2492774796 10 2492774796 10 3254104696 10 3254104696 10 3551458167 10 3551458167 10 3551458167 10 3551458167 10 3989581123 10 3989581123 10 3989581123 10 3989581123 9 430136711 9 430136711 9 430136711 9 430136711 10 2427983947 10 2427983947 10 2427983947 10 2427983947 10 2975706254 10 2975706254 10 1198739057 10 1198739057 10 1198739057 10 1198739057 9 473010817 9 473010817 9 473010817 9 473010817 10 2075478837 10 2075478837 10 2075478837 10 2075478837 10 2956234822 10 2956234822 10 3435288264 10 3435288264 10 2491360284 10 2491360284 10 4076377133 10 4076377133 10 4076377133 10 4076377133 10 3869918764 10 3869918764 9 647803737 9 647803737 9 647803737 9 647803737 9 669358715 9 669358715 9 669358715 9 669358715 9 177811234 9 177811234 10 1021729225 10 1021729225 10 1021729225 10 1021729225 10 2327152015 10 2327152015 10 2327152015 10 2327152015 10 3793441059 10 3793441059 10 3793441059 10 3793441059 9 390937317 9 390937317 9 390937317 9 390937317 10 2421236149 10 2421236149 10 2421236149 10 2421236149 10 3346291068 10 3346291068 10 3880200042 10 3880200042 10 2299140636 10 2299140636 10 3743837736 10 3743837736 10 2784034063 10 2784034063 10 2784034063 10 2784034063 10 1315739433 10 1315739433 10 1315739433 10 1315739433 10 1354395138 10 1354395138 10 4062777255 10 4062777255 10 4062777255 10 4062777255 10 3126701396 10 3126701396 0 0 152 0 0 0 10 3356491351 10 3356491351 10 3356491351 10 3356491351 10 2600961200 10 2600961200 10 2509159060 10 2509159060 10 1021729225 10 1021729225 10 1021729225 10 1021729225 10 1832705803 10 1832705803 10 1832705803 10 1832705803 9 581989062 9 581989062 10 1354395138 10 1354395138 10 2097663454 10 2097663454 10 3551458167 10 3551458167 10 3551458167 10 3551458167 10 3126701396 10 3126701396 10 3880200042 10 3880200042 10 3255615729 10 3255615729 10 3255615729 10 3255615729 9 167237906 9 167237906 9 177811234 9 177811234 10 3930851132 10 3930851132 10 2361415202 10 2361415202 9 259868705 9 259868705 9 259868705 9 259868705 10 3793441059 10 3793441059 10 3793441059 10 3793441059 9 776215953 9 776215953 9 776215953 9 776215953 10 1630722604 10 1630722604 9 310524955 9 310524955 9 310524955 9 310524955 9 473010817 9 473010817 9 473010817 9 473010817 10 1970368353 10 1970368353 10 1970368353 10 1970368353 9 647803737 9 647803737 9 647803737 9 647803737 10 3042379069 10 3042379069 10 3042379069 10 3042379069 9 669358715 9 669358715 9 669358715 9 669358715 10 2075478837 10 2075478837 10 2075478837 10 2075478837 10 2299140636 10 2299140636 9 109292002 9 109292002 10 1421489007 10 1421489007 10 1421489007 10 1421489007 9 287343763 9 287343763 9 287343763 9 287343763 10 3186940620 10 3186940620 10 1829132124 10 1829132124 10 2748750790 10 2748750790 9 941660988 9 941660988 10 3989581123 10 3989581123 10 3989581123 10 3989581123 10 3479493952 10 3479493952 10 2417781066 10 2417781066 9 601527218 9 601527218 10 4256439559 10 4256439559 10 4256439559 10 4256439559 10 3226376894 10 3226376894 10 1568788209 10 1568788209 10 1568788209 10 1568788209 10 1198739057 10 1198739057 10 1198739057 10 1198739057 10 2138619156 10 2138619156 10 4076377133 10 4076377133 10 4076377133 10 4076377133 10 2825882502 10 2825882502 10 3801137760 10 3801137760 10 4062777255 10 4062777255 10 4062777255 10 4062777255 10 2620626957 10 2620626957 10 2620626957 10 2620626957 10 1775667486 10 1775667486 10 3346291068 10 3346291068 10 2956234822 10 2956234822 9 178482033 9 178482033 9 178482033 9 178482033 9 918842470 9 918842470 10 3377617071 10 3377617071 10 3377617071 10 3377617071 9 390937317 9 390937317 9 390937317 9 390937317 10 3876107121 10 3876107121 10 3876107121 10 3876107121 9 670291604 9 670291604 10 1859681623 10 1859681623 10 1859681623 10 1859681623 10 1241175627 10 1241175627 10 1241175627 10 1241175627 10 3807848133 10 3807848133 10 3807848133 10 3807848133 10 1315739433 10 1315739433 10 1315739433 10 1315739433 10 2355967322 10 2355967322 10 1786883066 10 1786883066 10 4239032041 10 4239032041 10 4239032041 10 4239032041 10 2148764457 10 2148764457 10 2148764457 10 2148764457 10 2427983947 10 2427983947 10 2427983947 10 2427983947 9 607596425 9 607596425 9 607596425 9 607596425 10 3869918764 10 3869918764 10 3401943278 10 3401943278 10 2421236149 10 2421236149 10 2421236149 10 2421236149 9 159865104 9 159865104 9 411876340 9 411876340 10 2056892401 10 2056892401 10 2056892401 10 2056892401 10 2652233125 10 2652233125 10 2652233125 10 2652233125 10 2298524549 10 2298524549 10 2298524549 10 2298524549 9 257760945 9 257760945 9 257760945 9 257760945 10 2663762324 10 2663762324 10 2492774796 10 2492774796 10 3862418431 10 3862418431 10 3862418431 10 3862418431 10 3743837736 10 3743837736 10 2975706254 10 2975706254 10 3435288264 10 3435288264 10 2784034063 10 2784034063 10 2784034063 10 2784034063 9 286273879 9 286273879 9 286273879 9 286273879 10 1481537722 10 1481537722 9 258343568 9 258343568 10 4029502563 10 4029502563 10 4029502563 10 4029502563 10 3862464713 10 3862464713 10 3862464713 10 3862464713 10 2327152015 10 2327152015 10 2327152015 10 2327152015 10 2764558328 10 2764558328 9 967560929 9 967560929 9 967560929 9 967560929 10 2868860431 10 2868860431 10 2868860431 10 2868860431 9 190104374 9 190104374 9 430136711 9 430136711 9 430136711 9 430136711 10 2491360284 10 2491360284 10 2774454326 10 2774454326 7 5018725 7 5018725 7 5018725 7 5018725 9 183526573 9 183526573 9 183526573 9 183526573 10 3254104696 10 3254104696 diff --git a/test/legacy_archives/multimap_string_100.xml b/test/legacy_archives/multimap_string_100.xml index 3202e3ad..35edaeec 100644 --- a/test/legacy_archives/multimap_string_100.xml +++ b/test/legacy_archives/multimap_string_100.xml @@ -617,7 +617,7 @@ 152 0 - + 3356491351 3356491351 diff --git a/test/unordered/serialization_tests.cpp b/test/unordered/serialization_tests.cpp index f38d964d..2e1ed200 100644 --- a/test/unordered/serialization_tests.cpp +++ b/test/unordered/serialization_tests.cpp @@ -141,12 +141,32 @@ namespace { ((text_archive)(xml_archive)) ((default_generator))) + template + struct non_const + { + typedef T type; + }; + + template + struct non_const + { + typedef typename non_const::type type; + }; + + template + struct non_const > + { + typedef std::pair< + typename non_const::type, + typename non_const::type> type; + }; + template void legacy_serialization_test( std::pair lc, std::pair la) { - typedef typename Container::value_type value_type; - typedef std::vector value_vector; + typedef typename Container::value_type value_type; + typedef std::vector::type> value_vector; static const std::size_t sizes[] = {0, 10, 100}; From 3968ff056769ac4de048b1fb414ab85071acd4b1 Mon Sep 17 00:00:00 2001 From: joaquintides Date: Tue, 15 Aug 2023 20:38:06 +0200 Subject: [PATCH 17/31] uploaded generate_legacy_archives.cpp for preservation --- .../generate_legacy_archives.cpp | 270 ++++++++++++++++++ 1 file changed, 270 insertions(+) create mode 100644 test/legacy_archives/generate_legacy_archives.cpp diff --git a/test/legacy_archives/generate_legacy_archives.cpp b/test/legacy_archives/generate_legacy_archives.cpp new file mode 100644 index 00000000..55144dc5 --- /dev/null +++ b/test/legacy_archives/generate_legacy_archives.cpp @@ -0,0 +1,270 @@ +/* Copyright 2023 Joaquin M Lopez Munoz. + * Distributed under the Boost Software License, Version 1.0. + * (See accompanying file LICENSE_1_0.txt or copy at + * http://www.boost.org/LICENSE_1_0.txt) + * + * See https://www.boost.org/libs/unordered for library home page. + */ + +/* This program has been used to generate archives of Boost.Unordered + * containers with Boost 1.83, when serialization support was provided + * externally to Boost.Unordered in + * boost/serialization/boost_unordered_(map|set).hpp. Beginning with the + * release of native Boost.Unordered serialization capabilities in Boost + * 1.84, these archives are used to test backwards loading compatibility + * as enabled by BOOST_UNORDERED_ENABLE_SERIALIZATION_COMPATIBILITY_V0. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +template +struct random_generator +{ + Value operator()() + { + return static_cast(dist(gen)); + } + + std::uniform_int_distribution dist; + std::mt19937 gen{231}; +}; + +template<> +struct random_generator +{ + std::string operator()() + { + return std::to_string(rng()); + } + + random_generator<> rng; +}; + +template<> +struct random_generator:random_generator{}; + +template +struct random_generator> +{ + std::pair operator()() + { + return {rngt(),rngq()}; + } + + random_generator rngt; + random_generator rngq; +}; + +template +struct non_const +{ + typedef T type; +}; + +template +struct non_const +{ + using type=typename non_const::type; +}; + +template +struct non_const> +{ + using type=std::pair< + typename non_const::type, + typename non_const::type>; +}; + +template +void generate_legacy_archive(const char* filename,std::size_t n) +{ + using value_type=typename Container::value_type; + using vector=std::vector::type>; + + Container c; + vector v; + random_generator rng; + std::uniform_int_distribution<> repeat(0,1); + std::mt19937 gen{231}; + + for(std::size_t i=0;i,boost::archive::text_oarchive + >("map_int_0.txt",0); + generate_legacy_archive< + boost::unordered_map,boost::archive::text_oarchive + >("map_int_10.txt",10); + generate_legacy_archive< + boost::unordered_map,boost::archive::text_oarchive + >("map_int_100.txt",100); + generate_legacy_archive< + boost::unordered_map,boost::archive::text_oarchive + >("map_string_0.txt",0); + generate_legacy_archive< + boost::unordered_map,boost::archive::text_oarchive + >("map_string_10.txt",10); + generate_legacy_archive,boost::archive::text_oarchive + >("map_string_100.txt",100); + + generate_legacy_archive< + boost::unordered_multimap,boost::archive::text_oarchive + >("multimap_int_0.txt",0); + generate_legacy_archive< + boost::unordered_multimap,boost::archive::text_oarchive + >("multimap_int_10.txt",10); + generate_legacy_archive< + boost::unordered_multimap,boost::archive::text_oarchive + >("multimap_int_100.txt",100); + generate_legacy_archive< + boost::unordered_multimap,boost::archive::text_oarchive + >("multimap_string_0.txt",0); + generate_legacy_archive< + boost::unordered_multimap,boost::archive::text_oarchive + >("multimap_string_10.txt",10); + generate_legacy_archive< + boost::unordered_multimap,boost::archive::text_oarchive + >("multimap_string_100.txt",100); + + generate_legacy_archive< + boost::unordered_set,boost::archive::text_oarchive + >("set_int_0.txt",0); + generate_legacy_archive< + boost::unordered_set,boost::archive::text_oarchive + >("set_int_10.txt",10); + generate_legacy_archive< + boost::unordered_set,boost::archive::text_oarchive + >("set_int_100.txt",100); + generate_legacy_archive< + boost::unordered_set,boost::archive::text_oarchive + >("set_string_0.txt",0); + generate_legacy_archive< + boost::unordered_set,boost::archive::text_oarchive + >("set_string_10.txt",10); + generate_legacy_archive< + boost::unordered_set,boost::archive::text_oarchive + >("set_string_100.txt",100); + + generate_legacy_archive< + boost::unordered_multiset,boost::archive::text_oarchive + >("multiset_int_0.txt",0); + generate_legacy_archive< + boost::unordered_multiset,boost::archive::text_oarchive + >("multiset_int_10.txt",10); + generate_legacy_archive< + boost::unordered_multiset,boost::archive::text_oarchive + >("multiset_int_100.txt",100); + generate_legacy_archive< + boost::unordered_multiset,boost::archive::text_oarchive + >("multiset_string_0.txt",0); + generate_legacy_archive< + boost::unordered_multiset,boost::archive::text_oarchive + >("multiset_string_10.txt",10); + generate_legacy_archive< + boost::unordered_multiset,boost::archive::text_oarchive + >("multiset_string_100.txt",100); + + generate_legacy_archive< + boost::unordered_map,boost::archive::xml_oarchive + >("map_int_0.xml",0); + generate_legacy_archive< + boost::unordered_map,boost::archive::xml_oarchive + >("map_int_10.xml",10); + generate_legacy_archive< + boost::unordered_map,boost::archive::xml_oarchive + >("map_int_100.xml",100); + generate_legacy_archive< + boost::unordered_map,boost::archive::xml_oarchive + >("map_string_0.xml",0); + generate_legacy_archive< + boost::unordered_map,boost::archive::xml_oarchive + >("map_string_10.xml",10); + generate_legacy_archive< + boost::unordered_map,boost::archive::xml_oarchive + >("map_string_100.xml",100); + + generate_legacy_archive< + boost::unordered_multimap,boost::archive::xml_oarchive + >("multimap_int_0.xml",0); + generate_legacy_archive< + boost::unordered_multimap,boost::archive::xml_oarchive + >("multimap_int_10.xml",10); + generate_legacy_archive< + boost::unordered_multimap,boost::archive::xml_oarchive + >("multimap_int_100.xml",100); + generate_legacy_archive< + boost::unordered_multimap,boost::archive::xml_oarchive + >("multimap_string_0.xml",0); + generate_legacy_archive< + boost::unordered_multimap,boost::archive::xml_oarchive + >("multimap_string_10.xml",10); + generate_legacy_archive< + boost::unordered_multimap,boost::archive::xml_oarchive + >("multimap_string_100.xml",100); + + generate_legacy_archive< + boost::unordered_set,boost::archive::xml_oarchive + >("set_int_0.xml",0); + generate_legacy_archive< + boost::unordered_set,boost::archive::xml_oarchive + >("set_int_10.xml",10); + generate_legacy_archive< + boost::unordered_set,boost::archive::xml_oarchive + >("set_int_100.xml",100); + generate_legacy_archive< + boost::unordered_set,boost::archive::xml_oarchive + >("set_string_0.xml",0); + generate_legacy_archive< + boost::unordered_set,boost::archive::xml_oarchive + >("set_string_10.xml",10); + generate_legacy_archive< + boost::unordered_set,boost::archive::xml_oarchive + >("set_string_100.xml",100); + + generate_legacy_archive< + boost::unordered_multiset,boost::archive::xml_oarchive + >("multiset_int_0.xml",0); + generate_legacy_archive< + boost::unordered_multiset,boost::archive::xml_oarchive + >("multiset_int_10.xml",10); + generate_legacy_archive< + boost::unordered_multiset,boost::archive::xml_oarchive + >("multiset_int_100.xml",100); + generate_legacy_archive< + boost::unordered_multiset,boost::archive::xml_oarchive + >("multiset_string_0.xml",0); + generate_legacy_archive< + boost::unordered_multiset,boost::archive::xml_oarchive + >("multiset_string_10.xml",10); + generate_legacy_archive< + boost::unordered_multiset,boost::archive::xml_oarchive + >("multiset_string_100.xml",100); + +} \ No newline at end of file From aec9c48cf4fdf8ef1a39955c31260846086bcef4 Mon Sep 17 00:00:00 2001 From: joaquintides Date: Wed, 16 Aug 2023 00:32:45 +0200 Subject: [PATCH 18/31] restored passing of working directory --- test/Jamfile.v2 | 4 +++- test/unordered/serialization_tests.cpp | 17 ++++++++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 1c2dec79..4c739c4a 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -85,8 +85,10 @@ run unordered/copy_tests.cpp : : : BOOST_UNORDERED_USE_MOVE : bmove_copy run unordered/move_tests.cpp : : : BOOST_UNORDERED_USE_MOVE : bmove_move ; run unordered/assign_tests.cpp : : : BOOST_UNORDERED_USE_MOVE : bmove_assign ; +path-constant BOOST_UNORDERED_TEST_DIR : . ; + run unordered/serialization_tests.cpp - : + : $(BOOST_UNORDERED_TEST_DIR) : : BOOST_UNORDERED_ENABLE_SERIALIZATION_COMPATIBILITY_V0 off # Boost.Serialization headers are not warning-free diff --git a/test/unordered/serialization_tests.cpp b/test/unordered/serialization_tests.cpp index 2e1ed200..0cd25b11 100644 --- a/test/unordered/serialization_tests.cpp +++ b/test/unordered/serialization_tests.cpp @@ -105,6 +105,9 @@ namespace { } } + // used by legacy_serialization_test, passed as argv[1] + const char* test_dir="."; + using test::default_generator; std::pair< @@ -175,8 +178,8 @@ namespace { for(int i = 0; i < sizeof(sizes)/sizeof(sizes[0]); ++i) { char filename[1024]; std::sprintf( - filename, "./legacy_archives/%s_%d.%s", - lc.second, (int)sizes[i], la.second); + filename, "%s/legacy_archives/%s_%d.%s", + test_dir, lc.second, (int)sizes[i], la.second); std::ifstream ifs(filename); Archive ia(ifs); Container c; @@ -215,4 +218,12 @@ namespace { #endif } -RUN_TESTS() +int main(int argc, char* argv[]) +{ + if (argc > 1) test_dir = argv[1]; + + BOOST_UNORDERED_TEST_COMPILER_INFO() + ::test::get_state().run_tests(); + return boost::report_errors(); +} + From 9057369f93c01e69b2b13aa5e1c9396a1721d883 Mon Sep 17 00:00:00 2001 From: joaquintides Date: Wed, 16 Aug 2023 09:46:05 +0200 Subject: [PATCH 19/31] refactored to work around GCC 4.4 hiccups with std::pair p(0,...) --- test/unordered/serialization_tests.cpp | 67 +++++++++++++++----------- 1 file changed, 39 insertions(+), 28 deletions(-) diff --git a/test/unordered/serialization_tests.cpp b/test/unordered/serialization_tests.cpp index 0cd25b11..82752186 100644 --- a/test/unordered/serialization_tests.cpp +++ b/test/unordered/serialization_tests.cpp @@ -28,7 +28,8 @@ namespace { template - void serialization_tests(Container*, ArchivePair*, test::random_generator generator) + void serialization_tests( + Container*, ArchivePair*, test::random_generator generator) { typedef typename Container::iterator iterator; typedef std::vector iterator_vector; @@ -111,9 +112,11 @@ namespace { using test::default_generator; std::pair< - boost::archive::text_oarchive, boost::archive::text_iarchive>* text_archive; + boost::archive::text_oarchive, boost::archive::text_iarchive>* + text_archive; std::pair< - boost::archive::xml_oarchive, boost::archive::xml_iarchive>* xml_archive; + boost::archive::xml_oarchive, boost::archive::xml_iarchive>* + xml_archive; #ifdef BOOST_UNORDERED_FOA_TESTS boost::unordered_flat_map< @@ -164,9 +167,16 @@ namespace { typename non_const::type> type; }; + template + struct labeled + { + labeled(const char* label_): label(label_) {} + + const char* label; + }; + template - void legacy_serialization_test( - std::pair lc, std::pair la) + void legacy_serialization_test(labeled lc, labeled la) { typedef typename Container::value_type value_type; typedef std::vector::type> value_vector; @@ -179,41 +189,43 @@ namespace { char filename[1024]; std::sprintf( filename, "%s/legacy_archives/%s_%d.%s", - test_dir, lc.second, (int)sizes[i], la.second); + test_dir, lc.label, (int)sizes[i], la.label); std::ifstream ifs(filename); Archive ia(ifs); Container c; value_vector v; ia >> boost::serialization::make_nvp("container", c); ia >> boost::serialization::make_nvp("values", v); - BOOST_TEST(v.size() >= sizes[i]); // values generated with some degree of repetition + BOOST_TEST(v.size() >= sizes[i]); // values generated with repetition BOOST_TEST((c==Container(v.begin(),v.end()))); } } - std::pair*, const char*> - labeled_map_int(0, "map_int"); - std::pair*, const char*> - labeled_map_string(0, "map_string"); - std::pair*, const char*> - labeled_multimap_int(0, "multimap_int"); - std::pair*, const char*> - labeled_multimap_string(0, "multimap_string"); - std::pair*, const char*> - labeled_set_int(0, "set_int"); - std::pair*, const char*> - labeled_set_string(0, "set_string"); - std::pair*, const char*> - labeled_multiset_int(0, "multiset_int"); - std::pair*, const char*> - labeled_multiset_string(0, "multiset_string"); + labeled > + labeled_map_int("map_int"); + labeled > + labeled_map_string("map_string"); + labeled > + labeled_multimap_int("multimap_int"); + labeled > + labeled_multimap_string("multimap_string"); + labeled > + labeled_set_int("set_int"); + labeled > + labeled_set_string("set_string"); + labeled > + labeled_multiset_int("multiset_int"); + labeled > + labeled_multiset_string("multiset_string"); - std::pair labeled_text_iarchive(0, "txt"); - std::pair labeled_xml_iarchive(0, "xml"); + labeled labeled_text_iarchive("txt"); + labeled labeled_xml_iarchive("xml"); UNORDERED_TEST(legacy_serialization_test, - ((labeled_map_int)(labeled_map_string)(labeled_multimap_int)(labeled_multimap_string) - (labeled_set_int)(labeled_set_string)(labeled_multiset_int)(labeled_multiset_string)) + ((labeled_map_int)(labeled_map_string) + (labeled_multimap_int)(labeled_multimap_string) + (labeled_set_int)(labeled_set_string) + (labeled_multiset_int)(labeled_multiset_string)) ((labeled_text_iarchive)(labeled_xml_iarchive))) #endif } @@ -226,4 +238,3 @@ int main(int argc, char* argv[]) ::test::get_state().run_tests(); return boost::report_errors(); } - From bf0ae6e63ae9d3fe779e5864b32d52514aa2dcf0 Mon Sep 17 00:00:00 2001 From: joaquintides Date: Wed, 16 Aug 2023 11:34:43 +0200 Subject: [PATCH 20/31] marked UB-incurring boost::archive::xml_oarchive ctor/dtor as no_sanitize --- test/unordered/serialization_tests.cpp | 30 +++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/test/unordered/serialization_tests.cpp b/test/unordered/serialization_tests.cpp index 82752186..108f5cee 100644 --- a/test/unordered/serialization_tests.cpp +++ b/test/unordered/serialization_tests.cpp @@ -111,11 +111,39 @@ namespace { using test::default_generator; +#if (defined(BOOST_GCC) && BOOST_GCC_VERSION >= 80100) ||\ + (defined(BOOST_CLANG) && BOOST_CLANG_VERSION >= 30700) +#define BOOST_UNORDERED_TEST_NO_SANITIZE_UNDEFINED \ +__attribute__((no_sanitize("undefined"))) +#else +#define BOOST_UNORDERED_TEST_NO_SANITIZE_UNDEFINED +#endif + + template + struct unsanitized_ctor_dtor: Class + { + template + BOOST_UNORDERED_TEST_NO_SANITIZE_UNDEFINED + unsanitized_ctor_dtor(const Arg& x): Class(x) {} + + template + BOOST_UNORDERED_TEST_NO_SANITIZE_UNDEFINED + unsanitized_ctor_dtor(Arg& x): Class(x) {} + + BOOST_UNORDERED_TEST_NO_SANITIZE_UNDEFINED + ~unsanitized_ctor_dtor() + { + } + }; + +#undef BOOST_UNORDERED_TEST_NO_SANITIZE_UNDEFINED + std::pair< boost::archive::text_oarchive, boost::archive::text_iarchive>* text_archive; std::pair< - boost::archive::xml_oarchive, boost::archive::xml_iarchive>* + unsanitized_ctor_dtor, + boost::archive::xml_iarchive>* xml_archive; #ifdef BOOST_UNORDERED_FOA_TESTS From fc3fca4264476c72a0ebdeea4b78612b2bdadc59 Mon Sep 17 00:00:00 2001 From: joaquintides Date: Wed, 16 Aug 2023 16:53:39 +0200 Subject: [PATCH 21/31] reverted prior (didn't work) --- test/unordered/serialization_tests.cpp | 30 +------------------------- 1 file changed, 1 insertion(+), 29 deletions(-) diff --git a/test/unordered/serialization_tests.cpp b/test/unordered/serialization_tests.cpp index 108f5cee..82752186 100644 --- a/test/unordered/serialization_tests.cpp +++ b/test/unordered/serialization_tests.cpp @@ -111,39 +111,11 @@ namespace { using test::default_generator; -#if (defined(BOOST_GCC) && BOOST_GCC_VERSION >= 80100) ||\ - (defined(BOOST_CLANG) && BOOST_CLANG_VERSION >= 30700) -#define BOOST_UNORDERED_TEST_NO_SANITIZE_UNDEFINED \ -__attribute__((no_sanitize("undefined"))) -#else -#define BOOST_UNORDERED_TEST_NO_SANITIZE_UNDEFINED -#endif - - template - struct unsanitized_ctor_dtor: Class - { - template - BOOST_UNORDERED_TEST_NO_SANITIZE_UNDEFINED - unsanitized_ctor_dtor(const Arg& x): Class(x) {} - - template - BOOST_UNORDERED_TEST_NO_SANITIZE_UNDEFINED - unsanitized_ctor_dtor(Arg& x): Class(x) {} - - BOOST_UNORDERED_TEST_NO_SANITIZE_UNDEFINED - ~unsanitized_ctor_dtor() - { - } - }; - -#undef BOOST_UNORDERED_TEST_NO_SANITIZE_UNDEFINED - std::pair< boost::archive::text_oarchive, boost::archive::text_iarchive>* text_archive; std::pair< - unsanitized_ctor_dtor, - boost::archive::xml_iarchive>* + boost::archive::xml_oarchive, boost::archive::xml_iarchive>* xml_archive; #ifdef BOOST_UNORDERED_FOA_TESTS From 0365be763a05be1eefdda1c001de2d3b70e0a20c Mon Sep 17 00:00:00 2001 From: joaquintides Date: Wed, 16 Aug 2023 17:22:04 +0200 Subject: [PATCH 22/31] dealt with serialization_tests's big executable size --- test/Jamfile.v2 | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 4c739c4a..d5019f3d 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -93,6 +93,11 @@ run unordered/serialization_tests.cpp : BOOST_UNORDERED_ENABLE_SERIALIZATION_COMPATIBILITY_V0 off # Boost.Serialization headers are not warning-free msvc:_CRT_SECURE_NO_WARNINGS + msvc:/bigobj + gcc:on + gcc:space + clang:on + clang:space /boost//serialization/off ; run exception/constructor_exception_tests.cpp ; @@ -164,6 +169,11 @@ run unordered/serialization_tests.cpp : : $(CPP11) BOOST_UNORDERED_FOA_TESTS off # Boost.Serialization headers are not warning-free + msvc:/bigobj + gcc:on + gcc:space + clang:on + clang:space /boost//serialization/off : foa_serialization_tests ; From 389e967484cfc73ca7d3d674e4871e2d385f1461 Mon Sep 17 00:00:00 2001 From: joaquintides Date: Wed, 16 Aug 2023 19:06:02 +0200 Subject: [PATCH 23/31] added embarrassingly absent BOOST_TEST --- test/unordered/serialization_tests.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/test/unordered/serialization_tests.cpp b/test/unordered/serialization_tests.cpp index 82752186..42da2c8f 100644 --- a/test/unordered/serialization_tests.cpp +++ b/test/unordered/serialization_tests.cpp @@ -90,6 +90,7 @@ namespace { input_archive ia(iss); ia >> boost::serialization::make_nvp("container", c2); ia >> boost::serialization::make_nvp("iterators", v2); + BOOST_TEST(c == c2); BOOST_TEST_EQ(v.size(), v2.size()); for (std::size_t i=0; i < v.size(); ++i) { From 9d897faecefff1a7477ab7bea98d7786dc4ad20d Mon Sep 17 00:00:00 2001 From: joaquintides Date: Wed, 16 Aug 2023 19:06:33 +0200 Subject: [PATCH 24/31] added cfoa_serialization_tests --- test/Jamfile.v2 | 17 ++++++- test/cfoa/serialization_tests.cpp | 79 +++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 test/cfoa/serialization_tests.cpp diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index d5019f3d..5317c3d6 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -242,4 +242,19 @@ for local test in $(CFOA_TESTS) ; } -alias cfoa_tests : cfoa_$(CFOA_TESTS) ; +run cfoa/serialization_tests.cpp + : + : + : $(CPP11) multi + off # Boost.Serialization headers are not warning-free + msvc:/bigobj + gcc:on + gcc:space + clang:on + clang:space + /boost//serialization/off + : cfoa_serialization_tests ; + +alias cfoa_tests : + cfoa_$(CFOA_TESTS) + cfoa_serialization_tests ; diff --git a/test/cfoa/serialization_tests.cpp b/test/cfoa/serialization_tests.cpp new file mode 100644 index 00000000..ad762451 --- /dev/null +++ b/test/cfoa/serialization_tests.cpp @@ -0,0 +1,79 @@ +// Copyright (C) 2023 Joaquin M Lopez Munoz +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +#include "../objects/test.hpp" +#include "../helpers/random_values.hpp" + +#include +#include +#include +#include +#include +#include + +namespace { + + template + void serialization_tests( + Container*, ArchivePair*, test::random_generator generator) + { + using output_archive = typename ArchivePair::first_type ; + using input_archive = typename ArchivePair::second_type; + + BOOST_LIGHTWEIGHT_TEST_OSTREAM << "serialization_tests1\n"; + { + Container c; + + std::ostringstream oss; + { + output_archive oa(oss); + oa << boost::serialization::make_nvp("container", c); + } + + test::random_values values(100, generator); + Container c2(values.begin(), values.end()); + std::istringstream iss(oss.str()); + input_archive ia(iss); + ia >> boost::serialization::make_nvp("container", c2); + BOOST_TEST(c2.empty()); + } + + BOOST_LIGHTWEIGHT_TEST_OSTREAM << "serialization_tests2\n"; + { + test::random_values values(100, generator); + Container c(values.begin(), values.end()); + + std::ostringstream oss; + { + output_archive oa(oss); + oa << boost::serialization::make_nvp("container", c); + } + + Container c2; + std::istringstream iss(oss.str()); + input_archive ia(iss); + ia >> boost::serialization::make_nvp("container", c2); + BOOST_TEST(c == c2); + } + } + + using test::default_generator; + + std::pair< + boost::archive::text_oarchive, boost::archive::text_iarchive>* + text_archive; + std::pair< + boost::archive::xml_oarchive, boost::archive::xml_iarchive>* + xml_archive; + + boost::concurrent_flat_map< + test::object, test::object, test::hash, test::equal_to>* test_flat_map; + + UNORDERED_TEST(serialization_tests, + ((test_flat_map)) + ((text_archive)(xml_archive)) + ((default_generator))) +} + +RUN_TESTS() From a2ad7966ea84d7313779f1c0aff269bb5545bbb3 Mon Sep 17 00:00:00 2001 From: joaquintides Date: Wed, 16 Aug 2023 19:21:11 +0200 Subject: [PATCH 25/31] removed serialization tests from UBSAN runs --- test/Jamfile.v2 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 5317c3d6..d87fcf6d 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -92,6 +92,7 @@ run unordered/serialization_tests.cpp : : BOOST_UNORDERED_ENABLE_SERIALIZATION_COMPATIBILITY_V0 off # Boost.Serialization headers are not warning-free + norecover:no # boost::archive::xml_oarchive does not pass UBSAN msvc:_CRT_SECURE_NO_WARNINGS msvc:/bigobj gcc:on @@ -169,6 +170,7 @@ run unordered/serialization_tests.cpp : : $(CPP11) BOOST_UNORDERED_FOA_TESTS off # Boost.Serialization headers are not warning-free + norecover:no # boost::archive::xml_oarchive does not pass UBSAN msvc:/bigobj gcc:on gcc:space @@ -247,6 +249,7 @@ run cfoa/serialization_tests.cpp : : $(CPP11) multi off # Boost.Serialization headers are not warning-free + norecover:no # boost::archive::xml_oarchive does not pass UBSAN msvc:/bigobj gcc:on gcc:space From 6dd58f4e9cd62234b826aa0a71d035c3ae6fa8b8 Mon Sep 17 00:00:00 2001 From: joaquintides Date: Thu, 17 Aug 2023 10:28:45 +0200 Subject: [PATCH 26/31] added missing carriage return --- doc/unordered/changes.adoc | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/unordered/changes.adoc b/doc/unordered/changes.adoc index f03399b9..18e5be56 100644 --- a/doc/unordered/changes.adoc +++ b/doc/unordered/changes.adoc @@ -15,6 +15,7 @@ with serial and parallel variants. * Added debug mode mechanisms for detecting illegal reentrancies into a `boost::concurrent_flat_map` from user code. * Added Boost.Serialization support to all containers and their (non-local) iterator types. + == Release 1.83.0 - Major update * Added `boost::concurrent_flat_map`, a fast, thread-safe hashmap based on open addressing. From 829a4a162093679824430448e316be3a47297329 Mon Sep 17 00:00:00 2001 From: joaquintides Date: Fri, 18 Aug 2023 10:35:55 +0200 Subject: [PATCH 27/31] worked around lack of std::shuffle in VS2010 --- test/unordered/serialization_tests.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/test/unordered/serialization_tests.cpp b/test/unordered/serialization_tests.cpp index 42da2c8f..4bb32f06 100644 --- a/test/unordered/serialization_tests.cpp +++ b/test/unordered/serialization_tests.cpp @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -21,7 +22,11 @@ #include #include -#ifndef BOOST_NO_CXX11_HDR_RANDOM +#if defined(BOOST_NO_CXX11_HDR_RANDOM) || BOOST_WORKAROUND(BOOST_MSVC, < 1700) +#define BOOST_UNORDERED_TEST_USE_STD_RANDOM_SHUFFLE +#endif + +#ifndef BOOST_UNORDERED_TEST_USE_STD_RANDOM_SHUFFLE #include #endif @@ -71,10 +76,10 @@ namespace { ++first; } -#ifndef BOOST_NO_CXX11_HDR_RANDOM - std::shuffle(v.begin(), v.end(), std::mt19937(4213)); -#else +#ifdef BOOST_UNORDERED_TEST_USE_STD_RANDOM_SHUFFLE std::random_shuffle(v.begin(), v.end()); +#else + std::shuffle(v.begin(), v.end(), std::mt19937(4213)); #endif std::ostringstream oss; From 52061a7c64ba5082b7c260b1ba9b407240a6f23b Mon Sep 17 00:00:00 2001 From: joaquintides Date: Fri, 18 Aug 2023 21:03:12 +0200 Subject: [PATCH 28/31] typo --- test/objects/test.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/objects/test.hpp b/test/objects/test.hpp index 17abed92..853e2205 100644 --- a/test/objects/test.hpp +++ b/test/objects/test.hpp @@ -1,7 +1,7 @@ // Copyright 2006-2009 Daniel James. // Copyright 2022 Christian Mazakas -// Copyright 2023 Joaqui M Lopez Munoz +// Copyright 2023 Joaquin M Lopez Munoz // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) From b0195297f096c0477242bce98f4dd6209cfd0a12 Mon Sep 17 00:00:00 2001 From: joaquintides Date: Fri, 18 Aug 2023 21:07:58 +0200 Subject: [PATCH 29/31] simplified dtor call, s/&/boost::addressof --- include/boost/unordered/detail/archive_constructed.hpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/include/boost/unordered/detail/archive_constructed.hpp b/include/boost/unordered/detail/archive_constructed.hpp index b7f59aac..8d01d5d4 100644 --- a/include/boost/unordered/detail/archive_constructed.hpp +++ b/include/boost/unordered/detail/archive_constructed.hpp @@ -10,6 +10,7 @@ #define BOOST_UNORDERED_DETAIL_ARCHIVE_CONSTRUCTED_HPP #include +#include #include #include #include @@ -28,12 +29,12 @@ struct archive_constructed:private noncopyable template archive_constructed(const char* name,Archive& ar,unsigned int version) { - core::load_construct_data_adl(ar,&get(),version); + core::load_construct_data_adl(ar,boost::addressof(get()),version); BOOST_TRY{ ar>>core::make_nvp(name,get()); } BOOST_CATCH(...){ - (&get())->~T(); + get().~T(); BOOST_RETHROW; } BOOST_CATCH_END @@ -41,7 +42,7 @@ struct archive_constructed:private noncopyable ~archive_constructed() { - (&get())->~T(); + get().~T(); } #if defined(BOOST_GCC)&&(BOOST_GCC>=4*10000+6*100) From d007a5a7bdc67d23e128a48dda84f0600d1e7cd6 Mon Sep 17 00:00:00 2001 From: joaquintides Date: Fri, 25 Aug 2023 11:34:39 +0200 Subject: [PATCH 30/31] renamed serialize_node_pointer as serialize_tracked_address (editorial) --- include/boost/unordered/detail/fca.hpp | 10 +-- include/boost/unordered/detail/foa/table.hpp | 10 +-- .../boost/unordered/detail/implementation.hpp | 10 +-- .../unordered/detail/serialize_container.hpp | 8 +-- ...nter.hpp => serialize_tracked_address.hpp} | 64 +++++++++---------- 5 files changed, 50 insertions(+), 52 deletions(-) rename include/boost/unordered/detail/{serialize_node_pointer.hpp => serialize_tracked_address.hpp} (50%) diff --git a/include/boost/unordered/detail/fca.hpp b/include/boost/unordered/detail/fca.hpp index 4a0cada1..b2012f15 100644 --- a/include/boost/unordered/detail/fca.hpp +++ b/include/boost/unordered/detail/fca.hpp @@ -114,7 +114,7 @@ to normal separate chaining implementations. */ #include -#include +#include #include #include @@ -295,8 +295,8 @@ namespace boost { Archive& ar, grouped_bucket_iterator const& x) { // requires: not at end() position - track_node_pointer(ar, x.p); - track_node_pointer(ar, x.pbg); + track_address(ar, x.p); + track_address(ar, x.pbg); } friend class boost::serialization::access; @@ -305,8 +305,8 @@ namespace boost { void serialize(Archive& ar,unsigned int) { // requires: not at end() position - serialize_node_pointer(ar, p); - serialize_node_pointer(ar, pbg); + serialize_tracked_address(ar, p); + serialize_tracked_address(ar, pbg); } }; diff --git a/include/boost/unordered/detail/foa/table.hpp b/include/boost/unordered/detail/foa/table.hpp index 8764b47b..fb883011 100644 --- a/include/boost/unordered/detail/foa/table.hpp +++ b/include/boost/unordered/detail/foa/table.hpp @@ -17,7 +17,7 @@ #include #include #include -#include +#include #include #include #include @@ -201,8 +201,8 @@ private: friend void serialization_track(Archive& ar,const table_iterator& x) { if(x.p){ - track_node_pointer(ar,x.pc); - track_node_pointer(ar,x.p); + track_address(ar,x.pc); + track_address(ar,x.p); } } @@ -212,8 +212,8 @@ private: void serialize(Archive& ar,unsigned int) { if(!p)pc=nullptr; - serialize_node_pointer(ar,pc); - serialize_node_pointer(ar,p); + serialize_tracked_address(ar,pc); + serialize_tracked_address(ar,p); } unsigned char *pc=nullptr; diff --git a/include/boost/unordered/detail/implementation.hpp b/include/boost/unordered/detail/implementation.hpp index a26fc1f3..f94caa65 100644 --- a/include/boost/unordered/detail/implementation.hpp +++ b/include/boost/unordered/detail/implementation.hpp @@ -48,7 +48,7 @@ #include #include #include -#include +#include #include #include #include @@ -1710,7 +1710,7 @@ namespace boost { friend void serialization_track(Archive& ar, const iterator& x) { if(x.p){ - track_node_pointer(ar, x.p); + track_address(ar, x.p); serialization_track(ar, x.itb); } } @@ -1721,7 +1721,7 @@ namespace boost { void serialize(Archive& ar,unsigned int) { if(!p) itb = bucket_iterator(); - serialize_node_pointer(ar, p); + serialize_tracked_address(ar, p); ar & core::make_nvp("bucket_iterator", itb); } }; @@ -1819,7 +1819,7 @@ namespace boost { friend void serialization_track(Archive& ar, const c_iterator& x) { if(x.p){ - track_node_pointer(ar, x.p); + track_address(ar, x.p); serialization_track(ar, x.itb); } } @@ -1830,7 +1830,7 @@ namespace boost { void serialize(Archive& ar,unsigned int) { if(!p) itb = bucket_iterator(); - serialize_node_pointer(ar, p); + serialize_tracked_address(ar, p); ar & core::make_nvp("bucket_iterator", itb); } }; diff --git a/include/boost/unordered/detail/serialize_container.hpp b/include/boost/unordered/detail/serialize_container.hpp index 76506c6f..9b8c896d 100644 --- a/include/boost/unordered/detail/serialize_container.hpp +++ b/include/boost/unordered/detail/serialize_container.hpp @@ -29,12 +29,12 @@ namespace detail{ * through the following protocol: * - At saving time, for each iterator it in [x.begin(),x.end()), * serialization_track(ar,it) is ADL-called to instruct the archive to - * track the addresses of the iterator's associated node(s) via - * track_node_pointer(). + * track the positions internally pointed to by the iterator via + * track_address(). * - At loading time, these addresses are mapped to those of the equivalent - * reconstructed nodes using again serialization_track(ar,it). + * reconstructed positions using again serialization_track(ar,it). * - Serializing an iterator reduces to serializing pointers to previously - * tracked nodes via serialize_node_pointer(). + * tracked addresses via serialize_address(). */ template diff --git a/include/boost/unordered/detail/serialize_node_pointer.hpp b/include/boost/unordered/detail/serialize_tracked_address.hpp similarity index 50% rename from include/boost/unordered/detail/serialize_node_pointer.hpp rename to include/boost/unordered/detail/serialize_tracked_address.hpp index 95f37cb3..6d7d08ab 100644 --- a/include/boost/unordered/detail/serialize_node_pointer.hpp +++ b/include/boost/unordered/detail/serialize_tracked_address.hpp @@ -6,8 +6,8 @@ * See https://www.boost.org/libs/unordered for library home page. */ -#ifndef BOOST_UNORDERED_DETAIL_SERIALIZE_NODE_POINTER_HPP -#define BOOST_UNORDERED_DETAIL_SERIALIZE_NODE_POINTER_HPP +#ifndef BOOST_UNORDERED_DETAIL_SERIALIZE_TRACKED_ADDRESS_HPP +#define BOOST_UNORDERED_DETAIL_SERIALIZE_TRACKED_ADDRESS_HPP #include #include @@ -20,19 +20,19 @@ namespace boost{ namespace unordered{ namespace detail{ -/* Node pointer serialization to support iterator serialization as described +/* Tracked address serialization to support iterator serialization as described * in serialize_container.hpp. The underlying technique is to reinterpret_cast - * Node pointers to serialization_tracker pointers, which, when - * dereferenced and serialized, do not emit any serialization payload to the + * T pointers to serialization_tracker pointers, which, when dereferenced + * and serialized, do not emit any serialization payload to the * archive, but activate object tracking on the relevant addresses for later - * use with serialize_node_pointer(). + * use with serialize_tracked_address(). */ -template +template struct serialization_tracker { /* An attempt to construct a serialization_tracker means a stray address - * in the archive, that is, one without a previously tracked node. + * in the archive, that is, one without a previously tracked address. */ serialization_tracker(){throw_exception(bad_archive_exception());} @@ -40,60 +40,58 @@ struct serialization_tracker void serialize(Archive&,unsigned int){} /* no data emitted */ }; -template -void track_node_pointer(Archive& ar,NodePtr p) +template +void track_address(Archive& ar,Ptr p) { - typedef typename boost::pointer_traits ptr_traits; + typedef typename boost::pointer_traits ptr_traits; typedef typename boost::remove_const< - typename ptr_traits::element_type>::type node_type; + typename ptr_traits::element_type>::type element_type; if(p){ ar&core::make_nvp( - "node", - *reinterpret_cast*>( - const_cast( + "address", + *reinterpret_cast*>( + const_cast( boost::to_address(p)))); } } -template -void serialize_node_pointer( - Archive& ar,NodePtr& p,boost::true_type /* save */) +template +void serialize_tracked_address(Archive& ar,Ptr& p,boost::true_type /* save */) { - typedef typename boost::pointer_traits ptr_traits; + typedef typename boost::pointer_traits ptr_traits; typedef typename boost::remove_const< - typename ptr_traits::element_type>::type node_type; - typedef serialization_tracker tracker; + typename ptr_traits::element_type>::type element_type; + typedef serialization_tracker tracker; tracker* pt= const_cast( reinterpret_cast( - const_cast( + const_cast( boost::to_address(p)))); ar< -void serialize_node_pointer( - Archive& ar,NodePtr& p,boost::false_type /* load */) +template +void serialize_tracked_address(Archive& ar,Ptr& p,boost::false_type /* load */) { - typedef typename boost::pointer_traits ptr_traits; + typedef typename boost::pointer_traits ptr_traits; typedef typename boost::remove_const< - typename ptr_traits::element_type>::type node_type; - typedef serialization_tracker tracker; + typename ptr_traits::element_type>::type element_type; + typedef serialization_tracker tracker; tracker* pt; ar>>core::make_nvp("pointer",pt); - node_type* pn=const_cast( - reinterpret_cast( + element_type* pn=const_cast( + reinterpret_cast( const_cast(pt))); p=pn?ptr_traits::pointer_to(*pn):0; } -template -void serialize_node_pointer(Archive& ar,NodePtr& p) +template +void serialize_tracked_address(Archive& ar,Ptr& p) { - serialize_node_pointer( + serialize_tracked_address( ar,p, boost::integral_constant()); } From ca2a46f290b28eec6672292fbf347f6d192c5a1c Mon Sep 17 00:00:00 2001 From: joaquintides Date: Fri, 25 Aug 2023 19:45:16 +0200 Subject: [PATCH 31/31] complied with https://github.com/boostorg/core/commit/5f6fe65 --- include/boost/unordered/detail/fca.hpp | 4 ++-- include/boost/unordered/detail/implementation.hpp | 12 ++++++------ include/boost/unordered/unordered_map.hpp | 10 +++++----- include/boost/unordered/unordered_set.hpp | 10 +++++----- test/unordered/compile_tests.hpp | 8 ++++---- test/unordered/serialization_tests.cpp | 5 +++++ 6 files changed, 27 insertions(+), 22 deletions(-) diff --git a/include/boost/unordered/detail/fca.hpp b/include/boost/unordered/detail/fca.hpp index b2012f15..2a4167dc 100644 --- a/include/boost/unordered/detail/fca.hpp +++ b/include/boost/unordered/detail/fca.hpp @@ -120,12 +120,12 @@ to normal separate chaining implementations. #include #include #include +#include #include #include #include #include #include -#include #include #include @@ -651,7 +651,7 @@ namespace boost { bool b = boost::allocator_propagate_on_container_swap< allocator_type>::type::value; if (b) { - boost::swap(get_node_allocator(), other.get_node_allocator()); + boost::core::invoke_swap(get_node_allocator(), other.get_node_allocator()); } } diff --git a/include/boost/unordered/detail/implementation.hpp b/include/boost/unordered/detail/implementation.hpp index f94caa65..f353365c 100644 --- a/include/boost/unordered/detail/implementation.hpp +++ b/include/boost/unordered/detail/implementation.hpp @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include @@ -30,7 +31,6 @@ #include #include #include -#include #include #include #include @@ -260,8 +260,8 @@ namespace boost { void swap(compressed& x) { - boost::swap(first(), x.first()); - boost::swap(second(), x.second()); + boost::core::invoke_swap(first(), x.first()); + boost::core::invoke_swap(second(), x.second()); } private: @@ -644,7 +644,7 @@ namespace boost { move(x); } } else if (has_value_) { - boost::swap(value_.value(), x.value_.value()); + boost::core::invoke_swap(value_.value(), x.value_.value()); } } @@ -2089,7 +2089,7 @@ namespace boost { x.switch_functions(); buckets_.swap(x.buckets_); - boost::swap(size_, x.size_); + boost::core::invoke_swap(size_, x.size_); std::swap(mlf_, x.mlf_); std::swap(max_load_, x.max_load_); } @@ -2098,7 +2098,7 @@ namespace boost { void swap(table& x, true_type) { buckets_.swap(x.buckets_); - boost::swap(size_, x.size_); + boost::core::invoke_swap(size_, x.size_); std::swap(mlf_, x.mlf_); std::swap(max_load_, x.max_load_); this->current_functions().swap(x.current_functions()); diff --git a/include/boost/unordered/unordered_map.hpp b/include/boost/unordered/unordered_map.hpp index b60acb75..2a707c49 100644 --- a/include/boost/unordered/unordered_map.hpp +++ b/include/boost/unordered/unordered_map.hpp @@ -2980,9 +2980,9 @@ namespace boost { if (boost::allocator_propagate_on_container_swap< value_allocator>::type::value || !alloc_.has_value() || !n.alloc_.has_value()) { - boost::swap(alloc_, n.alloc_); + boost::core::invoke_swap(alloc_, n.alloc_); } - boost::swap(ptr_, n.ptr_); + boost::core::invoke_swap(ptr_, n.ptr_); } }; @@ -3029,9 +3029,9 @@ namespace boost { void swap(insert_return_type_map& x, insert_return_type_map& y) { - boost::swap(x.node, y.node); - boost::swap(x.inserted, y.inserted); - boost::swap(x.position, y.position); + boost::core::invoke_swap(x.node, y.node); + boost::core::invoke_swap(x.inserted, y.inserted); + boost::core::invoke_swap(x.position, y.position); } } // namespace unordered diff --git a/include/boost/unordered/unordered_set.hpp b/include/boost/unordered/unordered_set.hpp index 7ebba5a9..49bcf1ea 100644 --- a/include/boost/unordered/unordered_set.hpp +++ b/include/boost/unordered/unordered_set.hpp @@ -2327,9 +2327,9 @@ namespace boost { alloc_ == n.alloc_); if (value_allocator_traits::propagate_on_container_swap::value || !alloc_.has_value() || !n.alloc_.has_value()) { - boost::swap(alloc_, n.alloc_); + boost::core::invoke_swap(alloc_, n.alloc_); } - boost::swap(ptr_, n.ptr_); + boost::core::invoke_swap(ptr_, n.ptr_); } }; @@ -2376,9 +2376,9 @@ namespace boost { void swap( insert_return_type_set& x, insert_return_type_set& y) { - boost::swap(x.node, y.node); - boost::swap(x.inserted, y.inserted); - boost::swap(x.position, y.position); + boost::core::invoke_swap(x.node, y.node); + boost::core::invoke_swap(x.inserted, y.inserted); + boost::core::invoke_swap(x.position, y.position); } } // namespace unordered diff --git a/test/unordered/compile_tests.hpp b/test/unordered/compile_tests.hpp index 16d11f49..b2c00a54 100644 --- a/test/unordered/compile_tests.hpp +++ b/test/unordered/compile_tests.hpp @@ -18,6 +18,7 @@ #endif #include "../helpers/check_return_type.hpp" +#include #include #include #include @@ -26,7 +27,6 @@ #include #include #include -#include typedef long double comparison_type; @@ -165,7 +165,7 @@ template void container_test(X& r, T const&) X u5 = rvalue(a_const); a.swap(b); - boost::swap(a, b); + boost::core::invoke_swap(a, b); test::check_return_type::equals_ref(r = a); // Allocator @@ -254,7 +254,7 @@ template void unordered_destructible_test(X&) test::check_return_type::equals(a_const.cend()); a.swap(b); - boost::swap(a, b); + boost::core::invoke_swap(a, b); test::check_return_type::equals(a.size()); test::check_return_type::equals(a.max_size()); @@ -546,7 +546,7 @@ template void unordered_unique_test(X& r, T const& t) test::check_return_type::equals(insert_return.inserted); test::check_return_type::equals(insert_return.position); test::check_return_type::equals_ref(insert_return.node); - boost::swap(insert_return, insert_return2); + boost::core::invoke_swap(insert_return, insert_return2); #endif } diff --git a/test/unordered/serialization_tests.cpp b/test/unordered/serialization_tests.cpp index 4bb32f06..c1b3fc7b 100644 --- a/test/unordered/serialization_tests.cpp +++ b/test/unordered/serialization_tests.cpp @@ -2,6 +2,11 @@ // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// temporary #define till all transitive includes comply with +// https://github.com/boostorg/core/commit/5f6fe65 + +#define BOOST_ALLOW_DEPRECATED_HEADERS + #include "../helpers/unordered.hpp" #include "../objects/test.hpp"