aboutsummaryrefslogtreecommitdiff
path: root/icing/index/numeric/integer-index-storage_benchmark.cc
diff options
context:
space:
mode:
Diffstat (limited to 'icing/index/numeric/integer-index-storage_benchmark.cc')
-rw-r--r--icing/index/numeric/integer-index-storage_benchmark.cc17
1 files changed, 12 insertions, 5 deletions
diff --git a/icing/index/numeric/integer-index-storage_benchmark.cc b/icing/index/numeric/integer-index-storage_benchmark.cc
index d150f2d..54b19c3 100644
--- a/icing/index/numeric/integer-index-storage_benchmark.cc
+++ b/icing/index/numeric/integer-index-storage_benchmark.cc
@@ -57,6 +57,7 @@ namespace lib {
namespace {
using ::testing::Eq;
+using ::testing::IsEmpty;
using ::testing::SizeIs;
static constexpr SectionId kDefaultSectionId = 12;
@@ -237,18 +238,24 @@ void BM_ExactQuery(benchmark::State& state) {
std::unique_ptr<DocHitInfoIterator> iterator,
storage->GetIterator(/*query_key_lower=*/exact_query_key,
/*query_key_upper=*/exact_query_key));
- int cnt = 0;
+ std::vector<DocHitInfo> data;
while (iterator->Advance().ok()) {
- benchmark::DoNotOptimize(iterator->doc_hit_info());
- ++cnt;
+ data.push_back(iterator->doc_hit_info());
}
+ state.PauseTiming();
const auto it = keys.find(exact_query_key);
if (it == keys.end()) {
- ASSERT_THAT(cnt, Eq(0));
+ ASSERT_THAT(data, IsEmpty());
} else {
- ASSERT_THAT(it->second, SizeIs(cnt));
+ ASSERT_THAT(data, SizeIs(it->second.size()));
+ std::reverse(data.begin(), data.end());
+ for (int i = 0; i < data.size(); ++i) {
+ ASSERT_THAT(data[i].document_id(), Eq(it->second[i]));
+ ASSERT_THAT(data[i].hit_section_ids_mask(), Eq(1 << kDefaultSectionId));
+ }
}
+ state.ResumeTiming();
}
}
BENCHMARK(BM_ExactQuery)