MCPcopy Create free account
hub / github.com/NodeDB-Lab/nodedb / write_and_recover

Function write_and_recover

nodedb-wal/src/double_write.rs:487–513  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

485
486 #[test]
487 fn write_and_recover() {
488 let dir = tempfile::tempdir().unwrap();
489 let dwb_path = dir.path().join("test.dwb");
490
491 let mut dwb = open_buffered(&dwb_path);
492
493 let record = WalRecord::new(
494 RecordType::Put as u32,
495 42,
496 1,
497 0,
498 0,
499 b"hello double-write".to_vec(),
500 None,
501 None,
502 )
503 .unwrap();
504
505 dwb.write_record(&record).unwrap();
506
507 // Recover by LSN.
508 let recovered = dwb.recover_record(42).unwrap();
509 assert!(recovered.is_some());
510 let rec = recovered.unwrap();
511 assert_eq!(rec.header.lsn, 42);
512 assert_eq!(rec.payload, b"hello double-write");
513 }
514
515 #[test]
516 fn recover_nonexistent_returns_none() {

Callers

nothing calls this directly

Calls 6

open_bufferedFunction · 0.85
joinMethod · 0.80
write_recordMethod · 0.80
recover_recordMethod · 0.80
pathMethod · 0.45
to_vecMethod · 0.45

Tested by

no test coverage detected