1 use crate::Arg; 2 use crate::Command; 3 4 #[test] propagate_version()5fn propagate_version() { 6 let mut cmd = Command::new("test") 7 .propagate_version(true) 8 .version("1.1") 9 .subcommand(Command::new("sub1")); 10 cmd._propagate(); 11 assert_eq!( 12 cmd.get_subcommands().next().unwrap().get_version(), 13 Some("1.1") 14 ); 15 } 16 17 #[test] global_setting()18fn global_setting() { 19 let mut cmd = Command::new("test") 20 .disable_version_flag(true) 21 .subcommand(Command::new("subcmd")); 22 cmd._propagate(); 23 assert!(cmd 24 .get_subcommands() 25 .find(|s| s.get_name() == "subcmd") 26 .unwrap() 27 .is_disable_version_flag_set()); 28 } 29 30 // This test will *fail to compile* if Command is not Send + Sync 31 #[test] app_send_sync()32fn app_send_sync() { 33 fn foo<T: Send + Sync>(_: T) {} 34 foo(Command::new("test")) 35 } 36 37 #[test] issue_2090()38fn issue_2090() { 39 let mut cmd = Command::new("cmd") 40 .disable_version_flag(true) 41 .subcommand(Command::new("sub")); 42 cmd._build_self(false); 43 44 assert!(cmd 45 .get_subcommands() 46 .next() 47 .unwrap() 48 .is_disable_version_flag_set()); 49 } 50 51 // This test will *fail to compile* if Arg is not Send + Sync 52 #[test] arg_send_sync()53fn arg_send_sync() { 54 fn foo<T: Send + Sync>(_: T) {} 55 foo(Arg::new("test")) 56 } 57