1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-28 03:27:44 +00:00

expr: Add tests for regex range quantifiers

This commit is contained in:
Teemu Pätsi 2025-05-27 04:00:09 +03:00
parent 7789ef46a4
commit bbc912eb75
No known key found for this signature in database

View file

@ -406,6 +406,74 @@ fn test_regex_dollar() {
.stdout_only("0\n"); .stdout_only("0\n");
} }
#[test]
fn test_regex_range_quantifier() {
new_ucmd!()
.args(&["a", ":", "a\\{1\\}"])
.succeeds()
.stdout_only("1\n");
new_ucmd!()
.args(&["aaaaaaaaaa", ":", "a\\{1,\\}"])
.succeeds()
.stdout_only("10\n");
new_ucmd!()
.args(&["aaa", ":", "a\\{,3\\}"])
.succeeds()
.stdout_only("3\n");
new_ucmd!()
.args(&["aa", ":", "a\\{1,3\\}"])
.succeeds()
.stdout_only("2\n");
new_ucmd!()
.args(&["aaaa", ":", "a\\{,\\}"])
.succeeds()
.stdout_only("4\n");
new_ucmd!()
.args(&["a", ":", "ab\\{,3\\}"])
.succeeds()
.stdout_only("1\n");
new_ucmd!()
.args(&["abbb", ":", "ab\\{,3\\}"])
.succeeds()
.stdout_only("4\n");
new_ucmd!()
.args(&["abcabc", ":", "\\(abc\\)\\{,\\}"])
.succeeds()
.stdout_only("abc\n");
new_ucmd!()
.args(&["a", ":", "a\\{,6\\}"])
.succeeds()
.stdout_only("1\n");
new_ucmd!()
.args(&["{abc}", ":", "\\{abc\\}"])
.succeeds()
.stdout_only("5\n");
new_ucmd!()
.args(&["a{bc}", ":", "a\\(\\{bc\\}\\)"])
.succeeds()
.stdout_only("{bc}\n");
new_ucmd!()
.args(&["{b}", ":", "a\\|\\{b\\}"])
.succeeds()
.stdout_only("3\n");
new_ucmd!()
.args(&["{", ":", "a\\|\\{"])
.succeeds()
.stdout_only("1\n");
new_ucmd!()
.args(&["{}}}", ":", "\\{\\}\\}\\}"])
.succeeds()
.stdout_only("4\n");
new_ucmd!()
.args(&["a{}}}", ":", "a\\{\\}\\}\\}"])
.fails()
.stderr_only("expr: Invalid content of \\{\\}\n");
new_ucmd!()
.args(&["ab", ":", "ab\\{\\}"])
.fails()
.stderr_only("expr: Invalid content of \\{\\}\n");
}
#[test] #[test]
fn test_substr() { fn test_substr() {
new_ucmd!() new_ucmd!()