@@ -474,7 +474,6 @@ impl<F> CurrentSegment<F> {
474474 let ( buf, res) = self . read_frame_offset_async( frame_offset, buf) . await ;
475475 res?;
476476
477-
478477 let mut frame = buf. into_inner( ) ;
479478 frame. header_mut( ) . size_after = 0 . into( ) ;
480479 let page_no = frame. header( ) . page_no( ) ;
@@ -613,12 +612,12 @@ impl SegmentIndex {
613612
614613#[ cfg( test) ]
615614mod test {
616- use std:: env:: temp_dir;
617615 use std:: io:: { self , Read } ;
618616
619617 use chrono:: { DateTime , Utc } ;
620618 use hashbrown:: HashMap ;
621619 use insta:: assert_debug_snapshot;
620+ use rand:: rngs:: ThreadRng ;
622621 use tempfile:: { tempdir, tempfile} ;
623622 use tokio_stream:: StreamExt ;
624623 use uuid:: Uuid ;
@@ -775,11 +774,9 @@ mod test {
775774
776775 #[ tokio:: test]
777776 async fn crash_on_flush ( ) {
778-
779777 #[ derive( Clone , Default ) ]
780778 struct SyncFailBufferIo {
781- inner : Arc < Mutex < HashMap < PathBuf , Arc < Mutex < Vec < u8 > > > > > >
782-
779+ inner : Arc < Mutex < HashMap < PathBuf , Arc < Mutex < Vec < u8 > > > > > > ,
783780 }
784781
785782 struct File {
@@ -823,15 +820,16 @@ mod test {
823820 let inner = self . inner ( ) ;
824821 let inner = inner. lock ( ) ;
825822 if offset >= inner. len ( ) as u64 {
826- return Ok ( 0 )
823+ return Ok ( 0 ) ;
827824 }
828-
825+
829826 let read_len = if offset as usize + buf. len ( ) > inner. len ( ) {
830827 offset as usize + buf. len ( ) - inner. len ( )
831828 } else {
832829 buf. len ( )
833830 } ;
834- buf[ ..read_len] . copy_from_slice ( & inner[ offset as usize ..offset as usize + read_len] ) ;
831+ buf[ ..read_len]
832+ . copy_from_slice ( & inner[ offset as usize ..offset as usize + read_len] ) ;
835833 Ok ( read_len)
836834 }
837835
@@ -853,10 +851,11 @@ mod test {
853851 mut buf : B ,
854852 offset : u64 ,
855853 ) -> ( B , std:: io:: Result < ( ) > ) {
856- let slice = unsafe { std:: slice:: from_raw_parts_mut ( buf. stable_mut_ptr ( ) , buf. bytes_total ( ) ) } ;
854+ let slice = unsafe {
855+ std:: slice:: from_raw_parts_mut ( buf. stable_mut_ptr ( ) , buf. bytes_total ( ) )
856+ } ;
857857 let ret = self . read_at ( slice, offset) ;
858858 ( buf, ret. map ( |_| ( ) ) )
859-
860859 }
861860
862861 async fn read_at_async < B : IoBufMut + Send + ' static > (
@@ -878,7 +877,7 @@ mod test {
878877
879878 impl Io for SyncFailBufferIo {
880879 type File = File ;
881-
880+ type Rng = ThreadRng ;
882881 type TempFile = File ;
883882
884883 fn create_dir_all ( & self , path : & std:: path:: Path ) -> std:: io:: Result < ( ) > {
@@ -906,7 +905,6 @@ mod test {
906905 path : path. into ( ) ,
907906 io : self . clone ( ) ,
908907 } )
909-
910908 }
911909
912910 fn tempfile ( & self ) -> std:: io:: Result < Self :: TempFile > {
@@ -921,11 +919,22 @@ mod test {
921919 Uuid :: new_v4 ( )
922920 }
923921
924- fn hard_link ( & self , _src : & std:: path:: Path , _dst : & std:: path:: Path ) -> std:: io:: Result < ( ) > {
922+ fn hard_link (
923+ & self ,
924+ _src : & std:: path:: Path ,
925+ _dst : & std:: path:: Path ,
926+ ) -> std:: io:: Result < ( ) > {
925927 todo ! ( )
926928 }
929+
930+ fn with_rng < F , R > ( & self , f : F ) -> R
931+ where
932+ F : FnOnce ( & mut Self :: Rng ) -> R ,
933+ {
934+ f ( & mut rand:: thread_rng ( ) )
935+ }
927936 }
928-
937+
929938 let tmp = Arc :: new ( tempdir ( ) . unwrap ( ) ) ;
930939 {
931940 let env = TestEnv :: new_io_and_tmp ( SyncFailBufferIo :: default ( ) , tmp. clone ( ) ) ;
@@ -936,6 +945,9 @@ mod test {
936945 conn. execute ( "insert into test values (1234)" , ( ) ) . unwrap ( ) ;
937946 conn. execute ( "insert into test values (1234)" , ( ) ) . unwrap ( ) ;
938947 conn. execute ( "insert into test values (1234)" , ( ) ) . unwrap ( ) ;
948+ conn. execute ( "insert into test values (1234)" , ( ) ) . unwrap ( ) ;
949+ conn. execute ( "insert into test values (1234)" , ( ) ) . unwrap ( ) ;
950+ conn. execute ( "insert into test values (1234)" , ( ) ) . unwrap ( ) ;
939951
940952 // trigger a flush, that will fail. When we reopen the db, the log should need recovery
941953 // this simulates a crash before flush
@@ -954,7 +966,8 @@ mod test {
954966 conn. query_row ( "select count(*) from test" , ( ) , |row| {
955967 dbg ! ( row) ;
956968 Ok ( ( ) )
957- } ) . unwrap ( ) ;
969+ } )
970+ . unwrap ( ) ;
958971 }
959972 }
960973}
0 commit comments