2022-06-18 21:56:31 -07:00
|
|
|
use super::*;
|
2021-09-16 16:45:56 -07:00
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn match_succeeds_evaluates_to_first_branch() {
|
|
|
|
Test::new()
|
|
|
|
.justfile(
|
|
|
|
"
|
|
|
|
foo := if 'abbbc' =~ 'ab+c' {
|
|
|
|
'yes'
|
|
|
|
} else {
|
|
|
|
'no'
|
|
|
|
}
|
|
|
|
|
|
|
|
default:
|
|
|
|
echo {{ foo }}
|
|
|
|
",
|
|
|
|
)
|
|
|
|
.stderr("echo yes\n")
|
|
|
|
.stdout("yes\n")
|
|
|
|
.run();
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn match_fails_evaluates_to_second_branch() {
|
|
|
|
Test::new()
|
|
|
|
.justfile(
|
|
|
|
"
|
|
|
|
foo := if 'abbbc' =~ 'ab{4}c' {
|
|
|
|
'yes'
|
|
|
|
} else {
|
|
|
|
'no'
|
|
|
|
}
|
|
|
|
|
|
|
|
default:
|
|
|
|
echo {{ foo }}
|
|
|
|
",
|
|
|
|
)
|
|
|
|
.stderr("echo no\n")
|
|
|
|
.stdout("no\n")
|
|
|
|
.run();
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn bad_regex_fails_at_runtime() {
|
|
|
|
Test::new()
|
|
|
|
.justfile(
|
|
|
|
"
|
|
|
|
default:
|
|
|
|
echo before
|
|
|
|
echo {{ if '' =~ '(' { 'a' } else { 'b' } }}
|
|
|
|
echo after
|
|
|
|
",
|
|
|
|
)
|
|
|
|
.stderr(
|
|
|
|
"
|
|
|
|
echo before
|
|
|
|
error: regex parse error:
|
|
|
|
(
|
|
|
|
^
|
|
|
|
error: unclosed group
|
|
|
|
",
|
|
|
|
)
|
|
|
|
.stdout("before\n")
|
|
|
|
.status(EXIT_FAILURE)
|
|
|
|
.run();
|
|
|
|
}
|