119625d8cSopenharmony_ci#![cfg(feature = "env")]
219625d8cSopenharmony_ci
319625d8cSopenharmony_ciuse std::env;
419625d8cSopenharmony_ci
519625d8cSopenharmony_ciuse clap::{Arg, ArgAction, Command};
619625d8cSopenharmony_ci
719625d8cSopenharmony_ciuse super::utils;
819625d8cSopenharmony_ci
919625d8cSopenharmony_cistatic HIDE_ENV: &str = "\
1019625d8cSopenharmony_ciUsage: ctest [OPTIONS]
1119625d8cSopenharmony_ci
1219625d8cSopenharmony_ciOptions:
1319625d8cSopenharmony_ci  -c, --cafe <FILE>  A coffeehouse, coffee shop, or café.
1419625d8cSopenharmony_ci  -h, --help         Print help
1519625d8cSopenharmony_ci  -V, --version      Print version
1619625d8cSopenharmony_ci";
1719625d8cSopenharmony_ci
1819625d8cSopenharmony_cistatic SHOW_ENV: &str = "\
1919625d8cSopenharmony_ciUsage: ctest [OPTIONS]
2019625d8cSopenharmony_ci
2119625d8cSopenharmony_ciOptions:
2219625d8cSopenharmony_ci  -c, --cafe <FILE>  A coffeehouse, coffee shop, or café. [env: ENVVAR=MYVAL]
2319625d8cSopenharmony_ci  -h, --help         Print help
2419625d8cSopenharmony_ci  -V, --version      Print version
2519625d8cSopenharmony_ci";
2619625d8cSopenharmony_ci
2719625d8cSopenharmony_cistatic HIDE_ENV_VALS: &str = "\
2819625d8cSopenharmony_ciUsage: ctest [OPTIONS]
2919625d8cSopenharmony_ci
3019625d8cSopenharmony_ciOptions:
3119625d8cSopenharmony_ci  -c, --cafe <FILE>  A coffeehouse, coffee shop, or café. [env: ENVVAR]
3219625d8cSopenharmony_ci  -h, --help         Print help
3319625d8cSopenharmony_ci  -V, --version      Print version
3419625d8cSopenharmony_ci";
3519625d8cSopenharmony_ci
3619625d8cSopenharmony_cistatic SHOW_ENV_VALS: &str = "\
3719625d8cSopenharmony_ciUsage: ctest [OPTIONS]
3819625d8cSopenharmony_ci
3919625d8cSopenharmony_ciOptions:
4019625d8cSopenharmony_ci  -c, --cafe <FILE>  A coffeehouse, coffee shop, or café. [env: ENVVAR=MYVAL]
4119625d8cSopenharmony_ci  -h, --help         Print help
4219625d8cSopenharmony_ci  -V, --version      Print version
4319625d8cSopenharmony_ci";
4419625d8cSopenharmony_ci
4519625d8cSopenharmony_cistatic HIDE_ENV_FLAG: &str = "\
4619625d8cSopenharmony_ciUsage: ctest [OPTIONS]
4719625d8cSopenharmony_ci
4819625d8cSopenharmony_ciOptions:
4919625d8cSopenharmony_ci  -c, --cafe     A coffeehouse, coffee shop, or café.
5019625d8cSopenharmony_ci  -h, --help     Print help
5119625d8cSopenharmony_ci  -V, --version  Print version
5219625d8cSopenharmony_ci";
5319625d8cSopenharmony_ci
5419625d8cSopenharmony_cistatic SHOW_ENV_FLAG: &str = "\
5519625d8cSopenharmony_ciUsage: ctest [OPTIONS]
5619625d8cSopenharmony_ci
5719625d8cSopenharmony_ciOptions:
5819625d8cSopenharmony_ci  -c, --cafe     A coffeehouse, coffee shop, or café. [env: ENVVAR=MYVAL]
5919625d8cSopenharmony_ci  -h, --help     Print help
6019625d8cSopenharmony_ci  -V, --version  Print version
6119625d8cSopenharmony_ci";
6219625d8cSopenharmony_ci
6319625d8cSopenharmony_cistatic HIDE_ENV_VALS_FLAG: &str = "\
6419625d8cSopenharmony_ciUsage: ctest [OPTIONS]
6519625d8cSopenharmony_ci
6619625d8cSopenharmony_ciOptions:
6719625d8cSopenharmony_ci  -c, --cafe     A coffeehouse, coffee shop, or café. [env: ENVVAR]
6819625d8cSopenharmony_ci  -h, --help     Print help
6919625d8cSopenharmony_ci  -V, --version  Print version
7019625d8cSopenharmony_ci";
7119625d8cSopenharmony_ci
7219625d8cSopenharmony_cistatic SHOW_ENV_VALS_FLAG: &str = "\
7319625d8cSopenharmony_ciUsage: ctest [OPTIONS]
7419625d8cSopenharmony_ci
7519625d8cSopenharmony_ciOptions:
7619625d8cSopenharmony_ci  -c, --cafe     A coffeehouse, coffee shop, or café. [env: ENVVAR=MYVAL]
7719625d8cSopenharmony_ci  -h, --help     Print help
7819625d8cSopenharmony_ci  -V, --version  Print version
7919625d8cSopenharmony_ci";
8019625d8cSopenharmony_ci
8119625d8cSopenharmony_ci#[test]
8219625d8cSopenharmony_cifn hide_env() {
8319625d8cSopenharmony_ci    env::set_var("ENVVAR", "MYVAL");
8419625d8cSopenharmony_ci
8519625d8cSopenharmony_ci    let cmd = Command::new("ctest").version("0.1").arg(
8619625d8cSopenharmony_ci        Arg::new("cafe")
8719625d8cSopenharmony_ci            .short('c')
8819625d8cSopenharmony_ci            .long("cafe")
8919625d8cSopenharmony_ci            .value_name("FILE")
9019625d8cSopenharmony_ci            .hide_env(true)
9119625d8cSopenharmony_ci            .env("ENVVAR")
9219625d8cSopenharmony_ci            .help("A coffeehouse, coffee shop, or café.")
9319625d8cSopenharmony_ci            .action(ArgAction::Set),
9419625d8cSopenharmony_ci    );
9519625d8cSopenharmony_ci
9619625d8cSopenharmony_ci    utils::assert_output(cmd, "ctest --help", HIDE_ENV, false);
9719625d8cSopenharmony_ci}
9819625d8cSopenharmony_ci
9919625d8cSopenharmony_ci#[test]
10019625d8cSopenharmony_cifn show_env() {
10119625d8cSopenharmony_ci    env::set_var("ENVVAR", "MYVAL");
10219625d8cSopenharmony_ci
10319625d8cSopenharmony_ci    let cmd = Command::new("ctest").version("0.1").arg(
10419625d8cSopenharmony_ci        Arg::new("cafe")
10519625d8cSopenharmony_ci            .short('c')
10619625d8cSopenharmony_ci            .long("cafe")
10719625d8cSopenharmony_ci            .value_name("FILE")
10819625d8cSopenharmony_ci            .env("ENVVAR")
10919625d8cSopenharmony_ci            .help("A coffeehouse, coffee shop, or café.")
11019625d8cSopenharmony_ci            .action(ArgAction::Set),
11119625d8cSopenharmony_ci    );
11219625d8cSopenharmony_ci
11319625d8cSopenharmony_ci    utils::assert_output(cmd, "ctest --help", SHOW_ENV, false);
11419625d8cSopenharmony_ci}
11519625d8cSopenharmony_ci
11619625d8cSopenharmony_ci#[test]
11719625d8cSopenharmony_cifn hide_env_vals() {
11819625d8cSopenharmony_ci    env::set_var("ENVVAR", "MYVAL");
11919625d8cSopenharmony_ci
12019625d8cSopenharmony_ci    let cmd = Command::new("ctest").version("0.1").arg(
12119625d8cSopenharmony_ci        Arg::new("cafe")
12219625d8cSopenharmony_ci            .short('c')
12319625d8cSopenharmony_ci            .long("cafe")
12419625d8cSopenharmony_ci            .value_name("FILE")
12519625d8cSopenharmony_ci            .hide_env_values(true)
12619625d8cSopenharmony_ci            .env("ENVVAR")
12719625d8cSopenharmony_ci            .help("A coffeehouse, coffee shop, or café.")
12819625d8cSopenharmony_ci            .action(ArgAction::Set),
12919625d8cSopenharmony_ci    );
13019625d8cSopenharmony_ci
13119625d8cSopenharmony_ci    utils::assert_output(cmd, "ctest --help", HIDE_ENV_VALS, false);
13219625d8cSopenharmony_ci}
13319625d8cSopenharmony_ci
13419625d8cSopenharmony_ci#[test]
13519625d8cSopenharmony_cifn show_env_vals() {
13619625d8cSopenharmony_ci    env::set_var("ENVVAR", "MYVAL");
13719625d8cSopenharmony_ci
13819625d8cSopenharmony_ci    let cmd = Command::new("ctest").version("0.1").arg(
13919625d8cSopenharmony_ci        Arg::new("cafe")
14019625d8cSopenharmony_ci            .short('c')
14119625d8cSopenharmony_ci            .long("cafe")
14219625d8cSopenharmony_ci            .value_name("FILE")
14319625d8cSopenharmony_ci            .env("ENVVAR")
14419625d8cSopenharmony_ci            .help("A coffeehouse, coffee shop, or café.")
14519625d8cSopenharmony_ci            .action(ArgAction::Set),
14619625d8cSopenharmony_ci    );
14719625d8cSopenharmony_ci
14819625d8cSopenharmony_ci    utils::assert_output(cmd, "ctest --help", SHOW_ENV_VALS, false);
14919625d8cSopenharmony_ci}
15019625d8cSopenharmony_ci
15119625d8cSopenharmony_ci#[test]
15219625d8cSopenharmony_cifn hide_env_flag() {
15319625d8cSopenharmony_ci    env::set_var("ENVVAR", "MYVAL");
15419625d8cSopenharmony_ci
15519625d8cSopenharmony_ci    let cmd = Command::new("ctest").version("0.1").arg(
15619625d8cSopenharmony_ci        Arg::new("cafe")
15719625d8cSopenharmony_ci            .short('c')
15819625d8cSopenharmony_ci            .long("cafe")
15919625d8cSopenharmony_ci            .action(ArgAction::SetTrue)
16019625d8cSopenharmony_ci            .hide_env(true)
16119625d8cSopenharmony_ci            .env("ENVVAR")
16219625d8cSopenharmony_ci            .help("A coffeehouse, coffee shop, or café."),
16319625d8cSopenharmony_ci    );
16419625d8cSopenharmony_ci
16519625d8cSopenharmony_ci    utils::assert_output(cmd, "ctest --help", HIDE_ENV_FLAG, false);
16619625d8cSopenharmony_ci}
16719625d8cSopenharmony_ci
16819625d8cSopenharmony_ci#[test]
16919625d8cSopenharmony_cifn show_env_flag() {
17019625d8cSopenharmony_ci    env::set_var("ENVVAR", "MYVAL");
17119625d8cSopenharmony_ci
17219625d8cSopenharmony_ci    let cmd = Command::new("ctest").version("0.1").arg(
17319625d8cSopenharmony_ci        Arg::new("cafe")
17419625d8cSopenharmony_ci            .short('c')
17519625d8cSopenharmony_ci            .long("cafe")
17619625d8cSopenharmony_ci            .action(ArgAction::SetTrue)
17719625d8cSopenharmony_ci            .env("ENVVAR")
17819625d8cSopenharmony_ci            .help("A coffeehouse, coffee shop, or café."),
17919625d8cSopenharmony_ci    );
18019625d8cSopenharmony_ci
18119625d8cSopenharmony_ci    utils::assert_output(cmd, "ctest --help", SHOW_ENV_FLAG, false);
18219625d8cSopenharmony_ci}
18319625d8cSopenharmony_ci
18419625d8cSopenharmony_ci#[test]
18519625d8cSopenharmony_cifn hide_env_vals_flag() {
18619625d8cSopenharmony_ci    env::set_var("ENVVAR", "MYVAL");
18719625d8cSopenharmony_ci
18819625d8cSopenharmony_ci    let cmd = Command::new("ctest").version("0.1").arg(
18919625d8cSopenharmony_ci        Arg::new("cafe")
19019625d8cSopenharmony_ci            .short('c')
19119625d8cSopenharmony_ci            .long("cafe")
19219625d8cSopenharmony_ci            .action(ArgAction::SetTrue)
19319625d8cSopenharmony_ci            .hide_env_values(true)
19419625d8cSopenharmony_ci            .env("ENVVAR")
19519625d8cSopenharmony_ci            .help("A coffeehouse, coffee shop, or café."),
19619625d8cSopenharmony_ci    );
19719625d8cSopenharmony_ci
19819625d8cSopenharmony_ci    utils::assert_output(cmd, "ctest --help", HIDE_ENV_VALS_FLAG, false);
19919625d8cSopenharmony_ci}
20019625d8cSopenharmony_ci
20119625d8cSopenharmony_ci#[test]
20219625d8cSopenharmony_cifn show_env_vals_flag() {
20319625d8cSopenharmony_ci    env::set_var("ENVVAR", "MYVAL");
20419625d8cSopenharmony_ci
20519625d8cSopenharmony_ci    let cmd = Command::new("ctest").version("0.1").arg(
20619625d8cSopenharmony_ci        Arg::new("cafe")
20719625d8cSopenharmony_ci            .short('c')
20819625d8cSopenharmony_ci            .long("cafe")
20919625d8cSopenharmony_ci            .action(ArgAction::SetTrue)
21019625d8cSopenharmony_ci            .env("ENVVAR")
21119625d8cSopenharmony_ci            .help("A coffeehouse, coffee shop, or café."),
21219625d8cSopenharmony_ci    );
21319625d8cSopenharmony_ci
21419625d8cSopenharmony_ci    utils::assert_output(cmd, "ctest --help", SHOW_ENV_VALS_FLAG, false);
21519625d8cSopenharmony_ci}
216