@@ -706,3 +706,54 @@ impl fmt::Debug for Connection {
706706 f. debug_struct ( "Connection" ) . finish ( )
707707 }
708708}
709+
710+ #[ cfg( test) ]
711+ mod tests {
712+ use crate :: {
713+ local:: { Connection , Database } ,
714+ params:: Params ,
715+ OpenFlags ,
716+ } ;
717+
718+ #[ tokio:: test]
719+ pub async fn test_kek ( ) {
720+ let temp_dir = tempfile:: tempdir ( ) . unwrap ( ) ;
721+ let path1 = temp_dir. path ( ) . join ( "local1.db" ) ;
722+ let db1 = Database :: new ( path1. to_str ( ) . unwrap ( ) . to_string ( ) , OpenFlags :: default ( ) ) ;
723+ let conn1 = Connection :: connect ( & db1) . unwrap ( ) ;
724+ conn1
725+ . query ( "PRAGMA journal_mode = WAL" , Params :: None )
726+ . unwrap ( ) ;
727+ conn1. wal_disable_checkpoint ( ) . unwrap ( ) ;
728+
729+ let path2 = temp_dir. path ( ) . join ( "local2.db" ) ;
730+ let db2 = Database :: new ( path2. to_str ( ) . unwrap ( ) . to_string ( ) , OpenFlags :: default ( ) ) ;
731+ let conn2 = Connection :: connect ( & db2) . unwrap ( ) ;
732+ conn2
733+ . query ( "PRAGMA journal_mode = WAL" , Params :: None )
734+ . unwrap ( ) ;
735+ conn2. wal_disable_checkpoint ( ) . unwrap ( ) ;
736+
737+ conn1. execute ( "CREATE TABLE t(x)" , Params :: None ) . unwrap ( ) ;
738+ const CNT : usize = 32 ;
739+ for _ in 0 ..CNT {
740+ conn1
741+ . execute (
742+ "INSERT INTO t VALUES (randomblob(1024 * 1024))" ,
743+ Params :: None ,
744+ )
745+ . unwrap ( ) ;
746+ }
747+ let handle = conn2. wal_insert_handle ( ) . unwrap ( ) ;
748+ let frame_count = conn1. wal_frame_count ( ) ;
749+ for frame_no in 0 ..frame_count {
750+ let frame = conn1. wal_get_frame ( frame_no + 1 , 4096 ) . unwrap ( ) ;
751+ handle. insert_at ( frame_no as u32 + 1 , & frame) . unwrap ( ) ;
752+ }
753+ let result = conn2. query ( "SELECT COUNT(*) FROM t" , Params :: None ) . unwrap ( ) ;
754+ let row = result. unwrap ( ) . next ( ) . unwrap ( ) . unwrap ( ) ;
755+ let column = row. get_value ( 0 ) . unwrap ( ) ;
756+ let cnt = * column. as_integer ( ) . unwrap ( ) ;
757+ assert_eq ! ( cnt, 32 as i64 ) ;
758+ }
759+ }
0 commit comments