summaryrefslogtreecommitdiffstats
path: root/third_party/rust/yaml-rust/tests/quickcheck.rs
blob: 0efd6799784714acc7bf8ebd7450b2dbfbd133b7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
extern crate yaml_rust;
#[macro_use]
extern crate quickcheck;

use quickcheck::TestResult;
use yaml_rust::{Yaml, YamlEmitter, YamlLoader};

quickcheck! {
    fn test_check_weird_keys(xs: Vec<String>) -> 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(&input).unwrap();
        }
        match YamlLoader::load_from_str(&out_str) {
            Ok(output) => TestResult::from_bool(output.len() == 1 && input == output[0]),
            Err(err) => TestResult::error(err.to_string()),
        }
    }
}