just/tests/slash_operator.rs

132 lines
2.0 KiB
Rust
Raw Normal View History

2022-06-25 02:39:06 -07:00
use super::*;
#[test]
fn once() {
Test::new()
.justfile("x := 'a' / 'b'")
2023-01-03 22:31:56 -08:00
.args(["--evaluate", "x"])
2022-06-25 02:39:06 -07:00
.stdout("a/b")
.run();
}
#[test]
fn twice() {
Test::new()
.justfile("x := 'a' / 'b' / 'c'")
2023-01-03 22:31:56 -08:00
.args(["--evaluate", "x"])
2022-06-25 02:39:06 -07:00
.stdout("a/b/c")
.run();
}
#[test]
fn no_lhs_once() {
Test::new()
.justfile("x := / 'a'")
2023-01-03 22:31:56 -08:00
.args(["--evaluate", "x"])
.stdout("/a")
.run();
}
#[test]
fn no_lhs_twice() {
Test::new()
.justfile("x := / 'a' / 'b'")
2023-01-03 22:31:56 -08:00
.args(["--evaluate", "x"])
.stdout("/a/b")
.run();
Test::new()
.justfile("x := // 'a'")
2023-01-03 22:31:56 -08:00
.args(["--evaluate", "x"])
.stdout("//a")
.run();
}
#[test]
fn no_rhs_once() {
Test::new()
.justfile("x := 'a' /")
.stderr(
"
error: Expected backtick, identifier, '(', '/', or string, but found end of file
--> justfile:1:11
|
1 | x := 'a' /
| ^
",
)
.status(EXIT_FAILURE)
.run();
}
2022-06-25 02:39:06 -07:00
#[test]
fn default_un_parenthesized() {
Test::new()
.justfile(
"
foo x='a' / 'b':
echo {{x}}
",
)
.stderr(
"
error: Expected '*', ':', '$', identifier, or '+', but found '/'
--> justfile:1:11
2022-06-25 02:39:06 -07:00
|
1 | foo x='a' / 'b':
| ^
",
)
.status(EXIT_FAILURE)
.run();
}
#[test]
fn no_lhs_un_parenthesized() {
Test::new()
.justfile(
"
foo x=/ 'a' / 'b':
echo {{x}}
",
)
.stderr(
"
error: Expected backtick, identifier, '(', or string, but found '/'
--> justfile:1:7
|
1 | foo x=/ 'a' / 'b':
| ^
",
)
.status(EXIT_FAILURE)
.run();
}
2022-06-25 02:39:06 -07:00
#[test]
fn default_parenthesized() {
Test::new()
.justfile(
"
foo x=('a' / 'b'):
echo {{x}}
",
)
.stderr("echo a/b\n")
.stdout("a/b\n")
.run();
}
#[test]
fn no_lhs_parenthesized() {
Test::new()
.justfile(
"
foo x=(/ 'a' / 'b'):
echo {{x}}
",
)
.stderr("echo /a/b\n")
.stdout("/a/b\n")
.run();
}