diff --git a/saphyr/Cargo.toml b/saphyr/Cargo.toml index c4a4780..1e63db6 100644 --- a/saphyr/Cargo.toml +++ b/saphyr/Cargo.toml @@ -11,3 +11,6 @@ repository = "https://github.com/chyh1990/yaml-rust" [dependencies] clippy = { version = "^0.*", optional = true } linked-hash-map = ">=0.0.9, <0.4" + +[dev-dependencies] +quickcheck = "0.4" diff --git a/saphyr/tests/quickcheck.rs b/saphyr/tests/quickcheck.rs new file mode 100644 index 0000000..62db056 --- /dev/null +++ b/saphyr/tests/quickcheck.rs @@ -0,0 +1,21 @@ +extern crate yaml_rust; +#[macro_use] +extern crate quickcheck; + +use quickcheck::TestResult; +use yaml_rust::{Yaml, YamlLoader, YamlEmitter}; +use std::error::Error; + +quickcheck! { + fn test_check_weird_keys(xs: Vec) -> TestResult { + let mut out_str = String::new(); + { + let mut emitter = YamlEmitter::new(&mut out_str); + emitter.dump(&Yaml::Array(xs.into_iter().map(|s| Yaml::String(s)).collect())).unwrap(); + } + if let Err(err) = YamlLoader::load_from_str(&out_str) { + return TestResult::error(err.description()); + } + return TestResult::passed(); + } +} \ No newline at end of file