| 422 | |
| 423 | #[test] |
| 424 | fn mmap_reader_basic() { |
| 425 | let dir = tempfile::tempdir().unwrap(); |
| 426 | let path = dir.path().join("test.wal"); |
| 427 | |
| 428 | // Write some records with the standard writer. |
| 429 | { |
| 430 | let mut writer = test_writer(&path); |
| 431 | writer |
| 432 | .append(RecordType::Put as u32, 1, 0, 0, b"hello") |
| 433 | .unwrap(); |
| 434 | writer |
| 435 | .append(RecordType::Put as u32, 1, 0, 0, b"world") |
| 436 | .unwrap(); |
| 437 | writer.sync().unwrap(); |
| 438 | } |
| 439 | |
| 440 | // Read back with mmap reader. |
| 441 | let reader = MmapWalReader::open(&path).unwrap(); |
| 442 | let records: Vec<WalRecord> = reader.records().collect::<Result<Vec<_>>>().unwrap(); |
| 443 | |
| 444 | assert_eq!(records.len(), 2); |
| 445 | assert_eq!(records[0].payload, b"hello"); |
| 446 | assert_eq!(records[1].payload, b"world"); |
| 447 | } |
| 448 | |
| 449 | #[test] |
| 450 | fn mmap_reader_empty_file() { |