Vendor things
This commit is contained in:
parent
5deceec006
commit
977e3c17e5
19434 changed files with 10682014 additions and 0 deletions
94
third-party/vendor/regex/tests/regression.rs
vendored
Normal file
94
third-party/vendor/regex/tests/regression.rs
vendored
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
use regex::Regex;
|
||||
|
||||
macro_rules! regex {
|
||||
($pattern:expr) => {
|
||||
regex::Regex::new($pattern).unwrap()
|
||||
};
|
||||
}
|
||||
|
||||
// See: https://github.com/rust-lang/regex/issues/48
|
||||
#[test]
|
||||
fn invalid_regexes_no_crash() {
|
||||
assert!(Regex::new("(*)").is_err());
|
||||
assert!(Regex::new("(?:?)").is_err());
|
||||
assert!(Regex::new("(?)").is_err());
|
||||
assert!(Regex::new("*").is_err());
|
||||
}
|
||||
|
||||
// See: https://github.com/rust-lang/regex/issues/98
|
||||
#[test]
|
||||
fn regression_many_repeat_stack_overflow() {
|
||||
let re = regex!("^.{1,2500}");
|
||||
assert_eq!(
|
||||
vec![0..1],
|
||||
re.find_iter("a").map(|m| m.range()).collect::<Vec<_>>()
|
||||
);
|
||||
}
|
||||
|
||||
// See: https://github.com/rust-lang/regex/issues/555
|
||||
#[test]
|
||||
fn regression_invalid_repetition_expr() {
|
||||
assert!(Regex::new("(?m){1,1}").is_err());
|
||||
}
|
||||
|
||||
// See: https://github.com/rust-lang/regex/issues/527
|
||||
#[test]
|
||||
fn regression_invalid_flags_expression() {
|
||||
assert!(Regex::new("(((?x)))").is_ok());
|
||||
}
|
||||
|
||||
// See: https://github.com/rust-lang/regex/issues/129
|
||||
#[test]
|
||||
fn regression_captures_rep() {
|
||||
let re = regex!(r"([a-f]){2}(?P<foo>[x-z])");
|
||||
let caps = re.captures("abx").unwrap();
|
||||
assert_eq!(&caps["foo"], "x");
|
||||
}
|
||||
|
||||
// See: https://github.com/BurntSushi/ripgrep/issues/1247
|
||||
#[cfg(feature = "unicode-perl")]
|
||||
#[test]
|
||||
fn regression_nfa_stops1() {
|
||||
let re = regex::bytes::Regex::new(r"\bs(?:[ab])").unwrap();
|
||||
assert_eq!(0, re.find_iter(b"s\xE4").count());
|
||||
}
|
||||
|
||||
// See: https://github.com/rust-lang/regex/issues/981
|
||||
#[cfg(feature = "unicode")]
|
||||
#[test]
|
||||
fn regression_bad_word_boundary() {
|
||||
let re = regex!(r#"(?i:(?:\b|_)win(?:32|64|dows)?(?:\b|_))"#);
|
||||
let hay = "ubi-Darwin-x86_64.tar.gz";
|
||||
assert!(!re.is_match(hay));
|
||||
let hay = "ubi-Windows-x86_64.zip";
|
||||
assert!(re.is_match(hay));
|
||||
}
|
||||
|
||||
// See: https://github.com/rust-lang/regex/issues/982
|
||||
#[cfg(feature = "unicode-perl")]
|
||||
#[test]
|
||||
fn regression_unicode_perl_not_enabled() {
|
||||
let pat = r"(\d+\s?(years|year|y))?\s?(\d+\s?(months|month|m))?\s?(\d+\s?(weeks|week|w))?\s?(\d+\s?(days|day|d))?\s?(\d+\s?(hours|hour|h))?";
|
||||
assert!(Regex::new(pat).is_ok());
|
||||
}
|
||||
|
||||
// See: https://github.com/rust-lang/regex/issues/995
|
||||
#[test]
|
||||
fn regression_big_regex_overflow() {
|
||||
let pat = r" {2147483516}{2147483416}{5}";
|
||||
assert!(Regex::new(pat).is_err());
|
||||
}
|
||||
|
||||
// See: https://github.com/rust-lang/regex/issues/999
|
||||
#[test]
|
||||
fn regression_complete_literals_suffix_incorrect() {
|
||||
let needles = vec![
|
||||
"aA", "bA", "cA", "dA", "eA", "fA", "gA", "hA", "iA", "jA", "kA",
|
||||
"lA", "mA", "nA", "oA", "pA", "qA", "rA", "sA", "tA", "uA", "vA",
|
||||
"wA", "xA", "yA", "zA",
|
||||
];
|
||||
let pattern = needles.join("|");
|
||||
let re = regex!(&pattern);
|
||||
let hay = "FUBAR";
|
||||
assert_eq!(0, re.find_iter(hay).count());
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue