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