diff --git a/resources/tests/random b/resources/tests/random new file mode 100644 index 0000000..6a8d916 Binary files /dev/null and b/resources/tests/random differ diff --git a/src/cfg.rs b/src/cfg.rs index 5af446c..8f20c89 100644 --- a/src/cfg.rs +++ b/src/cfg.rs @@ -33,7 +33,7 @@ impl ConfigFile { let reader = BufReader::new(cursor); let mut current_category: Option = None; - + for line in reader.lines().flatten() { if !line.is_empty() && line != "\0" { if line.contains('<') || line.contains('>') { @@ -131,6 +131,14 @@ mod tests { read(d).unwrap() } + fn common_setup_invalid() -> ByteBuffer { + let mut d = PathBuf::from(env!("CARGO_MANIFEST_DIR")); + d.push("resources/tests"); + d.push("random"); + + read(d).unwrap() + } + #[test] fn basic_parsing() { let cfg = common_setup(); @@ -150,4 +158,12 @@ mod tests { assert_eq!(modified_cfg, cfg_buffer); } + + #[test] + fn test_invalid() { + let cfg = common_setup_invalid(); + + // Feeding it invalid data should not panic + ConfigFile::from_existing(&cfg); + } }