1 extern crate yaml_rust; 2 #[macro_use] 3 extern crate quickcheck; 4 5 use quickcheck::TestResult; 6 use yaml_rust::{Yaml, YamlEmitter, YamlLoader}; 7 8 quickcheck! { 9 fn test_check_weird_keys(xs: Vec<String>) -> TestResult { 10 let mut out_str = String::new(); 11 let input = Yaml::Array(xs.into_iter().map(Yaml::String).collect()); 12 { 13 let mut emitter = YamlEmitter::new(&mut out_str); 14 emitter.dump(&input).unwrap(); 15 } 16 match YamlLoader::load_from_str(&out_str) { 17 Ok(output) => TestResult::from_bool(output.len() == 1 && input == output[0]), 18 Err(err) => TestResult::error(err.to_string()), 19 } 20 } 21 } 22