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 ShaderPackage

This commit is contained in:
Joshua Goins 2024-04-16 22:06:59 -04:00
parent 54c08dbdcb
commit 4a882d529d

View file

@ -190,7 +190,7 @@ impl ShaderPackage {
/// Reads an existing SHPK file /// Reads an existing SHPK file
pub fn from_existing(buffer: ByteSpan) -> Option<ShaderPackage> { pub fn from_existing(buffer: ByteSpan) -> Option<ShaderPackage> {
let mut cursor = Cursor::new(buffer); 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() { for (i, node) in package.nodes.iter().enumerate() {
package.node_selectors.push((node.selector, i as u32)); package.node_selectors.push((node.selector, i as u32));
@ -235,3 +235,21 @@ impl ShaderPackage {
selector 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());
}
}