From 7cd23fe58d3e0a0b90deb1a27f02583a373b7e10 Mon Sep 17 00:00:00 2001 From: Yuheng Chen Date: Wed, 25 May 2016 13:19:36 +0800 Subject: [PATCH] Fix assert fail on empty document This closes #20 --- saphyr/src/parser.rs | 3 +-- saphyr/src/yaml.rs | 8 ++++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/saphyr/src/parser.rs b/saphyr/src/parser.rs index 65924d7..eb574c0 100644 --- a/saphyr/src/parser.rs +++ b/saphyr/src/parser.rs @@ -124,8 +124,7 @@ impl> Parser { fn parse(&mut self, recv: &mut R) -> ParseResult { - if self.scanner.stream_ended() - || self.state == State::End { + if self.state == State::End { return Ok(Event::StreamEnd); } let ev = try!(self.state_machine()); diff --git a/saphyr/src/yaml.rs b/saphyr/src/yaml.rs index d840a30..86730dc 100644 --- a/saphyr/src/yaml.rs +++ b/saphyr/src/yaml.rs @@ -331,6 +331,14 @@ c: [1, 2] assert!(doc["d"][0].is_badvalue()); } + #[test] + fn test_empty_doc() { + let s: String = "".to_owned(); + YamlLoader::load_from_str(&s).unwrap(); + let s: String = "---".to_owned(); + assert_eq!(YamlLoader::load_from_str(&s).unwrap()[0], Yaml::Null); + } + #[test] fn test_parser() { let s: String = "