From 6cb37b8e3205d2bf01a6a5f58a1f353935737d0a Mon Sep 17 00:00:00 2001 From: Konrad Borowski Date: Sat, 15 Sep 2018 18:49:17 +0200 Subject: [PATCH] Add testing whether load(dump(x)) is an identity in quickcheck --- parser/tests/quickcheck.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/parser/tests/quickcheck.rs b/parser/tests/quickcheck.rs index 43fd254..c2c89bc 100644 --- a/parser/tests/quickcheck.rs +++ b/parser/tests/quickcheck.rs @@ -9,13 +9,14 @@ use yaml_rust::{Yaml, YamlEmitter, YamlLoader}; quickcheck! { fn test_check_weird_keys(xs: Vec) -> TestResult { let mut out_str = String::new(); + let input = Yaml::Array(xs.into_iter().map(Yaml::String).collect()); { let mut emitter = YamlEmitter::new(&mut out_str); - emitter.dump(&Yaml::Array(xs.into_iter().map(Yaml::String).collect())).unwrap(); + emitter.dump(&input).unwrap(); } - if let Err(err) = YamlLoader::load_from_str(&out_str) { - return TestResult::error(err.description()); + match YamlLoader::load_from_str(&out_str) { + Ok(output) => TestResult::from_bool(output.len() == 1 && input == output[0]), + Err(err) => TestResult::error(err.description()), } - TestResult::passed() } }