Sebastian Thielthanks fuzzy15a379a4 years agoHistory
170 lines · 3.9 KB · Rust
RawDownload
use git_config::parse::Events; use super::*; #[test]fn fuzz() {    assert!(        Events::from_str("[]A=\\\\\r\\\n\n").is_err(),        "empty sections are not allowed, and it won't crash either"    );} #[test]#[rustfmt::skip]fn complex() {    let config = r#"[user]        email = code@eddie.sh        name = Foo Bar[core]        autocrlf = input[push]        default = simple[commit]        gpgsign = true[gpg]        program = gpg[url "ssh://git@github.com/"]        insteadOf = "github://"[url "ssh://git@git.eddie.sh/edward/"]        insteadOf = "gitea://"[pull]        ff = only[init]        defaultBranch = master"#;     assert_eq!(        Events::from_str(config)            .unwrap()            .into_iter()            .collect::<Vec<_>>(),        vec![            section::header_event("user", None),            newline(),             whitespace("        "),            name("email"),            whitespace(" "),            separator(),            whitespace(" "),            value("code@eddie.sh"),            newline(),             whitespace("        "),            name("name"),            whitespace(" "),            separator(),            whitespace(" "),            value("Foo Bar"),            newline(),             section::header_event("core", None),            newline(),             whitespace("        "),            name("autocrlf"),            whitespace(" "),            separator(),            whitespace(" "),            value("input"),            newline(),             section::header_event("push", None),            newline(),             whitespace("        "),            name("default"),            whitespace(" "),            separator(),            whitespace(" "),            value("simple"),            newline(),             section::header_event("commit", None),            newline(),             whitespace("        "),            name("gpgsign"),            whitespace(" "),            separator(),            whitespace(" "),            value("true"),            newline(),             section::header_event("gpg", None),            newline(),             whitespace("        "),            name("program"),            whitespace(" "),            separator(),            whitespace(" "),            value("gpg"),            newline(),             section::header_event("url", "ssh://git@github.com/"),            newline(),             whitespace("        "),            name("insteadOf"),            whitespace(" "),            separator(),            whitespace(" "),            value("\"github://\""),            newline(),             section::header_event("url",  "ssh://git@git.eddie.sh/edward/"),            newline(),             whitespace("        "),            name("insteadOf"),            whitespace(" "),            separator(),            whitespace(" "),            value("\"gitea://\""),            newline(),             section::header_event("pull", None),            newline(),             whitespace("        "),            name("ff"),            whitespace(" "),            separator(),            whitespace(" "),            value("only"),            newline(),             section::header_event("init", None),            newline(),             whitespace("        "),            name("defaultBranch"),            whitespace(" "),            separator(),            whitespace(" "),            value("master"),        ]    );} #[test]fn skips_bom() {    let bytes = b"    [core]        a = 1";    let bytes_with_gb18030_bom = "\u{feff}    [core]        a = 1";     assert_eq!(        Events::from_bytes(bytes, None),        Events::from_bytes(bytes_with_gb18030_bom.as_bytes(), None)    );    assert_eq!(        Events::from_bytes_owned(bytes, None),        Events::from_bytes_owned(bytes_with_gb18030_bom.as_bytes(), None)    );}