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:
parent
3b6c4e83df
commit
d9bf25cb0e
2 changed files with 37 additions and 4 deletions
33
src/exd.rs
33
src/exd.rs
|
@ -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());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -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)]
|
||||||
|
|
Loading…
Add table
Reference in a new issue