Merge branch 'master' into prevent-too-deep-recursion

This commit is contained in:
David Tolnay 2018-09-15 09:14:52 -07:00
commit 1078665c32
2 changed files with 58 additions and 1 deletions

View file

@ -13,4 +13,4 @@ repository = "https://github.com/chyh1990/yaml-rust"
linked-hash-map = ">=0.0.9, <0.6"
[dev-dependencies]
quickcheck = "0.6"
quickcheck = "0.7"

View file

@ -639,6 +639,63 @@ c: ~
assert_eq!(first[0]["important"].as_bool().unwrap(), true);
}
#[test]
fn test_indentation_equality() {
let four_spaces = YamlLoader::load_from_str(r#"
hash:
with:
indentations
"#).unwrap().into_iter().next().unwrap();
let two_spaces = YamlLoader::load_from_str(r#"
hash:
with:
indentations
"#).unwrap().into_iter().next().unwrap();
let one_space = YamlLoader::load_from_str(r#"
hash:
with:
indentations
"#).unwrap().into_iter().next().unwrap();
let mixed_spaces = YamlLoader::load_from_str(r#"
hash:
with:
indentations
"#).unwrap().into_iter().next().unwrap();
assert_eq!(four_spaces, two_spaces);
assert_eq!(two_spaces, one_space);
assert_eq!(four_spaces, mixed_spaces);
}
#[test]
fn test_two_space_indentations() {
// https://github.com/kbknapp/clap-rs/issues/965
let s = r#"
subcommands:
- server:
about: server related commands
subcommands2:
- server:
about: server related commands
subcommands3:
- server:
about: server related commands
"#;
let out = YamlLoader::load_from_str(&s).unwrap();
let doc = &out.into_iter().next().unwrap();
println!("{:#?}", doc);
assert_eq!(doc["subcommands"][0]["server"], Yaml::Null);
assert!(doc["subcommands2"][0]["server"].as_hash().is_some());
assert!(doc["subcommands3"][0]["server"].as_hash().is_some());
}
#[test]
fn test_recursion_depth_check_objects() {
let s = "{a:".repeat(10_000) + &"}".repeat(10_000);