77bba3ee0e
Subsequents are dependencies which run after a recipe instead of prior. Subsequents to a recipe only run if the recipe succeeds. Subsequents will run even if a matching invocation already ran as a prior dependencies.
152 lines
1.7 KiB
Rust
152 lines
1.7 KiB
Rust
use crate::common::*;
|
|
|
|
test! {
|
|
name: success,
|
|
justfile: "
|
|
foo: && bar
|
|
echo foo
|
|
|
|
bar:
|
|
echo bar
|
|
",
|
|
stdout: "
|
|
foo
|
|
bar
|
|
",
|
|
stderr: "
|
|
echo foo
|
|
echo bar
|
|
",
|
|
}
|
|
|
|
test! {
|
|
name: failure,
|
|
justfile: "
|
|
foo: && bar
|
|
echo foo
|
|
false
|
|
|
|
bar:
|
|
echo bar
|
|
",
|
|
stdout: "
|
|
foo
|
|
",
|
|
stderr: "
|
|
echo foo
|
|
false
|
|
error: Recipe `foo` failed on line 3 with exit code 1
|
|
",
|
|
status: EXIT_FAILURE,
|
|
}
|
|
|
|
test! {
|
|
name: circular_dependency,
|
|
justfile: "
|
|
foo: && foo
|
|
",
|
|
stderr: "
|
|
error: Recipe `foo` depends on itself
|
|
|
|
|
1 | foo: && foo
|
|
| ^^^
|
|
",
|
|
status: EXIT_FAILURE,
|
|
}
|
|
|
|
test! {
|
|
name: unknown,
|
|
justfile: "
|
|
foo: && bar
|
|
",
|
|
stderr: "
|
|
error: Recipe `foo` has unknown dependency `bar`
|
|
|
|
|
1 | foo: && bar
|
|
| ^^^
|
|
",
|
|
status: EXIT_FAILURE,
|
|
}
|
|
|
|
test! {
|
|
name: unknown_argument,
|
|
justfile: "
|
|
bar x:
|
|
|
|
foo: && (bar y)
|
|
",
|
|
stderr: "
|
|
error: Variable `y` not defined
|
|
|
|
|
3 | foo: && (bar y)
|
|
| ^
|
|
",
|
|
status: EXIT_FAILURE,
|
|
}
|
|
|
|
test! {
|
|
name: argument,
|
|
justfile: "
|
|
foo: && (bar 'hello')
|
|
|
|
bar x:
|
|
echo {{ x }}
|
|
",
|
|
stdout: "
|
|
hello
|
|
",
|
|
stderr: "
|
|
echo hello
|
|
",
|
|
}
|
|
|
|
test! {
|
|
name: duplicate_subsequents_dont_run,
|
|
justfile: "
|
|
a: && b c
|
|
echo a
|
|
|
|
b: d
|
|
echo b
|
|
|
|
c: d
|
|
echo c
|
|
|
|
d:
|
|
echo d
|
|
",
|
|
stdout: "
|
|
a
|
|
d
|
|
b
|
|
c
|
|
",
|
|
stderr: "
|
|
echo a
|
|
echo d
|
|
echo b
|
|
echo c
|
|
",
|
|
}
|
|
|
|
test! {
|
|
name: subsequents_run_even_if_already_ran_as_prior,
|
|
justfile: "
|
|
a: b && b
|
|
echo a
|
|
|
|
b:
|
|
echo b
|
|
",
|
|
stdout: "
|
|
b
|
|
a
|
|
b
|
|
",
|
|
stderr: "
|
|
echo b
|
|
echo a
|
|
echo b
|
|
",
|
|
}
|