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