mirror of
https://github.com/redstrate/Physis.git
synced 2025-04-24 13:37:44 +00:00
Add invalid data test for ShaderPackage
This commit is contained in:
parent
54c08dbdcb
commit
4a882d529d
1 changed files with 19 additions and 1 deletions
20
src/shpk.rs
20
src/shpk.rs
|
@ -190,7 +190,7 @@ impl ShaderPackage {
|
|||
/// Reads an existing SHPK file
|
||||
pub fn from_existing(buffer: ByteSpan) -> Option<ShaderPackage> {
|
||||
let mut cursor = Cursor::new(buffer);
|
||||
let mut package = ShaderPackage::read(&mut cursor).unwrap();
|
||||
let mut package = ShaderPackage::read(&mut cursor).ok()?;
|
||||
|
||||
for (i, node) in package.nodes.iter().enumerate() {
|
||||
package.node_selectors.push((node.selector, i as u32));
|
||||
|
@ -235,3 +235,21 @@ impl ShaderPackage {
|
|||
selector
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use std::fs::read;
|
||||
use std::path::PathBuf;
|
||||
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn test_invalid() {
|
||||
let mut d = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
|
||||
d.push("resources/tests");
|
||||
d.push("random");
|
||||
|
||||
// Feeding it invalid data should not panic
|
||||
ShaderPackage::from_existing(&read(d).unwrap());
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue