1
Fork 0
mirror of https://github.com/redstrate/Physis.git synced 2025-04-24 13:37:44 +00:00

Add invalid data test for EXD

This commit is contained in:
Joshua Goins 2024-04-16 21:52:14 -04:00
parent 3b6c4e83df
commit d9bf25cb0e
2 changed files with 37 additions and 4 deletions

View file

@ -211,3 +211,36 @@ impl EXD {
} }
} }
} }
#[cfg(test)]
mod tests {
use std::fs::read;
use std::path::PathBuf;
use crate::exh::EXHHeader;
use super::*;
#[test]
fn test_invalid() {
let mut d = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
d.push("resources/tests");
d.push("random");
let exh = EXH {
header: EXHHeader {
version: 0,
data_offset: 0,
column_count: 0,
page_count: 0,
language_count: 0,
row_count: 0,
},
column_definitions: vec![],
pages: vec![],
languages: vec![],
};
// Feeding it invalid data should not panic
EXD::from_existing(&exh, &read(d).unwrap());
}
}

View file

@ -14,12 +14,12 @@ use crate::ByteSpan;
#[brw(big)] #[brw(big)]
#[allow(dead_code)] #[allow(dead_code)]
pub struct EXHHeader { pub struct EXHHeader {
version: u16, pub(crate) version: u16,
pub data_offset: u16, pub data_offset: u16,
column_count: u16, pub(crate) column_count: u16,
page_count: u16, pub(crate) page_count: u16,
language_count: u16, pub(crate) language_count: u16,
#[br(pad_before = 6)] #[br(pad_before = 6)]
#[br(pad_after = 8)] #[br(pad_after = 8)]