fn succeeds_with_everything() {
    let output = expect_exit_code!(
        1,
        r#"
        env_files = ["src/.env"]
        default_env.generic = ["sh", "-c", "{COMMAND}"]
        default_env.targets.linux = ["bash", "-c", "{COMMAND}"]
        [scripts]
        basic.subcommands.test.cmd.generic = "exit 5"
        basic.subcommands.test.cmd.targets.linux.exec = [
            "echo %SHORTGREETING %%",
            "echo %name && exit 1"
        ]
        basic.subcommands.test.env_vars = ["SHORTGREETING"]
        basic.subcommands.test.cmd.targets.linux.shell = ["sh", "-c", "{COMMAND}"]
        basic.subcommands.nested.subcommands.test = "exit 2"
        basic.subcommands.nested.subcommands.other = "exit 3"
        basic.subcommands.nested.order = """
        test {
            Any => other
        }
        """
        basic.args = ["name"]
        basic.order = """
        test {
            Any => nested {
                Any => test
            }
        }
        """
        "#,
        BONNIE_VERSION,
        ["basic", "Name", "foo", "bar"]
    );
    println!("{:?}", output);
    assert_contains_ordered!(
        output,
        [
            "sh, [\"-c\", \"echo Hello foo bar && echo Name && exit 1\"]",
            "sh, [\"-c\", \"exit 2\"]",
            "sh, [\"-c\", \"exit 3\"]",
            "sh, [\"-c\", \"echo Hello foo bar && echo Name && exit 1\"]"
        ]
    );
}
// This test will only work on Linux
This test will only work on Linux
This test will only work on Linux
fn succeeds_with_everything() {
    let output = expect_exit_code!(
        1,
        r#"
        env_files = ["src/.env"]
        default_env.generic = ["sh", "-c", "{COMMAND}"]
        default_env.targets.linux = ["bash", "-c", "{COMMAND}"]
        [scripts]
        basic.subcommands.test.cmd.generic = "exit 5"
        basic.subcommands.test.cmd.targets.linux.exec = [
            "echo %SHORTGREETING %%",
            "echo %name && exit 1"
        ]
        basic.subcommands.test.env_vars = ["SHORTGREETING"]
        basic.subcommands.test.cmd.targets.linux.shell = ["sh", "-c", "{COMMAND}"]
        basic.subcommands.nested.subcommands.test = "exit 2"
        basic.subcommands.nested.subcommands.other = "exit 3"
        basic.subcommands.nested.order = """
        test {
            Any => other
        }
        """
        basic.args = ["name"]
        basic.order = """
        test {
            Any => nested {
                Any => test
            }
        }
        """
        "#,
        BONNIE_VERSION,
        ["basic", "Name", "foo", "bar"]
    );
    println!("{:?}", output);
    assert_contains_ordered!(
        output,
        [
            "sh, [\"-c\", \"echo Hello foo bar && echo Name && exit 1\"]",
            "sh, [\"-c\", \"exit 2\"]",
            "sh, [\"-c\", \"exit 3\"]",
            "sh, [\"-c\", \"echo Hello foo bar && echo Name && exit 1\"]"
        ]
    );
}
fn succeeds_with_everything ( ) { let output = expect_exit_code ! ( 1 r#"
        env_files = ["src/.env"]
        default_env.generic = ["sh", "-c", "{COMMAND}"]
        default_env.targets.linux = ["bash", "-c", "{COMMAND}"]
        [scripts]
        basic.subcommands.test.cmd.generic = "exit 5"
        basic.subcommands.test.cmd.targets.linux.exec = [
            "echo %SHORTGREETING %%",
            "echo %name && exit 1"
        ]
        basic.subcommands.test.env_vars = ["SHORTGREETING"]
        basic.subcommands.test.cmd.targets.linux.shell = ["sh", "-c", "{COMMAND}"]
        basic.subcommands.nested.subcommands.test = "exit 2"
        basic.subcommands.nested.subcommands.other = "exit 3"
        basic.subcommands.nested.order = """
        test {
            Any => other
        }
        """
        basic.args = ["name"]
        basic.order = """
        test {
            Any => nested {
                Any => test
            }
        }
        """
        "# BONNIE_VERSION [ " " " " " " " " ] ) ; println ! ( " " output ) ; assert_contains_ordered ! ( output [ " \" \" \" \" " " \" \" \" \" " " \" \" \" \" " " \" \" \" \" " ] ) ; }
This test will only work on Linux
This test will only work on Linux