@@ -257,6 +257,26 @@ async fn populate_internal_driver_tablet_info(
257257 }
258258}
259259
260+ async fn verify_queries_routed_to_correct_tablets (
261+ session : & Session ,
262+ prepared : & PreparedStatement ,
263+ value_per_tablet : & [ ( i32 , i32 ) ] ,
264+ feedback_rxs : & mut [ UnboundedReceiver < ( ResponseFrame , Option < u16 > ) > ] ,
265+ ) {
266+ for values in value_per_tablet. iter ( ) {
267+ info ! (
268+ "Second loop, trying key {:?}, token: {}" ,
269+ values,
270+ prepared. calculate_token( & values) . unwrap( ) . unwrap( ) . value( )
271+ ) ;
272+ try_join_all ( ( 0 ..100 ) . map ( |_| async { session. execute_unpaged ( prepared, values) . await } ) )
273+ . await
274+ . unwrap ( ) ;
275+ let feedbacks: usize = feedback_rxs. iter_mut ( ) . map ( count_tablet_feedbacks) . sum ( ) ;
276+ assert_eq ! ( feedbacks, 0 ) ;
277+ }
278+ }
279+
260280/// Tests that, when using DefaultPolicy with TokenAwareness and querying table
261281/// that uses tablets:
262282/// 1. When querying data that belongs to tablet we didn't receive yet we will
@@ -324,20 +344,13 @@ async fn test_default_policy_is_tablet_aware() {
324344 // Now we must have info about all the tablets. It should not be
325345 // possible to receive any feedback if DefaultPolicy is properly
326346 // tablet-aware.
327- for values in value_lists. iter ( ) {
328- info ! (
329- "Second loop, trying key {:?}, token: {}" ,
330- values,
331- prepared. calculate_token( & values) . unwrap( ) . unwrap( ) . value( )
332- ) ;
333- try_join_all (
334- ( 0 ..100 ) . map ( |_| async { session. execute_unpaged ( & prepared, values) . await } ) ,
335- )
336- . await
337- . unwrap ( ) ;
338- let feedbacks: usize = feedback_rxs. iter_mut ( ) . map ( count_tablet_feedbacks) . sum ( ) ;
339- assert_eq ! ( feedbacks, 0 ) ;
340- }
347+ verify_queries_routed_to_correct_tablets (
348+ & session,
349+ & prepared,
350+ & value_lists,
351+ & mut feedback_rxs,
352+ )
353+ . await ;
341354
342355 running_proxy
343356 } ,
0 commit comments