1c67d6573Sopenharmony_ci/* 2c67d6573Sopenharmony_ci * This test is a minimal version of <rofl_0> and <subdiff_0> 3c67d6573Sopenharmony_ci * 4c67d6573Sopenharmony_ci * Once this bug gets fixed, uncomment rofl_0 and subdiff_0 5c67d6573Sopenharmony_ci * (in `tests/crates_regex.rs`). 6c67d6573Sopenharmony_ci#[test] 7c67d6573Sopenharmony_cifn word_boundary_backtracking_default_mismatch() { 8c67d6573Sopenharmony_ci use regex::internal::ExecBuilder; 9c67d6573Sopenharmony_ci 10c67d6573Sopenharmony_ci let backtrack_re = ExecBuilder::new(r"\b") 11c67d6573Sopenharmony_ci .bounded_backtracking() 12c67d6573Sopenharmony_ci .build() 13c67d6573Sopenharmony_ci .map(|exec| exec.into_regex()) 14c67d6573Sopenharmony_ci .map_err(|err| format!("{}", err)) 15c67d6573Sopenharmony_ci .unwrap(); 16c67d6573Sopenharmony_ci 17c67d6573Sopenharmony_ci let default_re = ExecBuilder::new(r"\b") 18c67d6573Sopenharmony_ci .build() 19c67d6573Sopenharmony_ci .map(|exec| exec.into_regex()) 20c67d6573Sopenharmony_ci .map_err(|err| format!("{}", err)) 21c67d6573Sopenharmony_ci .unwrap(); 22c67d6573Sopenharmony_ci 23c67d6573Sopenharmony_ci let input = "䅅\\u{a0}"; 24c67d6573Sopenharmony_ci 25c67d6573Sopenharmony_ci let fi1 = backtrack_re.find_iter(input); 26c67d6573Sopenharmony_ci let fi2 = default_re.find_iter(input); 27c67d6573Sopenharmony_ci for (m1, m2) in fi1.zip(fi2) { 28c67d6573Sopenharmony_ci assert_eq!(m1, m2); 29c67d6573Sopenharmony_ci } 30c67d6573Sopenharmony_ci} 31c67d6573Sopenharmony_ci*/ 32c67d6573Sopenharmony_ci 33c67d6573Sopenharmony_cimod consistent; 34c67d6573Sopenharmony_ci 35c67d6573Sopenharmony_cimod crates_regex { 36c67d6573Sopenharmony_ci 37c67d6573Sopenharmony_ci macro_rules! consistent { 38c67d6573Sopenharmony_ci ($test_name:ident, $regex_src:expr) => { 39c67d6573Sopenharmony_ci #[test] 40c67d6573Sopenharmony_ci fn $test_name() { 41c67d6573Sopenharmony_ci use super::consistent::backends_are_consistent; 42c67d6573Sopenharmony_ci 43c67d6573Sopenharmony_ci if option_env!("RUST_REGEX_RANDOM_TEST").is_some() { 44c67d6573Sopenharmony_ci match backends_are_consistent($regex_src) { 45c67d6573Sopenharmony_ci Ok(_) => {} 46c67d6573Sopenharmony_ci Err(err) => panic!("{}", err), 47c67d6573Sopenharmony_ci } 48c67d6573Sopenharmony_ci } 49c67d6573Sopenharmony_ci } 50c67d6573Sopenharmony_ci }; 51c67d6573Sopenharmony_ci } 52c67d6573Sopenharmony_ci 53c67d6573Sopenharmony_ci include!("crates_regex.rs"); 54c67d6573Sopenharmony_ci} 55