diff options
Diffstat (limited to 'icing/result/result-state-manager_test.cc')
-rw-r--r-- | icing/result/result-state-manager_test.cc | 390 |
1 files changed, 239 insertions, 151 deletions
diff --git a/icing/result/result-state-manager_test.cc b/icing/result/result-state-manager_test.cc index ce4589b..38d67e8 100644 --- a/icing/result/result-state-manager_test.cc +++ b/icing/result/result-state-manager_test.cc @@ -198,8 +198,7 @@ TEST_F(ResultStateManagerTest, ShouldCacheAndRetrieveFirstPageOnePage) { std::move(scored_document_hits), /*is_descending=*/true); ResultStateManager result_state_manager( - /*max_total_hits=*/std::numeric_limits<int>::max(), document_store(), - clock()); + /*max_total_hits=*/std::numeric_limits<int>::max(), document_store()); ICING_ASSERT_OK_AND_ASSIGN( PageResultInfo page_result_info, @@ -207,7 +206,8 @@ TEST_F(ResultStateManagerTest, ShouldCacheAndRetrieveFirstPageOnePage) { std::move(ranker), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/10, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); EXPECT_THAT(page_result_info.first, Eq(kInvalidNextPageToken)); @@ -243,8 +243,7 @@ TEST_F(ResultStateManagerTest, ShouldCacheAndRetrieveFirstPageMultiplePages) { std::move(scored_document_hits), /*is_descending=*/true); ResultStateManager result_state_manager( - /*max_total_hits=*/std::numeric_limits<int>::max(), document_store(), - clock()); + /*max_total_hits=*/std::numeric_limits<int>::max(), document_store()); // First page, 2 results ICING_ASSERT_OK_AND_ASSIGN( @@ -253,7 +252,8 @@ TEST_F(ResultStateManagerTest, ShouldCacheAndRetrieveFirstPageMultiplePages) { std::move(ranker), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/2, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); EXPECT_THAT(page_result_info1.first, Not(Eq(kInvalidNextPageToken))); ASSERT_THAT(page_result_info1.second.results, SizeIs(2)); EXPECT_THAT(page_result_info1.second.results.at(0).document(), @@ -266,7 +266,8 @@ TEST_F(ResultStateManagerTest, ShouldCacheAndRetrieveFirstPageMultiplePages) { // Second page, 2 results ICING_ASSERT_OK_AND_ASSIGN( PageResultInfo page_result_info2, - result_state_manager.GetNextPage(next_page_token, result_retriever())); + result_state_manager.GetNextPage(next_page_token, result_retriever(), + clock()->GetSystemTimeMilliseconds())); EXPECT_THAT(page_result_info2.first, Eq(next_page_token)); ASSERT_THAT(page_result_info2.second.results, SizeIs(2)); EXPECT_THAT(page_result_info2.second.results.at(0).document(), @@ -277,7 +278,8 @@ TEST_F(ResultStateManagerTest, ShouldCacheAndRetrieveFirstPageMultiplePages) { // Third page, 1 result ICING_ASSERT_OK_AND_ASSIGN( PageResultInfo page_result_info3, - result_state_manager.GetNextPage(next_page_token, result_retriever())); + result_state_manager.GetNextPage(next_page_token, result_retriever(), + clock()->GetSystemTimeMilliseconds())); EXPECT_THAT(page_result_info3.first, Eq(kInvalidNextPageToken)); ASSERT_THAT(page_result_info3.second.results, SizeIs(1)); EXPECT_THAT(page_result_info3.second.results.at(0).document(), @@ -285,28 +287,28 @@ TEST_F(ResultStateManagerTest, ShouldCacheAndRetrieveFirstPageMultiplePages) { // No results EXPECT_THAT( - result_state_manager.GetNextPage(next_page_token, result_retriever()), + result_state_manager.GetNextPage(next_page_token, result_retriever(), + clock()->GetSystemTimeMilliseconds()), StatusIs(libtextclassifier3::StatusCode::NOT_FOUND)); } TEST_F(ResultStateManagerTest, NullRankerShouldReturnError) { ResultStateManager result_state_manager( - /*max_total_hits=*/std::numeric_limits<int>::max(), document_store(), - clock()); + /*max_total_hits=*/std::numeric_limits<int>::max(), document_store()); EXPECT_THAT( result_state_manager.CacheAndRetrieveFirstPage( /*ranker=*/nullptr, /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever()), + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds()), StatusIs(libtextclassifier3::StatusCode::INVALID_ARGUMENT)); } TEST_F(ResultStateManagerTest, EmptyRankerShouldReturnEmptyFirstPage) { ResultStateManager result_state_manager( - /*max_total_hits=*/std::numeric_limits<int>::max(), document_store(), - clock()); + /*max_total_hits=*/std::numeric_limits<int>::max(), document_store()); ICING_ASSERT_OK_AND_ASSIGN( PageResultInfo page_result_info, result_state_manager.CacheAndRetrieveFirstPage( @@ -315,7 +317,8 @@ TEST_F(ResultStateManagerTest, EmptyRankerShouldReturnEmptyFirstPage) { std::vector<ScoredDocumentHit>(), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); EXPECT_THAT(page_result_info.first, Eq(kInvalidNextPageToken)); EXPECT_THAT(page_result_info.second.results, IsEmpty()); @@ -331,8 +334,7 @@ TEST_F(ResultStateManagerTest, ShouldAllowEmptyFirstPage) { {document_id2, kSectionIdMaskNone, /*score=*/1}}; ResultStateManager result_state_manager( - /*max_total_hits=*/std::numeric_limits<int>::max(), document_store(), - clock()); + /*max_total_hits=*/std::numeric_limits<int>::max(), document_store()); // Create a ResultSpec that limits "namespace" to 0 results. ResultSpecProto result_spec = @@ -352,7 +354,8 @@ TEST_F(ResultStateManagerTest, ShouldAllowEmptyFirstPage) { PriorityQueueScoredDocumentHitsRanker<ScoredDocumentHit>>( std::move(scored_document_hits), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, - result_spec, document_store(), result_retriever())); + result_spec, document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); // If the first page has no result, then it should be the last page. EXPECT_THAT(page_result_info.first, Eq(kInvalidNextPageToken)); EXPECT_THAT(page_result_info.second.results, IsEmpty()); @@ -374,8 +377,7 @@ TEST_F(ResultStateManagerTest, ShouldAllowEmptyLastPage) { {document_id4, kSectionIdMaskNone, /*score=*/1}}; ResultStateManager result_state_manager( - /*max_total_hits=*/std::numeric_limits<int>::max(), document_store(), - clock()); + /*max_total_hits=*/std::numeric_limits<int>::max(), document_store()); // Create a ResultSpec that limits "namespace" to 2 results. ResultSpecProto result_spec = @@ -395,7 +397,8 @@ TEST_F(ResultStateManagerTest, ShouldAllowEmptyLastPage) { PriorityQueueScoredDocumentHitsRanker<ScoredDocumentHit>>( std::move(scored_document_hits), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, - result_spec, document_store(), result_retriever())); + result_spec, document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); EXPECT_THAT(page_result_info1.first, Not(Eq(kInvalidNextPageToken))); ASSERT_THAT(page_result_info1.second.results, SizeIs(2)); EXPECT_THAT(page_result_info1.second.results.at(0).document(), @@ -409,7 +412,8 @@ TEST_F(ResultStateManagerTest, ShouldAllowEmptyLastPage) { // limiter, so we should get an empty page. ICING_ASSERT_OK_AND_ASSIGN( PageResultInfo page_result_info2, - result_state_manager.GetNextPage(next_page_token, result_retriever())); + result_state_manager.GetNextPage(next_page_token, result_retriever(), + clock()->GetSystemTimeMilliseconds())); EXPECT_THAT(page_result_info2.first, Eq(kInvalidNextPageToken)); EXPECT_THAT(page_result_info2.second.results, IsEmpty()); } @@ -422,8 +426,7 @@ TEST_F(ResultStateManagerTest, {/*document_id=*/3, /*document_id=*/4, /*document_id=*/5}); ResultStateManager result_state_manager( - /*max_total_hits=*/std::numeric_limits<int>::max(), document_store(), - clock()); + /*max_total_hits=*/std::numeric_limits<int>::max(), document_store()); SectionRestrictQueryTermsMap query_terms; SearchSpecProto search_spec; @@ -444,7 +447,7 @@ TEST_F(ResultStateManagerTest, result_spec, &schema_store(), query_terms), /*child_adjustment_info=*/nullptr, result_spec, document_store(), - result_retriever())); + result_retriever(), clock()->GetSystemTimeMilliseconds())); ASSERT_THAT(page_result_info1.first, Not(Eq(kInvalidNextPageToken))); // Set time as 1hr1s and add state 2. @@ -460,7 +463,7 @@ TEST_F(ResultStateManagerTest, result_spec, &schema_store(), query_terms), /*child_adjustment_info=*/nullptr, result_spec, document_store(), - result_retriever())); + result_retriever(), clock()->GetSystemTimeMilliseconds())); // Calling CacheAndRetrieveFirstPage() on state 2 should invalidate the // expired state 1 internally. @@ -470,8 +473,9 @@ TEST_F(ResultStateManagerTest, // CacheAndRetrieveFirstPage() instead of the following GetNextPage(). clock()->SetSystemTimeMilliseconds(1000); // page_result_info1's token (page_result_info1.first) shouldn't be found. - EXPECT_THAT(result_state_manager.GetNextPage(page_result_info1.first, - result_retriever()), + EXPECT_THAT(result_state_manager.GetNextPage( + page_result_info1.first, result_retriever(), + clock()->GetSystemTimeMilliseconds()), StatusIs(libtextclassifier3::StatusCode::NOT_FOUND)); } @@ -483,8 +487,7 @@ TEST_F(ResultStateManagerTest, {/*document_id=*/3, /*document_id=*/4, /*document_id=*/5}); ResultStateManager result_state_manager( - /*max_total_hits=*/std::numeric_limits<int>::max(), document_store(), - clock()); + /*max_total_hits=*/std::numeric_limits<int>::max(), document_store()); // Set time as 1s and add state 1. clock()->SetSystemTimeMilliseconds(1000); @@ -496,7 +499,8 @@ TEST_F(ResultStateManagerTest, std::move(scored_document_hits1), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); ASSERT_THAT(page_result_info1.first, Not(Eq(kInvalidNextPageToken))); // Set time as 2s and add state 2. @@ -509,7 +513,8 @@ TEST_F(ResultStateManagerTest, std::move(scored_document_hits2), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); ASSERT_THAT(page_result_info2.first, Not(Eq(kInvalidNextPageToken))); // 1. Set time as 1hr1s. @@ -520,14 +525,16 @@ TEST_F(ResultStateManagerTest, // page_result_info2's token (page_result_info2.first) should be found ICING_ASSERT_OK_AND_ASSIGN(page_result_info2, result_state_manager.GetNextPage( - page_result_info2.first, result_retriever())); + page_result_info2.first, result_retriever(), + clock()->GetSystemTimeMilliseconds())); // We test the behavior by setting time back to 2s, to make sure the // invalidation of state 1 was done by the previous GetNextPage() instead of // the following GetNextPage(). clock()->SetSystemTimeMilliseconds(2000); // page_result_info1's token (page_result_info1.first) shouldn't be found. - EXPECT_THAT(result_state_manager.GetNextPage(page_result_info1.first, - result_retriever()), + EXPECT_THAT(result_state_manager.GetNextPage( + page_result_info1.first, result_retriever(), + clock()->GetSystemTimeMilliseconds()), StatusIs(libtextclassifier3::StatusCode::NOT_FOUND)); } @@ -539,8 +546,7 @@ TEST_F(ResultStateManagerTest, {/*document_id=*/3, /*document_id=*/4, /*document_id=*/5}); ResultStateManager result_state_manager( - /*max_total_hits=*/std::numeric_limits<int>::max(), document_store(), - clock()); + /*max_total_hits=*/std::numeric_limits<int>::max(), document_store()); // Set time as 1s and add state. clock()->SetSystemTimeMilliseconds(1000); @@ -552,15 +558,17 @@ TEST_F(ResultStateManagerTest, std::move(scored_document_hits1), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); ASSERT_THAT(page_result_info.first, Not(Eq(kInvalidNextPageToken))); // 1. Set time as 1hr1s. // 2. Then calling GetNextPage() on the state shouldn't get anything. clock()->SetSystemTimeMilliseconds(kDefaultResultStateTtlInMs + 1000); // page_result_info's token (page_result_info.first) shouldn't be found. - EXPECT_THAT(result_state_manager.GetNextPage(page_result_info.first, - result_retriever()), + EXPECT_THAT(result_state_manager.GetNextPage( + page_result_info.first, result_retriever(), + clock()->GetSystemTimeMilliseconds()), StatusIs(libtextclassifier3::StatusCode::NOT_FOUND)); } @@ -587,8 +595,7 @@ TEST_F(ResultStateManagerTest, ShouldInvalidateOneToken) { {document_id6, kSectionIdMaskNone, /*score=*/1}}; ResultStateManager result_state_manager( - /*max_total_hits=*/std::numeric_limits<int>::max(), document_store(), - clock()); + /*max_total_hits=*/std::numeric_limits<int>::max(), document_store()); ICING_ASSERT_OK_AND_ASSIGN( PageResultInfo page_result_info1, @@ -598,7 +605,8 @@ TEST_F(ResultStateManagerTest, ShouldInvalidateOneToken) { std::move(scored_document_hits1), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); ICING_ASSERT_OK_AND_ASSIGN( PageResultInfo page_result_info2, @@ -608,20 +616,23 @@ TEST_F(ResultStateManagerTest, ShouldInvalidateOneToken) { std::move(scored_document_hits2), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); // Invalidate first result state by the token. result_state_manager.InvalidateResultState(page_result_info1.first); // page_result_info1's token (page_result_info1.first) shouldn't be found - EXPECT_THAT(result_state_manager.GetNextPage(page_result_info1.first, - result_retriever()), + EXPECT_THAT(result_state_manager.GetNextPage( + page_result_info1.first, result_retriever(), + clock()->GetSystemTimeMilliseconds()), StatusIs(libtextclassifier3::StatusCode::NOT_FOUND)); // page_result_info2's token (page_result_info2.first) should still exist ICING_ASSERT_OK_AND_ASSIGN(page_result_info2, result_state_manager.GetNextPage( - page_result_info2.first, result_retriever())); + page_result_info2.first, result_retriever(), + clock()->GetSystemTimeMilliseconds())); // Should get docs. ASSERT_THAT(page_result_info2.second.results, SizeIs(1)); EXPECT_THAT(page_result_info2.second.results.at(0).document(), @@ -635,8 +646,7 @@ TEST_F(ResultStateManagerTest, ShouldInvalidateAllTokens) { {/*document_id=*/3, /*document_id=*/4, /*document_id=*/5}); ResultStateManager result_state_manager( - /*max_total_hits=*/std::numeric_limits<int>::max(), document_store(), - clock()); + /*max_total_hits=*/std::numeric_limits<int>::max(), document_store()); ICING_ASSERT_OK_AND_ASSIGN( PageResultInfo page_result_info1, @@ -646,7 +656,8 @@ TEST_F(ResultStateManagerTest, ShouldInvalidateAllTokens) { std::move(scored_document_hits1), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); ICING_ASSERT_OK_AND_ASSIGN( PageResultInfo page_result_info2, @@ -656,18 +667,21 @@ TEST_F(ResultStateManagerTest, ShouldInvalidateAllTokens) { std::move(scored_document_hits2), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); result_state_manager.InvalidateAllResultStates(); // page_result_info1's token (page_result_info1.first) shouldn't be found - EXPECT_THAT(result_state_manager.GetNextPage(page_result_info1.first, - result_retriever()), + EXPECT_THAT(result_state_manager.GetNextPage( + page_result_info1.first, result_retriever(), + clock()->GetSystemTimeMilliseconds()), StatusIs(libtextclassifier3::StatusCode::NOT_FOUND)); // page_result_info2's token (page_result_info2.first) shouldn't be found - EXPECT_THAT(result_state_manager.GetNextPage(page_result_info2.first, - result_retriever()), + EXPECT_THAT(result_state_manager.GetNextPage( + page_result_info2.first, result_retriever(), + clock()->GetSystemTimeMilliseconds()), StatusIs(libtextclassifier3::StatusCode::NOT_FOUND)); } @@ -680,7 +694,7 @@ TEST_F(ResultStateManagerTest, ShouldRemoveOldestResultState) { AddScoredDocuments({/*document_id=*/4, /*document_id=*/5}); ResultStateManager result_state_manager(/*max_total_hits=*/2, - document_store(), clock()); + document_store()); ICING_ASSERT_OK_AND_ASSIGN( PageResultInfo page_result_info1, @@ -690,7 +704,8 @@ TEST_F(ResultStateManagerTest, ShouldRemoveOldestResultState) { std::move(scored_document_hits1), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); ICING_ASSERT_OK_AND_ASSIGN( PageResultInfo page_result_info2, @@ -700,7 +715,8 @@ TEST_F(ResultStateManagerTest, ShouldRemoveOldestResultState) { std::move(scored_document_hits2), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); // Adding state 3 should cause state 1 to be removed. ICING_ASSERT_OK_AND_ASSIGN( @@ -711,22 +727,26 @@ TEST_F(ResultStateManagerTest, ShouldRemoveOldestResultState) { std::move(scored_document_hits3), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); - EXPECT_THAT(result_state_manager.GetNextPage(page_result_info1.first, - result_retriever()), + EXPECT_THAT(result_state_manager.GetNextPage( + page_result_info1.first, result_retriever(), + clock()->GetSystemTimeMilliseconds()), StatusIs(libtextclassifier3::StatusCode::NOT_FOUND)); ICING_ASSERT_OK_AND_ASSIGN(page_result_info2, result_state_manager.GetNextPage( - page_result_info2.first, result_retriever())); + page_result_info2.first, result_retriever(), + clock()->GetSystemTimeMilliseconds())); ASSERT_THAT(page_result_info2.second.results, SizeIs(1)); EXPECT_THAT(page_result_info2.second.results.at(0).document(), EqualsProto(document_protos2.at(1))); ICING_ASSERT_OK_AND_ASSIGN(page_result_info3, result_state_manager.GetNextPage( - page_result_info3.first, result_retriever())); + page_result_info3.first, result_retriever(), + clock()->GetSystemTimeMilliseconds())); ASSERT_THAT(page_result_info3.second.results, SizeIs(1)); EXPECT_THAT(page_result_info3.second.results.at(0).document(), EqualsProto(document_protos3.at(1))); @@ -747,7 +767,7 @@ TEST_F(ResultStateManagerTest, // result set of 2 hits. So each result will take up one hit of our three hit // budget. ResultStateManager result_state_manager(/*max_total_hits=*/3, - document_store(), clock()); + document_store()); ICING_ASSERT_OK_AND_ASSIGN( PageResultInfo page_result_info1, @@ -757,7 +777,8 @@ TEST_F(ResultStateManagerTest, std::move(scored_document_hits1), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); ICING_ASSERT_OK_AND_ASSIGN( PageResultInfo page_result_info2, @@ -767,7 +788,8 @@ TEST_F(ResultStateManagerTest, std::move(scored_document_hits2), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); ICING_ASSERT_OK_AND_ASSIGN( PageResultInfo page_result_info3, @@ -777,7 +799,8 @@ TEST_F(ResultStateManagerTest, std::move(scored_document_hits3), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); // Invalidates state 2, so that the number of hits current cached should be // decremented to 2. @@ -796,29 +819,34 @@ TEST_F(ResultStateManagerTest, std::move(scored_document_hits4), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); ICING_ASSERT_OK_AND_ASSIGN(page_result_info1, result_state_manager.GetNextPage( - page_result_info1.first, result_retriever())); + page_result_info1.first, result_retriever(), + clock()->GetSystemTimeMilliseconds())); ASSERT_THAT(page_result_info1.second.results, SizeIs(1)); EXPECT_THAT(page_result_info1.second.results.at(0).document(), EqualsProto(document_protos1.at(1))); - EXPECT_THAT(result_state_manager.GetNextPage(page_result_info2.first, - result_retriever()), + EXPECT_THAT(result_state_manager.GetNextPage( + page_result_info2.first, result_retriever(), + clock()->GetSystemTimeMilliseconds()), StatusIs(libtextclassifier3::StatusCode::NOT_FOUND)); ICING_ASSERT_OK_AND_ASSIGN(page_result_info3, result_state_manager.GetNextPage( - page_result_info3.first, result_retriever())); + page_result_info3.first, result_retriever(), + clock()->GetSystemTimeMilliseconds())); ASSERT_THAT(page_result_info3.second.results, SizeIs(1)); EXPECT_THAT(page_result_info3.second.results.at(0).document(), EqualsProto(document_protos3.at(1))); ICING_ASSERT_OK_AND_ASSIGN(page_result_info4, result_state_manager.GetNextPage( - page_result_info4.first, result_retriever())); + page_result_info4.first, result_retriever(), + clock()->GetSystemTimeMilliseconds())); ASSERT_THAT(page_result_info4.second.results, SizeIs(1)); EXPECT_THAT(page_result_info4.second.results.at(0).document(), EqualsProto(document_protos4.at(1))); @@ -839,7 +867,7 @@ TEST_F(ResultStateManagerTest, // result set of 2 hits. So each result will take up one hit of our three hit // budget. ResultStateManager result_state_manager(/*max_total_hits=*/3, - document_store(), clock()); + document_store()); ICING_ASSERT_OK_AND_ASSIGN( PageResultInfo page_result_info1, @@ -849,7 +877,8 @@ TEST_F(ResultStateManagerTest, std::move(scored_document_hits1), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); ICING_ASSERT_OK_AND_ASSIGN( PageResultInfo page_result_info2, @@ -859,7 +888,8 @@ TEST_F(ResultStateManagerTest, std::move(scored_document_hits2), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); ICING_ASSERT_OK_AND_ASSIGN( PageResultInfo page_result_info3, @@ -869,7 +899,8 @@ TEST_F(ResultStateManagerTest, std::move(scored_document_hits3), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); // Invalidates all states so that the current hit count will be 0. result_state_manager.InvalidateAllResultStates(); @@ -892,7 +923,8 @@ TEST_F(ResultStateManagerTest, std::move(scored_document_hits4), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); ICING_ASSERT_OK_AND_ASSIGN( PageResultInfo page_result_info5, @@ -902,7 +934,8 @@ TEST_F(ResultStateManagerTest, std::move(scored_document_hits5), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); ICING_ASSERT_OK_AND_ASSIGN( PageResultInfo page_result_info6, @@ -912,37 +945,44 @@ TEST_F(ResultStateManagerTest, std::move(scored_document_hits6), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); - EXPECT_THAT(result_state_manager.GetNextPage(page_result_info1.first, - result_retriever()), + EXPECT_THAT(result_state_manager.GetNextPage( + page_result_info1.first, result_retriever(), + clock()->GetSystemTimeMilliseconds()), StatusIs(libtextclassifier3::StatusCode::NOT_FOUND)); - EXPECT_THAT(result_state_manager.GetNextPage(page_result_info2.first, - result_retriever()), + EXPECT_THAT(result_state_manager.GetNextPage( + page_result_info2.first, result_retriever(), + clock()->GetSystemTimeMilliseconds()), StatusIs(libtextclassifier3::StatusCode::NOT_FOUND)); - EXPECT_THAT(result_state_manager.GetNextPage(page_result_info3.first, - result_retriever()), + EXPECT_THAT(result_state_manager.GetNextPage( + page_result_info3.first, result_retriever(), + clock()->GetSystemTimeMilliseconds()), StatusIs(libtextclassifier3::StatusCode::NOT_FOUND)); ICING_ASSERT_OK_AND_ASSIGN(page_result_info4, result_state_manager.GetNextPage( - page_result_info4.first, result_retriever())); + page_result_info4.first, result_retriever(), + clock()->GetSystemTimeMilliseconds())); ASSERT_THAT(page_result_info4.second.results, SizeIs(1)); EXPECT_THAT(page_result_info4.second.results.at(0).document(), EqualsProto(document_protos4.at(1))); ICING_ASSERT_OK_AND_ASSIGN(page_result_info5, result_state_manager.GetNextPage( - page_result_info5.first, result_retriever())); + page_result_info5.first, result_retriever(), + clock()->GetSystemTimeMilliseconds())); ASSERT_THAT(page_result_info5.second.results, SizeIs(1)); EXPECT_THAT(page_result_info5.second.results.at(0).document(), EqualsProto(document_protos5.at(1))); ICING_ASSERT_OK_AND_ASSIGN(page_result_info6, result_state_manager.GetNextPage( - page_result_info6.first, result_retriever())); + page_result_info6.first, result_retriever(), + clock()->GetSystemTimeMilliseconds())); ASSERT_THAT(page_result_info6.second.results, SizeIs(1)); EXPECT_THAT(page_result_info6.second.results.at(0).document(), EqualsProto(document_protos6.at(1))); @@ -964,7 +1004,7 @@ TEST_F( // result set of 2 hits. So each result will take up one hit of our three hit // budget. ResultStateManager result_state_manager(/*max_total_hits=*/3, - document_store(), clock()); + document_store()); ICING_ASSERT_OK_AND_ASSIGN( PageResultInfo page_result_info1, @@ -974,7 +1014,8 @@ TEST_F( std::move(scored_document_hits1), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); ICING_ASSERT_OK_AND_ASSIGN( PageResultInfo page_result_info2, @@ -984,7 +1025,8 @@ TEST_F( std::move(scored_document_hits2), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); ICING_ASSERT_OK_AND_ASSIGN( PageResultInfo page_result_info3, @@ -994,7 +1036,8 @@ TEST_F( std::move(scored_document_hits3), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); // Invalidates state 2, so that the number of hits current cached should be // decremented to 2. @@ -1013,7 +1056,8 @@ TEST_F( std::move(scored_document_hits4), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); // If invalidating result state 2 correctly decremented the current hit count // to 2 and adding state 4 correctly incremented it to 3, then adding this @@ -1028,33 +1072,39 @@ TEST_F( std::move(scored_document_hits5), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); - EXPECT_THAT(result_state_manager.GetNextPage(page_result_info1.first, - result_retriever()), + EXPECT_THAT(result_state_manager.GetNextPage( + page_result_info1.first, result_retriever(), + clock()->GetSystemTimeMilliseconds()), StatusIs(libtextclassifier3::StatusCode::NOT_FOUND)); - EXPECT_THAT(result_state_manager.GetNextPage(page_result_info2.first, - result_retriever()), + EXPECT_THAT(result_state_manager.GetNextPage( + page_result_info2.first, result_retriever(), + clock()->GetSystemTimeMilliseconds()), StatusIs(libtextclassifier3::StatusCode::NOT_FOUND)); ICING_ASSERT_OK_AND_ASSIGN(page_result_info3, result_state_manager.GetNextPage( - page_result_info3.first, result_retriever())); + page_result_info3.first, result_retriever(), + clock()->GetSystemTimeMilliseconds())); ASSERT_THAT(page_result_info3.second.results, SizeIs(1)); EXPECT_THAT(page_result_info3.second.results.at(0).document(), EqualsProto(document_protos3.at(1))); ICING_ASSERT_OK_AND_ASSIGN(page_result_info4, result_state_manager.GetNextPage( - page_result_info4.first, result_retriever())); + page_result_info4.first, result_retriever(), + clock()->GetSystemTimeMilliseconds())); ASSERT_THAT(page_result_info4.second.results, SizeIs(1)); EXPECT_THAT(page_result_info4.second.results.at(0).document(), EqualsProto(document_protos4.at(1))); ICING_ASSERT_OK_AND_ASSIGN(page_result_info5, result_state_manager.GetNextPage( - page_result_info5.first, result_retriever())); + page_result_info5.first, result_retriever(), + clock()->GetSystemTimeMilliseconds())); ASSERT_THAT(page_result_info5.second.results, SizeIs(1)); EXPECT_THAT(page_result_info5.second.results.at(0).document(), EqualsProto(document_protos5.at(1))); @@ -1074,7 +1124,7 @@ TEST_F(ResultStateManagerTest, GetNextPageShouldDecreaseCurrentHitsCount) { // result set of 2 hits. So each result will take up one hit of our three hit // budget. ResultStateManager result_state_manager(/*max_total_hits=*/3, - document_store(), clock()); + document_store()); ICING_ASSERT_OK_AND_ASSIGN( PageResultInfo page_result_info1, @@ -1084,7 +1134,8 @@ TEST_F(ResultStateManagerTest, GetNextPageShouldDecreaseCurrentHitsCount) { std::move(scored_document_hits1), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); ICING_ASSERT_OK_AND_ASSIGN( PageResultInfo page_result_info2, @@ -1094,7 +1145,8 @@ TEST_F(ResultStateManagerTest, GetNextPageShouldDecreaseCurrentHitsCount) { std::move(scored_document_hits2), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); ICING_ASSERT_OK_AND_ASSIGN( PageResultInfo page_result_info3, @@ -1104,13 +1156,15 @@ TEST_F(ResultStateManagerTest, GetNextPageShouldDecreaseCurrentHitsCount) { std::move(scored_document_hits3), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); // GetNextPage for result state 1 should return its result and decrement the // number of cached hits to 2. ICING_ASSERT_OK_AND_ASSIGN(page_result_info1, result_state_manager.GetNextPage( - page_result_info1.first, result_retriever())); + page_result_info1.first, result_retriever(), + clock()->GetSystemTimeMilliseconds())); ASSERT_THAT(page_result_info1.second.results, SizeIs(1)); EXPECT_THAT(page_result_info1.second.results.at(0).document(), EqualsProto(document_protos1.at(1))); @@ -1128,29 +1182,34 @@ TEST_F(ResultStateManagerTest, GetNextPageShouldDecreaseCurrentHitsCount) { std::move(scored_document_hits4), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); - EXPECT_THAT(result_state_manager.GetNextPage(page_result_info1.first, - result_retriever()), + EXPECT_THAT(result_state_manager.GetNextPage( + page_result_info1.first, result_retriever(), + clock()->GetSystemTimeMilliseconds()), StatusIs(libtextclassifier3::StatusCode::NOT_FOUND)); ICING_ASSERT_OK_AND_ASSIGN(page_result_info2, result_state_manager.GetNextPage( - page_result_info2.first, result_retriever())); + page_result_info2.first, result_retriever(), + clock()->GetSystemTimeMilliseconds())); ASSERT_THAT(page_result_info2.second.results, SizeIs(1)); EXPECT_THAT(page_result_info2.second.results.at(0).document(), EqualsProto(document_protos2.at(1))); ICING_ASSERT_OK_AND_ASSIGN(page_result_info3, result_state_manager.GetNextPage( - page_result_info3.first, result_retriever())); + page_result_info3.first, result_retriever(), + clock()->GetSystemTimeMilliseconds())); ASSERT_THAT(page_result_info3.second.results, SizeIs(1)); EXPECT_THAT(page_result_info3.second.results.at(0).document(), EqualsProto(document_protos3.at(1))); ICING_ASSERT_OK_AND_ASSIGN(page_result_info4, result_state_manager.GetNextPage( - page_result_info4.first, result_retriever())); + page_result_info4.first, result_retriever(), + clock()->GetSystemTimeMilliseconds())); ASSERT_THAT(page_result_info4.second.results, SizeIs(1)); EXPECT_THAT(page_result_info4.second.results.at(0).document(), EqualsProto(document_protos4.at(1))); @@ -1171,7 +1230,7 @@ TEST_F(ResultStateManagerTest, // result set of 2 hits. So each result will take up one hit of our three hit // budget. ResultStateManager result_state_manager(/*max_total_hits=*/3, - document_store(), clock()); + document_store()); ICING_ASSERT_OK_AND_ASSIGN( PageResultInfo page_result_info1, @@ -1181,7 +1240,8 @@ TEST_F(ResultStateManagerTest, std::move(scored_document_hits1), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); ICING_ASSERT_OK_AND_ASSIGN( PageResultInfo page_result_info2, @@ -1191,7 +1251,8 @@ TEST_F(ResultStateManagerTest, std::move(scored_document_hits2), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); ICING_ASSERT_OK_AND_ASSIGN( PageResultInfo page_result_info3, @@ -1201,13 +1262,15 @@ TEST_F(ResultStateManagerTest, std::move(scored_document_hits3), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); // GetNextPage for result state 1 should return its result and decrement the // number of cached hits to 2. ICING_ASSERT_OK_AND_ASSIGN(page_result_info1, result_state_manager.GetNextPage( - page_result_info1.first, result_retriever())); + page_result_info1.first, result_retriever(), + clock()->GetSystemTimeMilliseconds())); ASSERT_THAT(page_result_info1.second.results, SizeIs(1)); EXPECT_THAT(page_result_info1.second.results.at(0).document(), EqualsProto(document_protos1.at(1))); @@ -1225,7 +1288,8 @@ TEST_F(ResultStateManagerTest, std::move(scored_document_hits4), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); // If retrieving the next page for result state 1 correctly decremented the // current hit count to 2 and adding state 4 correctly incremented it to 3, @@ -1240,33 +1304,39 @@ TEST_F(ResultStateManagerTest, std::move(scored_document_hits5), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); - EXPECT_THAT(result_state_manager.GetNextPage(page_result_info1.first, - result_retriever()), + EXPECT_THAT(result_state_manager.GetNextPage( + page_result_info1.first, result_retriever(), + clock()->GetSystemTimeMilliseconds()), StatusIs(libtextclassifier3::StatusCode::NOT_FOUND)); - EXPECT_THAT(result_state_manager.GetNextPage(page_result_info2.first, - result_retriever()), + EXPECT_THAT(result_state_manager.GetNextPage( + page_result_info2.first, result_retriever(), + clock()->GetSystemTimeMilliseconds()), StatusIs(libtextclassifier3::StatusCode::NOT_FOUND)); ICING_ASSERT_OK_AND_ASSIGN(page_result_info3, result_state_manager.GetNextPage( - page_result_info3.first, result_retriever())); + page_result_info3.first, result_retriever(), + clock()->GetSystemTimeMilliseconds())); ASSERT_THAT(page_result_info3.second.results, SizeIs(1)); EXPECT_THAT(page_result_info3.second.results.at(0).document(), EqualsProto(document_protos3.at(1))); ICING_ASSERT_OK_AND_ASSIGN(page_result_info4, result_state_manager.GetNextPage( - page_result_info4.first, result_retriever())); + page_result_info4.first, result_retriever(), + clock()->GetSystemTimeMilliseconds())); ASSERT_THAT(page_result_info4.second.results, SizeIs(1)); EXPECT_THAT(page_result_info4.second.results.at(0).document(), EqualsProto(document_protos4.at(1))); ICING_ASSERT_OK_AND_ASSIGN(page_result_info5, result_state_manager.GetNextPage( - page_result_info5.first, result_retriever())); + page_result_info5.first, result_retriever(), + clock()->GetSystemTimeMilliseconds())); ASSERT_THAT(page_result_info5.second.results, SizeIs(1)); EXPECT_THAT(page_result_info5.second.results.at(0).document(), EqualsProto(document_protos5.at(1))); @@ -1284,7 +1354,7 @@ TEST_F(ResultStateManagerTest, // CacheAndRetrieveFirstPage). Each result state has a page size of 1. So 3 // hits will remain cached. ResultStateManager result_state_manager(/*max_total_hits=*/4, - document_store(), clock()); + document_store()); ICING_ASSERT_OK_AND_ASSIGN( PageResultInfo page_result_info1, @@ -1294,7 +1364,8 @@ TEST_F(ResultStateManagerTest, std::move(scored_document_hits1), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); ICING_ASSERT_OK_AND_ASSIGN( PageResultInfo page_result_info2, @@ -1304,7 +1375,8 @@ TEST_F(ResultStateManagerTest, std::move(scored_document_hits2), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); // Add a result state that is larger than the entire budget. This should // result in all previous result states being evicted, the first hit from @@ -1321,23 +1393,27 @@ TEST_F(ResultStateManagerTest, std::move(scored_document_hits3), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); EXPECT_THAT(page_result_info3.first, Not(Eq(kInvalidNextPageToken))); // GetNextPage for result state 1 and 2 should return NOT_FOUND. - EXPECT_THAT(result_state_manager.GetNextPage(page_result_info1.first, - result_retriever()), + EXPECT_THAT(result_state_manager.GetNextPage( + page_result_info1.first, result_retriever(), + clock()->GetSystemTimeMilliseconds()), StatusIs(libtextclassifier3::StatusCode::NOT_FOUND)); - EXPECT_THAT(result_state_manager.GetNextPage(page_result_info2.first, - result_retriever()), + EXPECT_THAT(result_state_manager.GetNextPage( + page_result_info2.first, result_retriever(), + clock()->GetSystemTimeMilliseconds()), StatusIs(libtextclassifier3::StatusCode::NOT_FOUND)); // Only the next four results in state 3 should be retrievable. uint64_t next_page_token3 = page_result_info3.first; ICING_ASSERT_OK_AND_ASSIGN( page_result_info3, - result_state_manager.GetNextPage(next_page_token3, result_retriever())); + result_state_manager.GetNextPage(next_page_token3, result_retriever(), + clock()->GetSystemTimeMilliseconds())); EXPECT_THAT(page_result_info3.first, Eq(next_page_token3)); ASSERT_THAT(page_result_info3.second.results, SizeIs(1)); EXPECT_THAT(page_result_info3.second.results.at(0).document(), @@ -1345,7 +1421,8 @@ TEST_F(ResultStateManagerTest, ICING_ASSERT_OK_AND_ASSIGN( page_result_info3, - result_state_manager.GetNextPage(next_page_token3, result_retriever())); + result_state_manager.GetNextPage(next_page_token3, result_retriever(), + clock()->GetSystemTimeMilliseconds())); EXPECT_THAT(page_result_info3.first, Eq(next_page_token3)); ASSERT_THAT(page_result_info3.second.results, SizeIs(1)); EXPECT_THAT(page_result_info3.second.results.at(0).document(), @@ -1353,7 +1430,8 @@ TEST_F(ResultStateManagerTest, ICING_ASSERT_OK_AND_ASSIGN( page_result_info3, - result_state_manager.GetNextPage(next_page_token3, result_retriever())); + result_state_manager.GetNextPage(next_page_token3, result_retriever(), + clock()->GetSystemTimeMilliseconds())); EXPECT_THAT(page_result_info3.first, Eq(next_page_token3)); ASSERT_THAT(page_result_info3.second.results, SizeIs(1)); EXPECT_THAT(page_result_info3.second.results.at(0).document(), @@ -1361,7 +1439,8 @@ TEST_F(ResultStateManagerTest, ICING_ASSERT_OK_AND_ASSIGN( page_result_info3, - result_state_manager.GetNextPage(next_page_token3, result_retriever())); + result_state_manager.GetNextPage(next_page_token3, result_retriever(), + clock()->GetSystemTimeMilliseconds())); // The final document should have been dropped because it exceeded the budget, // so the next page token of the second last round should be // kInvalidNextPageToken. @@ -1372,7 +1451,8 @@ TEST_F(ResultStateManagerTest, // Double check that next_page_token3 is not retrievable anymore. EXPECT_THAT( - result_state_manager.GetNextPage(next_page_token3, result_retriever()), + result_state_manager.GetNextPage(next_page_token3, result_retriever(), + clock()->GetSystemTimeMilliseconds()), StatusIs(libtextclassifier3::StatusCode::NOT_FOUND)); } @@ -1385,7 +1465,7 @@ TEST_F(ResultStateManagerTest, /*document_id=*/3, /*document_id=*/4, /*document_id=*/5}); ResultStateManager result_state_manager(/*max_total_hits=*/4, - document_store(), clock()); + document_store()); ICING_ASSERT_OK_AND_ASSIGN( PageResultInfo page_result_info1, @@ -1395,7 +1475,8 @@ TEST_F(ResultStateManagerTest, std::move(scored_document_hits1), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); // Add a result state. Because state2 + state1 is larger than the budget, // state1 should be evicted. @@ -1409,16 +1490,19 @@ TEST_F(ResultStateManagerTest, std::move(scored_document_hits2), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/1, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); // state1 should have been evicted and state2 should still be retrievable. - EXPECT_THAT(result_state_manager.GetNextPage(page_result_info1.first, - result_retriever()), + EXPECT_THAT(result_state_manager.GetNextPage( + page_result_info1.first, result_retriever(), + clock()->GetSystemTimeMilliseconds()), StatusIs(libtextclassifier3::StatusCode::NOT_FOUND)); ICING_ASSERT_OK_AND_ASSIGN(page_result_info2, result_state_manager.GetNextPage( - page_result_info2.first, result_retriever())); + page_result_info2.first, result_retriever(), + clock()->GetSystemTimeMilliseconds())); ASSERT_THAT(page_result_info2.second.results, SizeIs(1)); EXPECT_THAT(page_result_info2.second.results.at(0).document(), EqualsProto(document_protos2.at(1))); @@ -1434,7 +1518,7 @@ TEST_F(ResultStateManagerTest, /*document_id=*/3, /*document_id=*/4}); ResultStateManager result_state_manager(/*max_total_hits=*/4, - document_store(), clock()); + document_store()); // The 5 input scored document hits will not be truncated. The first page of // two hits will be returned immediately and the other three hits will fit @@ -1447,7 +1531,8 @@ TEST_F(ResultStateManagerTest, std::move(scored_document_hits), /*is_descending=*/true), /*parent_adjustment_info=*/nullptr, /*child_adjustment_info=*/nullptr, CreateResultSpec(/*num_per_page=*/2, ResultSpecProto::NAMESPACE), - document_store(), result_retriever())); + document_store(), result_retriever(), + clock()->GetSystemTimeMilliseconds())); // First page, 2 results ASSERT_THAT(page_result_info1.second.results, SizeIs(2)); @@ -1461,7 +1546,8 @@ TEST_F(ResultStateManagerTest, // Second page, 2 results. ICING_ASSERT_OK_AND_ASSIGN( PageResultInfo page_result_info2, - result_state_manager.GetNextPage(next_page_token, result_retriever())); + result_state_manager.GetNextPage(next_page_token, result_retriever(), + clock()->GetSystemTimeMilliseconds())); ASSERT_THAT(page_result_info2.second.results, SizeIs(2)); EXPECT_THAT(page_result_info2.second.results.at(0).document(), EqualsProto(document_protos.at(2))); @@ -1471,14 +1557,16 @@ TEST_F(ResultStateManagerTest, // Third page, 1 result. ICING_ASSERT_OK_AND_ASSIGN( PageResultInfo page_result_info3, - result_state_manager.GetNextPage(next_page_token, result_retriever())); + result_state_manager.GetNextPage(next_page_token, result_retriever(), + clock()->GetSystemTimeMilliseconds())); ASSERT_THAT(page_result_info3.second.results, SizeIs(1)); EXPECT_THAT(page_result_info3.second.results.at(0).document(), EqualsProto(document_protos.at(4))); // Fourth page, 0 results. EXPECT_THAT( - result_state_manager.GetNextPage(next_page_token, result_retriever()), + result_state_manager.GetNextPage(next_page_token, result_retriever(), + clock()->GetSystemTimeMilliseconds()), StatusIs(libtextclassifier3::StatusCode::NOT_FOUND)); } |