Skip to content

Commit f849144

Browse files
committed
test(wal): 엔트리 분리 테스트 코드 작성
1 parent f65d69f commit f849144

1 file changed

Lines changed: 34 additions & 0 deletions

File tree

src/wal/manager/mod.rs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,4 +273,38 @@ mod tests {
273273
"Buffers should be empty after a checkpointed file"
274274
);
275275
}
276+
277+
#[tokio::test]
278+
async fn test_build_multiple_files() {
279+
let wal_dir = setup_test_wal_dir("multiple_files");
280+
281+
// 일부러 페이지 사이즈를 작게 설정
282+
let mut config = get_test_config(&wal_dir);
283+
config.wal_segment_size = 20; // 20 바이트
284+
285+
let builder = WALBuilder::new(&config);
286+
let encoder = BitcodeEncoder::new();
287+
let decoder = BitcodeDecoder::new();
288+
289+
let wal_manager = builder
290+
.build(decoder, encoder)
291+
.await
292+
.expect("Failed to build WAL manager");
293+
294+
assert_eq!(wal_manager.sequence, 1, "Sequence should be 1");
295+
296+
// 여러개로 분산 처리 되는지 확인
297+
let entries_seq1 = vec![
298+
create_entry(EntryType::Insert, Some("helloworld")), // 10바이트
299+
create_entry(EntryType::Set, Some("data2")), // 5바이트
300+
];
301+
write_wal_file(&config, 1, &entries_seq1);
302+
303+
// 여기서 기본 페이지 사이즈보다 크게
304+
let entries_seq2 = vec![
305+
create_entry(EntryType::Insert, Some("helloworld")), // 10바이트
306+
create_entry(EntryType::Set, Some("data2")), // 5바이트
307+
];
308+
write_wal_file(&config, 2, &entries_seq2);
309+
}
276310
}

0 commit comments

Comments
 (0)