From 36dfec2f333094ddd51276f76cf53aa58eb6b593 Mon Sep 17 00:00:00 2001 From: khizmax Date: Thu, 7 Apr 2016 00:35:43 +0300 Subject: [PATCH] Migrated StripedMap unit test to gtest framework --- projects/Win/vc14/gtest-striped-map.vcxproj | 6 ++ .../vc14/gtest-striped-map.vcxproj.filters | 18 +++++ test/unit/striped-map/CMakeLists.txt | 6 ++ test/unit/striped-map/map_boost_flat_map.cpp | 73 +++++++++++++++++++ test/unit/striped-map/map_boost_list.cpp | 69 ++++++++++++++++++ test/unit/striped-map/map_boost_map.cpp | 73 +++++++++++++++++++ test/unit/striped-map/map_boost_slist.cpp | 69 ++++++++++++++++++ .../striped-map/map_boost_unordered_map.cpp | 64 ++++++++++++++++ .../striped-map/map_std_unordered_map.cpp | 60 +++++++++++++++ test/unit/striped-map/test_striped_map.h | 2 - 10 files changed, 438 insertions(+), 2 deletions(-) create mode 100644 test/unit/striped-map/map_boost_flat_map.cpp create mode 100644 test/unit/striped-map/map_boost_list.cpp create mode 100644 test/unit/striped-map/map_boost_map.cpp create mode 100644 test/unit/striped-map/map_boost_slist.cpp create mode 100644 test/unit/striped-map/map_boost_unordered_map.cpp create mode 100644 test/unit/striped-map/map_std_unordered_map.cpp diff --git a/projects/Win/vc14/gtest-striped-map.vcxproj b/projects/Win/vc14/gtest-striped-map.vcxproj index f8eee533..dfd13506 100644 --- a/projects/Win/vc14/gtest-striped-map.vcxproj +++ b/projects/Win/vc14/gtest-striped-map.vcxproj @@ -42,8 +42,14 @@ CDSUNIT_ENABLE_BOOST_CONTAINER;_SCL_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) CDSUNIT_ENABLE_BOOST_CONTAINER;_SCL_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + + + + diff --git a/projects/Win/vc14/gtest-striped-map.vcxproj.filters b/projects/Win/vc14/gtest-striped-map.vcxproj.filters index c61d1edd..97797d16 100644 --- a/projects/Win/vc14/gtest-striped-map.vcxproj.filters +++ b/projects/Win/vc14/gtest-striped-map.vcxproj.filters @@ -27,6 +27,24 @@ Source Files + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + diff --git a/test/unit/striped-map/CMakeLists.txt b/test/unit/striped-map/CMakeLists.txt index 420f07a5..6b1ddc5f 100644 --- a/test/unit/striped-map/CMakeLists.txt +++ b/test/unit/striped-map/CMakeLists.txt @@ -5,8 +5,14 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DCDSUNIT_ENABLE_BOOST_CONTAINER") set(CDSGTEST_STRIPED_MAP_SOURCES ../main.cpp cuckoo_map.cpp + map_boost_flat_map.cpp + map_boost_list.cpp + map_boost_map.cpp + map_boost_slist.cpp + map_boost_unordered_map.cpp map_std_list.cpp map_std_map.cpp + map_std_unordered_map.cpp ) include_directories( diff --git a/test/unit/striped-map/map_boost_flat_map.cpp b/test/unit/striped-map/map_boost_flat_map.cpp new file mode 100644 index 00000000..ebe19431 --- /dev/null +++ b/test/unit/striped-map/map_boost_flat_map.cpp @@ -0,0 +1,73 @@ +/* + This file is a part of libcds - Concurrent Data Structures library + + (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016 + + Source code repo: http://github.com/khizmax/libcds/ + Download: http://sourceforge.net/projects/libcds/files/ + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifdef CDSUNIT_ENABLE_BOOST_CONTAINER + +#include +#include +#if CDS_COMPILER == CDS_COMPILER_MSVC && CDS_COMPILER_VERSION == CDS_COMPILER_MSVC12 && BOOST_VERSION < 105500 + // Skipped; for Microsoft Visual C++ 2013 and boost::container::flat_map you should use boost version 1.55 or above" ); +#elif BOOST_VERSION >= 104800 + +#include +#include "test_striped_map.h" + +namespace { + struct test_traits + { + typedef boost::container::flat_map< + cds_test::striped_map_fixture::key_type, + cds_test::striped_map_fixture::value_type, + cds_test::striped_map_fixture::less + > container_type; + + struct copy_policy { + typedef container_type::iterator iterator; + + void operator()( container_type& m, iterator /*itInsert*/, iterator itWhat ) + { + m.insert( *itWhat ); + } + }; + + static bool const c_hasFindWith = false; + static bool const c_hasEraseWith = false; + }; + + INSTANTIATE_TYPED_TEST_CASE_P( BoostFlatMap, StripedMap, test_traits ); + INSTANTIATE_TYPED_TEST_CASE_P( BoostFlatMap, RefinableMap, test_traits ); + +} // namespace + +#else // BOOST_VERSION < 104800 +// Skipped; for boost::container::flat_map you should use boost version 1.48 or above +#endif // BOOST_VERSION + +#endif // #ifdef CDSUNIT_ENABLE_BOOST_CONTAINER diff --git a/test/unit/striped-map/map_boost_list.cpp b/test/unit/striped-map/map_boost_list.cpp new file mode 100644 index 00000000..1eeed5ed --- /dev/null +++ b/test/unit/striped-map/map_boost_list.cpp @@ -0,0 +1,69 @@ +/* + This file is a part of libcds - Concurrent Data Structures library + + (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016 + + Source code repo: http://github.com/khizmax/libcds/ + Download: http://sourceforge.net/projects/libcds/files/ + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifdef CDSUNIT_ENABLE_BOOST_CONTAINER + +#include +#include +#if CDS_COMPILER == CDS_COMPILER_MSVC && CDS_COMPILER_VERSION == CDS_COMPILER_MSVC12 && BOOST_VERSION < 105500 + // Skipped; for Microsoft Visual C++ 2013 and boost::container::list you should use boost version 1.55 or above" ); +#elif BOOST_VERSION >= 104800 + +#include +#include "test_striped_map.h" + +namespace { + struct test_traits + { + typedef boost::container::list< std::pair< cds_test::striped_map_fixture::key_type const, cds_test::striped_map_fixture::value_type >> container_type; + + struct copy_policy { + typedef container_type::iterator iterator; + + void operator()( container_type& list, iterator itInsert, iterator itWhat ) + { + list.insert( itInsert, *itWhat ); + } + }; + + static bool const c_hasFindWith = true; + static bool const c_hasEraseWith = true; + }; + + INSTANTIATE_TYPED_TEST_CASE_P( BoostList, StripedMap, test_traits ); + INSTANTIATE_TYPED_TEST_CASE_P( BoostList, RefinableMap, test_traits ); + +} // namespace + +#else // BOOST_VERSION < 104800 +// Skipped; for boost::container::list you should use boost version 1.48 or above +#endif // BOOST_VERSION + +#endif // #ifdef CDSUNIT_ENABLE_BOOST_CONTAINER diff --git a/test/unit/striped-map/map_boost_map.cpp b/test/unit/striped-map/map_boost_map.cpp new file mode 100644 index 00000000..435998a5 --- /dev/null +++ b/test/unit/striped-map/map_boost_map.cpp @@ -0,0 +1,73 @@ +/* + This file is a part of libcds - Concurrent Data Structures library + + (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016 + + Source code repo: http://github.com/khizmax/libcds/ + Download: http://sourceforge.net/projects/libcds/files/ + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifdef CDSUNIT_ENABLE_BOOST_CONTAINER + +#include +#include +#if CDS_COMPILER == CDS_COMPILER_MSVC && CDS_COMPILER_VERSION == CDS_COMPILER_MSVC12 && BOOST_VERSION < 105500 + // Skipped; for Microsoft Visual C++ 2013 and boost::container::map you should use boost version 1.55 or above" ); +#elif BOOST_VERSION >= 104800 + +#include +#include "test_striped_map.h" + +namespace { + struct test_traits + { + typedef boost::container::map< + cds_test::striped_map_fixture::key_type, + cds_test::striped_map_fixture::value_type, + cds_test::striped_map_fixture::less + > container_type; + + struct copy_policy { + typedef container_type::iterator iterator; + + void operator()( container_type& map, iterator itWhat ) + { + map.insert( *itWhat ); + } + }; + + static bool const c_hasFindWith = false; + static bool const c_hasEraseWith = false; + }; + + INSTANTIATE_TYPED_TEST_CASE_P( BoostMap, StripedMap, test_traits ); + INSTANTIATE_TYPED_TEST_CASE_P( BoostMap, RefinableMap, test_traits ); + +} // namespace + +#else // BOOST_VERSION < 104800 +// Skipped; for boost::container::map you should use boost version 1.48 or above +#endif // BOOST_VERSION + +#endif // #ifdef CDSUNIT_ENABLE_BOOST_CONTAINER diff --git a/test/unit/striped-map/map_boost_slist.cpp b/test/unit/striped-map/map_boost_slist.cpp new file mode 100644 index 00000000..4d069dd3 --- /dev/null +++ b/test/unit/striped-map/map_boost_slist.cpp @@ -0,0 +1,69 @@ +/* + This file is a part of libcds - Concurrent Data Structures library + + (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016 + + Source code repo: http://github.com/khizmax/libcds/ + Download: http://sourceforge.net/projects/libcds/files/ + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifdef CDSUNIT_ENABLE_BOOST_CONTAINER + +#include +#include +#if CDS_COMPILER == CDS_COMPILER_MSVC && CDS_COMPILER_VERSION == CDS_COMPILER_MSVC12 && BOOST_VERSION < 105500 + // Skipped; for Microsoft Visual C++ 2013 and boost::container::slist you should use boost version 1.55 or above" ); +#elif BOOST_VERSION >= 104800 + +#include +#include "test_striped_map.h" + +namespace { + struct test_traits + { + typedef boost::container::slist< std::pair< cds_test::striped_map_fixture::key_type const, cds_test::striped_map_fixture::value_type >> container_type; + + struct copy_policy { + typedef container_type::iterator iterator; + + void operator()( container_type& list, iterator itInsert, iterator itWhat ) + { + list.insert_after( itInsert, *itWhat ); + } + }; + + static bool const c_hasFindWith = true; + static bool const c_hasEraseWith = true; + }; + + INSTANTIATE_TYPED_TEST_CASE_P( BoostSList, StripedMap, test_traits ); + INSTANTIATE_TYPED_TEST_CASE_P( BoostSList, RefinableMap, test_traits ); + +} // namespace + +#else // BOOST_VERSION < 104800 +// Skipped; for boost::container::slist you should use boost version 1.48 or above +#endif // BOOST_VERSION + +#endif // #ifdef CDSUNIT_ENABLE_BOOST_CONTAINER diff --git a/test/unit/striped-map/map_boost_unordered_map.cpp b/test/unit/striped-map/map_boost_unordered_map.cpp new file mode 100644 index 00000000..40f98fdd --- /dev/null +++ b/test/unit/striped-map/map_boost_unordered_map.cpp @@ -0,0 +1,64 @@ +/* + This file is a part of libcds - Concurrent Data Structures library + + (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016 + + Source code repo: http://github.com/khizmax/libcds/ + Download: http://sourceforge.net/projects/libcds/files/ + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifdef CDSUNIT_ENABLE_BOOST_CONTAINER + +#include +#include "test_striped_map.h" + +namespace { + struct test_traits + { + typedef boost::unordered_map< + cds_test::striped_map_fixture::key_type + ,cds_test::striped_map_fixture::value_type + ,cds_test::striped_map_fixture::hash2 + ,cds_test::striped_map_fixture::equal_to + > container_type; + + struct copy_policy { + typedef container_type::iterator iterator; + + void operator()( container_type& m, iterator /*itInsert*/, iterator itWhat ) + { + m.insert( *itWhat ); + } + }; + + static bool const c_hasFindWith = false; + static bool const c_hasEraseWith = false; + }; + + INSTANTIATE_TYPED_TEST_CASE_P( BoostUnorderedMap, StripedMap, test_traits ); + INSTANTIATE_TYPED_TEST_CASE_P( BoostUnorderedMap, RefinableMap, test_traits ); + +} // namespace + +#endif // #ifdef CDSUNIT_ENABLE_BOOST_CONTAINER diff --git a/test/unit/striped-map/map_std_unordered_map.cpp b/test/unit/striped-map/map_std_unordered_map.cpp new file mode 100644 index 00000000..df07d72d --- /dev/null +++ b/test/unit/striped-map/map_std_unordered_map.cpp @@ -0,0 +1,60 @@ +/* + This file is a part of libcds - Concurrent Data Structures library + + (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016 + + Source code repo: http://github.com/khizmax/libcds/ + Download: http://sourceforge.net/projects/libcds/files/ + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#include +#include "test_striped_map.h" + +namespace { + struct test_traits + { + typedef std::unordered_map< + cds_test::striped_map_fixture::key_type + , cds_test::striped_map_fixture::value_type + , cds_test::striped_map_fixture::hash2 + , cds_test::striped_map_fixture::equal_to + > container_type; + + struct copy_policy { + typedef container_type::iterator iterator; + + void operator()( container_type& m, iterator /*itInsert*/, iterator itWhat ) + { + m.insert( std::make_pair( itWhat->first, itWhat->second )); + } + }; + + static bool const c_hasFindWith = false; + static bool const c_hasEraseWith = false; + }; + + INSTANTIATE_TYPED_TEST_CASE_P( StdUnorderedMap, StripedMap, test_traits ); + INSTANTIATE_TYPED_TEST_CASE_P( StdUnorderedMap, RefinableMap, test_traits ); + +} // namespace diff --git a/test/unit/striped-map/test_striped_map.h b/test/unit/striped-map/test_striped_map.h index b39acb43..b5ad0c05 100644 --- a/test/unit/striped-map/test_striped_map.h +++ b/test/unit/striped-map/test_striped_map.h @@ -319,7 +319,6 @@ namespace { ASSERT_TRUE( str.empty()); str = val.strVal; ASSERT_FALSE( m.emplace( i, std::move( str ))); - ASSERT_TRUE( str.empty()); } break; case 15: @@ -329,7 +328,6 @@ namespace { ASSERT_TRUE( str.empty()); str = val.strVal; ASSERT_FALSE( m.emplace( i, i.nKey, std::move( str ))); - ASSERT_TRUE( str.empty()); } break; } -- 2.34.1