Nothing to see here, move along meow
0

Configure Feed

Select the types of activity you want to include in your feed.

at main 2.3 kB View raw
1use lancer_core::fs::BLOCK_SIZE_MIN; 2use lancer_lancerfs::test_helpers::setup_fs; 3 4#[test] 5fn writing_600_blocks_forces_eviction_data_survives() { 6 let mut fs = setup_fs(8192); 7 let root = fs.root_block(); 8 let (_inode, block) = fs.create_file(root, b"bigfile"); 9 10 let block_size = BLOCK_SIZE_MIN as usize; 11 let total_blocks = 600usize; 12 let data: Vec<u8> = (0..total_blocks * block_size) 13 .map(|i| ((i / block_size * 17 + i % block_size) % 251) as u8) 14 .collect(); 15 16 fs.write_file(block, 0, &data); 17 fs.commit(); 18 19 let read_back = fs.read_file(block, 0, data.len()); 20 assert_eq!(read_back.len(), data.len()); 21 (0..total_blocks).for_each(|b| { 22 let start = b * block_size; 23 let end = start + block_size; 24 assert_eq!( 25 &read_back[start..end], 26 &data[start..end], 27 "mismatch at block {}", 28 b 29 ); 30 }); 31} 32 33#[test] 34fn dirty_eviction_under_full_cache() { 35 let mut fs = setup_fs(8192); 36 let root = fs.root_block(); 37 let (_inode, block) = fs.create_file(root, b"dirtyfile"); 38 39 let block_size = BLOCK_SIZE_MIN as usize; 40 let total_blocks = 520usize; 41 let data: Vec<u8> = (0..total_blocks * block_size) 42 .map(|i| ((i / block_size * 31 + i % block_size) % 239) as u8) 43 .collect(); 44 45 fs.write_file(block, 0, &data); 46 47 let read_back = fs.read_file(block, 0, data.len()); 48 assert_eq!(read_back.len(), data.len()); 49 assert_eq!(read_back, data); 50} 51 52#[test] 53fn hot_set_survives_cold_eviction() { 54 let mut fs = setup_fs(8192); 55 let root = fs.root_block(); 56 let (_inode, block) = fs.create_file(root, b"hotcold"); 57 58 let block_size = BLOCK_SIZE_MIN as usize; 59 let total_blocks = 600usize; 60 let data: Vec<u8> = (0..total_blocks * block_size) 61 .map(|i| ((i / block_size * 13 + i % block_size) % 241) as u8) 62 .collect(); 63 64 fs.write_file(block, 0, &data); 65 fs.commit(); 66 67 (0..5u32).for_each(|_| { 68 let hot_start = 500 * block_size; 69 let hot_end = 511 * block_size; 70 let hot_data = fs.read_file(block, hot_start as u64, hot_end - hot_start); 71 assert_eq!(hot_data, &data[hot_start..hot_end]); 72 }); 73 74 let full_read = fs.read_file(block, 0, data.len()); 75 assert_eq!(full_read.len(), data.len()); 76 assert_eq!(full_read, data); 77}