diff --git a/src/test/testcases.docopt b/src/test/testcases.docopt index 3268136..ef41ef9 100644 --- a/src/test/testcases.docopt +++ b/src/test/testcases.docopt @@ -1096,3 +1096,30 @@ $ program --speed=-20 {"--speed": "-20"} $ program --speed -20 {"--speed": "-20"} + +r"""Usage: prog [-a ]...""" +$ program -a foo bar +{"-a": 1, "": ["foo"], "": ["bar"]} +$ program -a foo bar -a foo2 bar2 +{"-a": 2, "": ["foo", "foo2"], "": ["bar", "bar2"]} + +r"""Usage: + prog a b [-p ]... + prog a c [-p ]... +""" +$ program a c -p bool 1 -p bool 0 +{"-p": 2, "": ["bool", "bool"], "": ["1", "0"]} + +r"""Usage: + prog a b []... + prog a c [-p ]... +""" +$ program a c -p bool 1 -p bool 0 -p bool 1 +{"-p": 3, "": ["bool", "bool", "bool"], "": ["1", "0", "1"]} + +r"""Usage: + prog a b [-p ]... + prog a c [-p ]... +""" +$ program a c -p bool 1 -p bool 0 -p bool 1 +{"-p": 3, "": ["bool", "bool", "bool"], "": ["1", "0", "1"]} diff --git a/src/test/testcases.rs b/src/test/testcases.rs index 29f222d..8f69042 100644 --- a/src/test/testcases.rs +++ b/src/test/testcases.rs @@ -789,3 +789,19 @@ test_expect!(test_212_testcases, "Usage: prog --speed=ARG", &["--speed=-20"], ve test_expect!(test_213_testcases, "Usage: prog --speed=ARG", &["--speed", "-20"], vec!(("--speed", Plain(Some("-20".to_string()))))); +test_expect!(test_214_testcases, "Usage: prog [-a ]...", &["-a", "foo", "bar"], vec!(("", List(vec!("foo".to_string()))), ("-a", Counted(1)), ("", List(vec!("bar".to_string()))))); + +test_expect!(test_215_testcases, "Usage: prog [-a ]...", &["-a", "foo", "bar", "-a", "foo2", "bar2"], vec!(("", List(vec!("foo".to_string(), "foo2".to_string()))), ("-a", Counted(2)), ("", List(vec!("bar".to_string(), "bar2".to_string()))))); + +test_expect!(test_216_testcases, "Usage: + prog a b [-p ]... + prog a c [-p ]...", &["a", "c", "-p", "bool", "1", "-p", "bool", "0"], vec!(("", List(vec!("1".to_string(), "0".to_string()))), ("", List(vec!("bool".to_string(), "bool".to_string()))), ("-p", Counted(2)))); + +test_expect!(test_217_testcases, "Usage: + prog a b []... + prog a c [-p ]...", &["a", "c", "-p", "bool", "1", "-p", "bool", "0", "-p", "bool", "1"], vec!(("", List(vec!("1".to_string(), "0".to_string(), "1".to_string()))), ("", List(vec!("bool".to_string(), "bool".to_string(), "bool".to_string()))), ("-p", Counted(3)))); + +test_expect!(test_218_testcases, "Usage: + prog a b [-p ]... + prog a c [-p ]...", &["a", "c", "-p", "bool", "1", "-p", "bool", "0", "-p", "bool", "1"], vec!(("", List(vec!("1".to_string(), "0".to_string(), "1".to_string()))), ("", List(vec!("bool".to_string(), "bool".to_string(), "bool".to_string()))), ("-p", Counted(3)))); +