@@ -609,11 +609,11 @@ mod test {
609609 assert_eq ! ( decoded_values. as_ref( ) , values) ;
610610 }
611611
612- fn assert_corrupt_unchunk < T > ( data : LanceBuffer , expected_message : & str )
612+ fn assert_corrupt_unchunk < T > ( data : LanceBuffer , num_values : u64 , expected_message : & str )
613613 where
614614 T : ArrowNativeType + BitPacking + Pod ,
615615 {
616- let err = InlineBitpacking :: unchunk :: < T > ( data, 1 ) . unwrap_err ( ) ;
616+ let err = InlineBitpacking :: unchunk :: < T > ( data, num_values ) . unwrap_err ( ) ;
617617 assert ! ( matches!( err, lance_core:: Error :: CorruptFile { .. } ) ) ;
618618 let err = err. to_string ( ) ;
619619 assert ! (
@@ -635,12 +635,21 @@ mod test {
635635 }
636636
637637 #[ rstest]
638- #[ case:: too_small_header( LanceBuffer :: from( vec![ 1 , 2 , 3 ] ) , "too small" ) ]
639- #[ case:: misaligned_chunk_size( LanceBuffer :: from( vec![ 0 , 0 , 0 , 0 , 0 ] ) , "multiple" ) ]
640- #[ case:: payload_size_mismatch( LanceBuffer :: reinterpret_vec( vec![ 12_u32 ] ) , "payload" ) ]
641- #[ case:: invalid_bit_width( LanceBuffer :: reinterpret_vec( vec![ 33_u32 ] ) , "exceeds" ) ]
642- fn unchunk_rejects ( #[ case] data : LanceBuffer , #[ case] expected_message : & str ) {
643- assert_corrupt_unchunk :: < u32 > ( data, expected_message) ;
638+ #[ case:: too_small_header( LanceBuffer :: from( vec![ 1 , 2 , 3 ] ) , 1 , "too small" ) ]
639+ #[ case:: misaligned_chunk_size( LanceBuffer :: from( vec![ 0 , 0 , 0 , 0 , 0 ] ) , 1 , "multiple" ) ]
640+ #[ case:: too_many_values(
641+ LanceBuffer :: reinterpret_vec( vec![ 0_u32 ] ) ,
642+ ELEMS_PER_CHUNK + 1 ,
643+ "expected at most"
644+ ) ]
645+ #[ case:: payload_size_mismatch( LanceBuffer :: reinterpret_vec( vec![ 12_u32 ] ) , 1 , "payload" ) ]
646+ #[ case:: invalid_bit_width( LanceBuffer :: reinterpret_vec( vec![ 33_u32 ] ) , 1 , "exceeds" ) ]
647+ fn unchunk_rejects (
648+ #[ case] data : LanceBuffer ,
649+ #[ case] num_values : u64 ,
650+ #[ case] expected_message : & str ,
651+ ) {
652+ assert_corrupt_unchunk :: < u32 > ( data, num_values, expected_message) ;
644653 }
645654
646655 #[ test_log:: test( tokio:: test) ]
0 commit comments