mars-xlog-core 0.1.0

Core runtime building blocks for the Rust-native xlog engine.
Documentation
use std::fs;

use mars_xlog_core::dump::{dump_to_file, memory_dump};

#[test]
fn memory_dump_outputs_hex_and_ascii() {
    let out = memory_dump(b"hello");
    assert!(out.contains("5 bytes"));
    assert!(out.contains("68 65 6c 6c 6f"));
}

#[test]
fn dump_to_file_writes_dump_artifact() {
    let dir = tempfile::tempdir().unwrap();
    let out = dump_to_file(dir.path().to_str().unwrap(), b"payload");
    assert!(out.contains("dump file to"));

    let mut found = false;
    for entry in fs::read_dir(dir.path()).unwrap().flatten() {
        let p = entry.path();
        if !p.is_dir() {
            continue;
        }
        for dump in fs::read_dir(&p).unwrap().flatten() {
            if dump.path().extension().and_then(|x| x.to_str()) == Some("dump") {
                found = true;
            }
        }
    }
    assert!(found, "expected at least one .dump output");
}