pub(crate) fn reverse_iter<F>(self, mut test: F)
    where
        F: FnMut(&[u8], &[u8]) -> Option<Vec<usize>> + 'static,
    {
        for seed in SEEDS.iter() {
            if seed.needles.len() > self.needle_len {
                continue;
            }
            for t in seed.generate() {
                let mut results = match test(t.haystack.as_bytes(), &t.needles)
                {
                    None => continue,
                    Some(results) => results,
                };
                results.reverse();
                assert_eq!(
                    t.expected,
                    results,
                    "needles: {:?}, haystack: {:?}",
                    t.needles
                        .iter()
                        .map(|&b| b.to_char())
                        .collect::<Vec<char>>(),
                    t.haystack,
                );
            }
        }
    }
Run all tests in the reverse direction. This panics on the first
failure.

If the implementation being tested returns `None` for a particular
haystack/needle combination, then that test is skipped.
src/tests/memchr/mod.rs