mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
Remove loops from Dict iterator invalidation unit test
This fixes Coverity finding 1490366
This commit is contained in:
parent
ba968434e4
commit
035c543e9f
1 changed files with 18 additions and 24 deletions
42
src/Dict.cc
42
src/Dict.cc
|
@ -350,33 +350,27 @@ TEST_CASE("dict iterator invalidation")
|
|||
detail::HashKey* it_key;
|
||||
bool iterators_invalidated = false;
|
||||
|
||||
for ( auto it = dict.begin(); it != dict.end(); ++it )
|
||||
{
|
||||
iterators_invalidated = false;
|
||||
dict.Remove(key3, &iterators_invalidated);
|
||||
// Key doesn't exist, nothing to remove, iteration not invalidated.
|
||||
CHECK(! iterators_invalidated);
|
||||
auto it = dict.begin();
|
||||
iterators_invalidated = false;
|
||||
dict.Remove(key3, &iterators_invalidated);
|
||||
// Key doesn't exist, nothing to remove, iteration not invalidated.
|
||||
CHECK(! iterators_invalidated);
|
||||
|
||||
iterators_invalidated = false;
|
||||
dict.Insert(key, &val2, &iterators_invalidated);
|
||||
// Key exists, value gets overwritten, iteration not invalidated.
|
||||
CHECK(! iterators_invalidated);
|
||||
iterators_invalidated = false;
|
||||
dict.Insert(key, &val2, &iterators_invalidated);
|
||||
// Key exists, value gets overwritten, iteration not invalidated.
|
||||
CHECK(! iterators_invalidated);
|
||||
|
||||
iterators_invalidated = false;
|
||||
dict.Remove(key2, &iterators_invalidated);
|
||||
// Key exists, gets removed, iteration is invalidated.
|
||||
CHECK(iterators_invalidated);
|
||||
break;
|
||||
}
|
||||
iterators_invalidated = false;
|
||||
dict.Remove(key2, &iterators_invalidated);
|
||||
// Key exists, gets removed, iteration is invalidated.
|
||||
CHECK(iterators_invalidated);
|
||||
|
||||
for ( auto it = dict.begin(); it != dict.end(); ++it )
|
||||
{
|
||||
iterators_invalidated = false;
|
||||
dict.Insert(key3, &val3, &iterators_invalidated);
|
||||
// Key doesn't exist, gets inserted, iteration is invalidated.
|
||||
CHECK(iterators_invalidated);
|
||||
break;
|
||||
}
|
||||
it = dict.begin();
|
||||
iterators_invalidated = false;
|
||||
dict.Insert(key3, &val3, &iterators_invalidated);
|
||||
// Key doesn't exist, gets inserted, iteration is invalidated.
|
||||
CHECK(iterators_invalidated);
|
||||
|
||||
CHECK(dict.Length() == 2);
|
||||
CHECK(*static_cast<uint32_t*>(dict.Lookup(key)) == val2);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue