1 // Original implementation taken from rust-memchr.
2 // Copyright 2015 Andrew Gallant, bluss and Nicolas Koch
4 // test the implementations for the current platform
5 use super::{memchr, memrchr};
9 assert_eq!(Some(0), memchr(b'a', b"a"));
14 assert_eq!(Some(0), memchr(b'a', b"aaaa"));
19 assert_eq!(Some(4), memchr(b'z', b"aaaaz"));
24 assert_eq!(Some(4), memchr(b'\x00', b"aaaa\x00"));
28 fn matches_past_nul() {
29 assert_eq!(Some(5), memchr(b'z', b"aaaa\x00z"));
34 assert_eq!(None, memchr(b'a', b""));
39 assert_eq!(None, memchr(b'a', b"xyz"));
43 fn matches_one_reversed() {
44 assert_eq!(Some(0), memrchr(b'a', b"a"));
48 fn matches_begin_reversed() {
49 assert_eq!(Some(3), memrchr(b'a', b"aaaa"));
53 fn matches_end_reversed() {
54 assert_eq!(Some(0), memrchr(b'z', b"zaaaa"));
58 fn matches_nul_reversed() {
59 assert_eq!(Some(4), memrchr(b'\x00', b"aaaa\x00"));
63 fn matches_past_nul_reversed() {
64 assert_eq!(Some(0), memrchr(b'z', b"z\x00aaaa"));
68 fn no_match_empty_reversed() {
69 assert_eq!(None, memrchr(b'a', b""));
73 fn no_match_reversed() {
74 assert_eq!(None, memrchr(b'a', b"xyz"));
79 let mut data = [1u8; 64];
84 assert_eq!(Some(pos - start), memchr(needle, &data[start..]));