8b7640b633
When a recipe wraps cli tool and the tool exits with a non-zero code, just adds its own extra exit error message along with the messages from the tool. Introduce the `[no-exit-message]` attribute to suppress this additional message.
123 lines
1.8 KiB
Rust
123 lines
1.8 KiB
Rust
use libc::EXIT_FAILURE;
|
|
|
|
test! {
|
|
name: recipe_exit_message_suppressed,
|
|
justfile: r#"
|
|
# This is a doc comment
|
|
[no-exit-message]
|
|
hello:
|
|
@echo "Hello, World!"
|
|
@exit 100
|
|
"#,
|
|
stdout: "Hello, World!\n",
|
|
stderr: "",
|
|
status: 100,
|
|
}
|
|
|
|
test! {
|
|
name: silent_recipe_exit_message_suppressed,
|
|
justfile: r#"
|
|
# This is a doc comment
|
|
[no-exit-message]
|
|
@hello:
|
|
echo "Hello, World!"
|
|
exit 100
|
|
"#,
|
|
stdout: "Hello, World!\n",
|
|
stderr: "",
|
|
status: 100,
|
|
}
|
|
|
|
test! {
|
|
name: recipe_has_doc_comment,
|
|
justfile: r#"
|
|
# This is a doc comment
|
|
[no-exit-message]
|
|
hello:
|
|
@exit 100
|
|
"#,
|
|
args: ("--list"),
|
|
stdout: "
|
|
Available recipes:
|
|
hello # This is a doc comment
|
|
",
|
|
}
|
|
|
|
test! {
|
|
name: unknown_attribute,
|
|
justfile: r#"
|
|
# This is a doc comment
|
|
[unknown-attribute]
|
|
hello:
|
|
@exit 100
|
|
"#,
|
|
stderr: r#"
|
|
error: Unknown attribute `unknown-attribute`
|
|
|
|
|
2 | [unknown-attribute]
|
|
| ^^^^^^^^^^^^^^^^^
|
|
"#,
|
|
status: EXIT_FAILURE,
|
|
}
|
|
|
|
test! {
|
|
name: empty_attribute,
|
|
justfile: r#"
|
|
# This is a doc comment
|
|
[]
|
|
hello:
|
|
@exit 100
|
|
"#,
|
|
stderr: r#"
|
|
error: Expected identifier, but found ']'
|
|
|
|
|
2 | []
|
|
| ^
|
|
"#,
|
|
status: EXIT_FAILURE,
|
|
}
|
|
|
|
test! {
|
|
name: unattached_attribute_before_comment,
|
|
justfile: r#"
|
|
[no-exit-message]
|
|
# This is a doc comment
|
|
hello:
|
|
@exit 100
|
|
"#,
|
|
stderr: r#"
|
|
error: Expected '@' or identifier, but found comment
|
|
|
|
|
2 | # This is a doc comment
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^
|
|
"#,
|
|
|
|
status: EXIT_FAILURE,
|
|
}
|
|
|
|
test! {
|
|
name: unattached_attribute_before_empty_line,
|
|
justfile: r#"
|
|
[no-exit-message]
|
|
|
|
hello:
|
|
@exit 100
|
|
"#,
|
|
stderr: "error: Expected '@' or identifier, but found end of line\n |\n2 | \n | ^\n",
|
|
status: EXIT_FAILURE,
|
|
}
|
|
|
|
test! {
|
|
name: shebang_exit_message_suppressed,
|
|
justfile: r#"
|
|
[no-exit-message]
|
|
hello:
|
|
#!/usr/bin/env bash
|
|
echo 'Hello, World!'
|
|
exit 100
|
|
"#,
|
|
stdout: "Hello, World!\n",
|
|
stderr: "",
|
|
status: 100,
|
|
}
|