@@ -1587,6 +1587,9 @@ mod tests {
1587
1587
use crate :: flash:: MemFlash ;
1588
1588
use crate :: types:: RawPageID ;
1589
1589
1590
+ /// Big amount of data that it's reasonable to write to a file.
1591
+ const BIG_DATA_SIZE : usize = PAGE_SIZE * MAX_PAGE_COUNT / 2 ;
1592
+
1590
1593
fn page ( p : RawPageID ) -> PageID {
1591
1594
PageID :: from_raw ( p) . unwrap ( )
1592
1595
}
@@ -1627,7 +1630,7 @@ mod tests {
1627
1630
m. format ( ) . await . unwrap ( ) ;
1628
1631
m. mount ( & mut pr) . await . unwrap ( ) ;
1629
1632
1630
- let data = dummy_data ( 23456 ) ;
1633
+ let data = dummy_data ( BIG_DATA_SIZE ) ;
1631
1634
1632
1635
let mut w = m. write ( & mut pr, 0 ) . await . unwrap ( ) ;
1633
1636
w. write ( & mut m, & data) . await . unwrap ( ) ;
@@ -2652,7 +2655,7 @@ mod tests {
2652
2655
m. mount ( & mut pr) . await . unwrap ( ) ;
2653
2656
2654
2657
let mut w = m. write ( & mut pr, 1 ) . await . unwrap ( ) ;
2655
- w. write ( & mut m, & [ 0x00 ; 4348 ] ) . await . unwrap ( ) ;
2658
+ w. write ( & mut m, & [ 0x00 ; BIG_DATA_SIZE ] ) . await . unwrap ( ) ;
2656
2659
w. record_end ( ) ;
2657
2660
m. commit ( & mut w) . await . unwrap ( ) ;
2658
2661
@@ -2671,29 +2674,31 @@ mod tests {
2671
2674
m. format ( ) . await . unwrap ( ) ;
2672
2675
m. mount ( & mut pr) . await . unwrap ( ) ;
2673
2676
2677
+ const N : usize = BIG_DATA_SIZE / 2 ;
2678
+
2674
2679
let mut w = m. write ( & mut pr, 1 ) . await . unwrap ( ) ;
2675
- w. write ( & mut m, & [ 0x00 ; 4348 ] ) . await . unwrap ( ) ;
2680
+ w. write ( & mut m, & [ 0x00 ; N ] ) . await . unwrap ( ) ;
2676
2681
w. record_end ( ) ;
2677
- w. write ( & mut m, & [ 0x00 ; 4348 ] ) . await . unwrap ( ) ;
2682
+ w. write ( & mut m, & [ 0x00 ; N ] ) . await . unwrap ( ) ;
2678
2683
w. record_end ( ) ;
2679
2684
m. commit ( & mut w) . await . unwrap ( ) ;
2680
2685
2681
2686
let mut buf = [ 0u8 ; 1 ] ;
2682
2687
// Seek left
2683
2688
let mut s = FileSearcher :: new ( m. read ( & mut pr, 1 ) ) ;
2684
2689
assert_eq ! ( s. start( & mut m) . await . unwrap( ) , true ) ;
2685
- assert_eq ! ( s. reader( ) . offset( & mut m) , 4348 ) ;
2690
+ assert_eq ! ( s. reader( ) . offset( & mut m) , N ) ;
2686
2691
s. reader ( ) . read ( & mut m, & mut buf) . await . unwrap ( ) ;
2687
2692
assert_eq ! ( s. seek( & mut m, SeekDirection :: Left ) . await . unwrap( ) , false ) ;
2688
2693
assert_eq ! ( s. reader( ) . offset( & mut m) , 0 ) ;
2689
2694
2690
2695
// Seek right
2691
2696
let mut s = FileSearcher :: new ( m. read ( & mut pr, 1 ) ) ;
2692
2697
assert_eq ! ( s. start( & mut m) . await . unwrap( ) , true ) ;
2693
- assert_eq ! ( s. reader( ) . offset( & mut m) , 4348 ) ;
2698
+ assert_eq ! ( s. reader( ) . offset( & mut m) , N ) ;
2694
2699
s. reader ( ) . read ( & mut m, & mut buf) . await . unwrap ( ) ;
2695
2700
assert_eq ! ( s. seek( & mut m, SeekDirection :: Right ) . await . unwrap( ) , false ) ;
2696
- assert_eq ! ( s. reader( ) . offset( & mut m) , 4348 ) ;
2701
+ assert_eq ! ( s. reader( ) . offset( & mut m) , N ) ;
2697
2702
}
2698
2703
2699
2704
#[ test_log:: test( tokio:: test) ]
@@ -2704,56 +2709,58 @@ mod tests {
2704
2709
m. format ( ) . await . unwrap ( ) ;
2705
2710
m. mount ( & mut pr) . await . unwrap ( ) ;
2706
2711
2712
+ const N : usize = BIG_DATA_SIZE / 3 ;
2713
+
2707
2714
let mut w = m. write ( & mut pr, 1 ) . await . unwrap ( ) ;
2708
- w. write ( & mut m, & [ 0x00 ; 4348 ] ) . await . unwrap ( ) ;
2715
+ w. write ( & mut m, & [ 0x00 ; N ] ) . await . unwrap ( ) ;
2709
2716
w. record_end ( ) ;
2710
- w. write ( & mut m, & [ 0x00 ; 4348 ] ) . await . unwrap ( ) ;
2717
+ w. write ( & mut m, & [ 0x00 ; N ] ) . await . unwrap ( ) ;
2711
2718
w. record_end ( ) ;
2712
- w. write ( & mut m, & [ 0x00 ; 4348 ] ) . await . unwrap ( ) ;
2719
+ w. write ( & mut m, & [ 0x00 ; N ] ) . await . unwrap ( ) ;
2713
2720
w. record_end ( ) ;
2714
2721
m. commit ( & mut w) . await . unwrap ( ) ;
2715
2722
2716
2723
let mut buf = [ 0u8 ; 1 ] ;
2717
2724
// Seek left
2718
2725
let mut s = FileSearcher :: new ( m. read ( & mut pr, 1 ) ) ;
2719
2726
assert_eq ! ( s. start( & mut m) . await . unwrap( ) , true ) ;
2720
- assert_eq ! ( s. reader( ) . offset( & mut m) , 8696 ) ;
2727
+ assert_eq ! ( s. reader( ) . offset( & mut m) , N * 2 ) ;
2721
2728
s. reader ( ) . read ( & mut m, & mut buf) . await . unwrap ( ) ;
2722
2729
assert_eq ! ( s. seek( & mut m, SeekDirection :: Left ) . await . unwrap( ) , true ) ;
2723
- assert_eq ! ( s. reader( ) . offset( & mut m) , 4348 ) ;
2730
+ assert_eq ! ( s. reader( ) . offset( & mut m) , N ) ;
2724
2731
s. reader ( ) . read ( & mut m, & mut buf) . await . unwrap ( ) ;
2725
2732
assert_eq ! ( s. seek( & mut m, SeekDirection :: Left ) . await . unwrap( ) , false ) ;
2726
2733
assert_eq ! ( s. reader( ) . offset( & mut m) , 0 ) ;
2727
2734
2728
2735
// Seek less left
2729
2736
let mut s = FileSearcher :: new ( m. read ( & mut pr, 1 ) ) ;
2730
2737
assert_eq ! ( s. start( & mut m) . await . unwrap( ) , true ) ;
2731
- assert_eq ! ( s. reader( ) . offset( & mut m) , 8696 ) ;
2738
+ assert_eq ! ( s. reader( ) . offset( & mut m) , N * 2 ) ;
2732
2739
s. reader ( ) . read ( & mut m, & mut buf) . await . unwrap ( ) ;
2733
2740
assert_eq ! ( s. seek( & mut m, SeekDirection :: Left ) . await . unwrap( ) , true ) ;
2734
- assert_eq ! ( s. reader( ) . offset( & mut m) , 4348 ) ;
2741
+ assert_eq ! ( s. reader( ) . offset( & mut m) , N ) ;
2735
2742
s. reader ( ) . read ( & mut m, & mut buf) . await . unwrap ( ) ;
2736
2743
assert_eq ! ( s. seek( & mut m, SeekDirection :: Left ) . await . unwrap( ) , false ) ;
2737
2744
assert_eq ! ( s. reader( ) . offset( & mut m) , 0 ) ;
2738
2745
2739
2746
// Seek middle
2740
2747
let mut s = FileSearcher :: new ( m. read ( & mut pr, 1 ) ) ;
2741
2748
assert_eq ! ( s. start( & mut m) . await . unwrap( ) , true ) ;
2742
- assert_eq ! ( s. reader( ) . offset( & mut m) , 8696 ) ;
2749
+ assert_eq ! ( s. reader( ) . offset( & mut m) , N * 2 ) ;
2743
2750
s. reader ( ) . read ( & mut m, & mut buf) . await . unwrap ( ) ;
2744
2751
assert_eq ! ( s. seek( & mut m, SeekDirection :: Left ) . await . unwrap( ) , true ) ;
2745
- assert_eq ! ( s. reader( ) . offset( & mut m) , 4348 ) ;
2752
+ assert_eq ! ( s. reader( ) . offset( & mut m) , N ) ;
2746
2753
s. reader ( ) . read ( & mut m, & mut buf) . await . unwrap ( ) ;
2747
2754
assert_eq ! ( s. seek( & mut m, SeekDirection :: Right ) . await . unwrap( ) , false ) ;
2748
- assert_eq ! ( s. reader( ) . offset( & mut m) , 4348 ) ;
2755
+ assert_eq ! ( s. reader( ) . offset( & mut m) , N ) ;
2749
2756
2750
2757
// Seek right
2751
2758
let mut s = FileSearcher :: new ( m. read ( & mut pr, 1 ) ) ;
2752
2759
assert_eq ! ( s. start( & mut m) . await . unwrap( ) , true ) ;
2753
- assert_eq ! ( s. reader( ) . offset( & mut m) , 8696 ) ;
2760
+ assert_eq ! ( s. reader( ) . offset( & mut m) , N * 2 ) ;
2754
2761
s. reader ( ) . read ( & mut m, & mut buf) . await . unwrap ( ) ;
2755
2762
assert_eq ! ( s. seek( & mut m, SeekDirection :: Right ) . await . unwrap( ) , false ) ;
2756
- assert_eq ! ( s. reader( ) . offset( & mut m) , 8696 ) ;
2763
+ assert_eq ! ( s. reader( ) . offset( & mut m) , N * 2 ) ;
2757
2764
}
2758
2765
2759
2766
#[ test_log:: test( tokio:: test) ]
@@ -2814,7 +2821,7 @@ mod tests {
2814
2821
m. format ( ) . await . unwrap ( ) ;
2815
2822
m. mount ( & mut pr) . await . unwrap ( ) ;
2816
2823
2817
- let count: u32 = 20000 / 4 ;
2824
+ let count: u32 = ( BIG_DATA_SIZE / 4 ) . try_into ( ) . unwrap ( ) ;
2818
2825
2819
2826
let mut w = m. write ( & mut pr, 1 ) . await . unwrap ( ) ;
2820
2827
for i in 1 ..=count {
0 commit comments