tests: adds tests to protect against panics when using globals and calling App::get_matches_from_safe_borrow multiple times

This commit is contained in:
Kevin K 2017-10-24 10:45:33 -04:00
parent d86ec79742
commit 2c3f7f6054
No known key found for this signature in database
GPG key ID: 17218E4B3692F01A

37
tests/global_args.rs Normal file
View file

@ -0,0 +1,37 @@
extern crate clap;
extern crate regex;
#[cfg(test)]
mod tests {
include!("../clap-test.rs");
use clap::{App, Arg, SubCommand, ArgMatches};
fn get_app() -> App<'static, 'static> {
App::new("myprog")
.arg(Arg::with_name("GLOBAL_ARG")
.long("global-arg")
.help(
"Specifies something needed by the subcommands",
)
.global(true)
.takes_value(true)
.default_value("default_value"))
.arg(Arg::with_name("GLOBAL_FLAG")
.long("global-flag")
.help(
"Specifies something needed by the subcommands",
)
.multiple(true)
.global(true))
.subcommand(SubCommand::with_name("outer")
.subcommand(SubCommand::with_name("inner")))
}
#[test]
fn issue_1076() {
let mut app = get_app();
app.get_matches_from_safe_borrow(vec!["myprog"]);
app.get_matches_from_safe_borrow(vec!["myprog"]);
app.get_matches_from_safe_borrow(vec!["myprog"]);
}
}