]> git.proxmox.com Git - rustc.git/blob - vendor/clap/src/builder/tests.rs
New upstream version 1.69.0+dfsg1
[rustc.git] / vendor / clap / src / builder / tests.rs
1 use crate::Arg;
2 use crate::Command;
3
4 #[test]
5 fn 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]
18 fn 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]
32 fn app_send_sync() {
33 fn foo<T: Send + Sync>(_: T) {}
34 foo(Command::new("test"))
35 }
36
37 #[test]
38 fn 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]
53 fn arg_send_sync() {
54 fn foo<T: Send + Sync>(_: T) {}
55 foo(Arg::new("test"))
56 }