From: Radoslaw Zarzynski Date: Fri, 7 Oct 2022 17:49:02 +0000 (+0000) Subject: test/crimson: unittest-seastar uses omap_get_values() instead of OmapIterator X-Git-Tag: v18.1.0~1050^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=5717ee789c68f43d8348e771505d263ea8fe09d3;p=ceph.git test/crimson: unittest-seastar uses omap_get_values() instead of OmapIterator Signed-off-by: Radoslaw Zarzynski --- diff --git a/src/test/crimson/seastore/test_seastore.cc b/src/test/crimson/seastore/test_seastore.cc index c61fc8e5cafa..a2e450de4ae2 100644 --- a/src/test/crimson/seastore/test_seastore.cc +++ b/src/test/crimson/seastore/test_seastore.cc @@ -384,30 +384,41 @@ struct seastore_test_t : } void check_omap(SeaStore &seastore) { - auto iter = seastore.get_omap_iterator(coll, oid).get0(); - iter->seek_to_first().get0(); auto refiter = omap.begin(); - while (true) { - if (!iter->valid() && refiter == omap.end()) - break; - - if (!iter->valid() || refiter->first < iter->key()) { - logger().debug( - "check_omap: missing omap key {}", - refiter->first); - GTEST_FAIL() << "missing omap key " << refiter->first; - ++refiter; - } else if (refiter == omap.end() || refiter->first > iter->key()) { - logger().debug( - "check_omap: extra omap key {}", - iter->key()); - GTEST_FAIL() << "extra omap key" << iter->key(); - iter->next().get0(); - } else { - EXPECT_EQ(iter->value(), refiter->second); - iter->next().get0(); - ++refiter; - } + std::optional start; + while(true) { + auto [done, kvs] = seastore.omap_get_values( + coll, + oid, + start).unsafe_get0(); + auto iter = kvs.begin(); + while (true) { + if ((done && iter == kvs.end()) && refiter == omap.end()) { + return; // finished + } else if (!done && iter == kvs.end()) { + break; // reload kvs + } + if (iter == kvs.end() || refiter->first < iter->first) { + logger().debug( + "check_omap: missing omap key {}", + refiter->first); + GTEST_FAIL() << "missing omap key " << refiter->first; + ++refiter; + } else if (refiter == omap.end() || refiter->first > iter->first) { + logger().debug( + "check_omap: extra omap key {}", + iter->first); + GTEST_FAIL() << "extra omap key " << iter->first; + ++iter; + } else { + EXPECT_EQ(iter->second, refiter->second); + ++iter; + ++refiter; + } + } + if (!done) { + start = kvs.rbegin()->first; + } } } };