diff options
| -rw-r--r-- | libstdc++-v3/testsuite/23_containers/unordered_map/96088.cc | 22 | ||||
| -rw-r--r-- | libstdc++-v3/testsuite/23_containers/unordered_set/96088.cc | 22 | 
2 files changed, 30 insertions, 14 deletions
| diff --git a/libstdc++-v3/testsuite/23_containers/unordered_map/96088.cc b/libstdc++-v3/testsuite/23_containers/unordered_map/96088.cc index e552b04..83ca1c0 100644 --- a/libstdc++-v3/testsuite/23_containers/unordered_map/96088.cc +++ b/libstdc++-v3/testsuite/23_containers/unordered_map/96088.cc @@ -222,7 +222,8 @@ test03()    std::vector<std::pair<std::string, int>> v;    v.insert(v.end(), lst.begin(), lst.end()); -  auto __offset = __gnu_test::counter::count(); +  const auto origin = __gnu_test::counter::count(); +    {      __gnu_test::counter::reset();      std::unordered_map<std::string, int, @@ -231,15 +232,19 @@ test03()      um.insert(v.begin(), v.end());      VERIFY( um.size() == 1 ); -    VERIFY( __gnu_test::counter::count() - __offset == 3 ); -    VERIFY( __gnu_test::counter::get()._M_increments == 3 ); +    // Allocate array of buckets, a node, and the std::string (unless COW). +    constexpr std::size_t increments = _GLIBCXX_USE_CXX11_ABI ? 3 : 2; + +    VERIFY( __gnu_test::counter::count() == origin + increments ); +    VERIFY( __gnu_test::counter::get()._M_increments == increments );      um.insert(v.begin(), v.end());      VERIFY( um.size() == 1 ); -    VERIFY( __gnu_test::counter::count() - __offset == 3 ); -    VERIFY( __gnu_test::counter::get()._M_increments == 3 ); +    VERIFY( __gnu_test::counter::count() == origin + increments ); +    VERIFY( __gnu_test::counter::get()._M_increments == increments );    } +  VERIFY( __gnu_test::counter::count() == origin );    {      __gnu_test::counter::reset(); @@ -250,8 +255,11 @@ test03()  	      std::make_move_iterator(v.end()));      VERIFY( um.size() == 1 ); -    VERIFY( __gnu_test::counter::count() - __offset == 2 ); -    VERIFY( __gnu_test::counter::get()._M_increments == 2 ); +    // Allocate array of buckets and a node. String is moved. +    constexpr std::size_t increments = 2; + +    VERIFY( __gnu_test::counter::count() == origin + increments ); +    VERIFY( __gnu_test::counter::get()._M_increments == increments );    }  } diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/96088.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/96088.cc index efb2f9e..83d5475 100644 --- a/libstdc++-v3/testsuite/23_containers/unordered_set/96088.cc +++ b/libstdc++-v3/testsuite/23_containers/unordered_set/96088.cc @@ -223,7 +223,8 @@ test03()    std::vector<std::string> v;    v.insert(v.end(), lst.begin(), lst.end()); -  auto __offset = __gnu_test::counter::count(); +  const auto origin = __gnu_test::counter::count(); +    {      __gnu_test::counter::reset();      std::unordered_set<std::string, @@ -232,15 +233,19 @@ test03()      us.insert(v.begin(), v.end());      VERIFY( us.size() == 1 ); -    VERIFY( __gnu_test::counter::count() - __offset == 3 ); -    VERIFY( __gnu_test::counter::get()._M_increments == 3 ); +    // Allocate array of buckets, a node, and the std::string (unless COW). +    constexpr std::size_t increments = _GLIBCXX_USE_CXX11_ABI ? 3 : 2; + +    VERIFY( __gnu_test::counter::count() == origin + increments ); +    VERIFY( __gnu_test::counter::get()._M_increments == increments );      us.insert(v.begin(), v.end());      VERIFY( us.size() == 1 ); -    VERIFY( __gnu_test::counter::count() - __offset == 3 ); -    VERIFY( __gnu_test::counter::get()._M_increments == 3 ); +    VERIFY( __gnu_test::counter::count() == origin + increments ); +    VERIFY( __gnu_test::counter::get()._M_increments == increments );    } +  VERIFY( __gnu_test::counter::count() == origin );    {      __gnu_test::counter::reset(); @@ -251,8 +256,11 @@ test03()  	      std::make_move_iterator(v.end()));      VERIFY( us.size() == 1 ); -    VERIFY( __gnu_test::counter::count() - __offset == 2 ); -    VERIFY( __gnu_test::counter::get()._M_increments == 2 ); +    // Allocate array of buckets and a node. String is moved. +    constexpr std::size_t increments = 2; + +    VERIFY( __gnu_test::counter::count() == origin + increments ); +    VERIFY( __gnu_test::counter::get()._M_increments == increments );    }  } | 
