| 8 | #define SWAPSIZE 12 |
| 9 | |
| 10 | int main(void) |
| 11 | { |
| 12 | char haystack1[] = "abcd\0efgh"; |
| 13 | char haystack2[] = "ab\0ab\0ab\0ab"; |
| 14 | char needle1[] = "ab"; |
| 15 | char needle2[] = "d\0e"; |
| 16 | char scan1[] = "aaaab"; |
| 17 | char scan2[] = "\0\0\0b"; |
| 18 | char tmp1[SWAPSIZE], tmp2[SWAPSIZE]; |
| 19 | |
| 20 | /* This is how many tests you plan to run */ |
| 21 | plan_tests(65); |
| 22 | |
| 23 | ok1(memmem(haystack1, sizeof(haystack1), needle1, 2) == haystack1); |
| 24 | ok1(memmem(haystack1, sizeof(haystack1), needle1, 3) == NULL); |
| 25 | ok1(memmem(haystack1, sizeof(haystack1), needle2, 3) == (haystack1 + 3)); |
| 26 | |
| 27 | ok1(memmem(haystack2, sizeof(haystack2), needle1, sizeof(needle1)) |
| 28 | == haystack2); |
| 29 | ok1(memmem(haystack2, sizeof(haystack2), needle2, 3) == NULL); |
| 30 | |
| 31 | ok1(memrchr(haystack1, 'a', sizeof(haystack1)) == haystack1); |
| 32 | ok1(memrchr(haystack1, 'b', sizeof(haystack1)) == haystack1 + 1); |
| 33 | ok1(memrchr(haystack1, 'c', sizeof(haystack1)) == haystack1 + 2); |
| 34 | ok1(memrchr(haystack1, 'd', sizeof(haystack1)) == haystack1 + 3); |
| 35 | ok1(memrchr(haystack1, 'e', sizeof(haystack1)) == haystack1 + 5); |
| 36 | ok1(memrchr(haystack1, 'f', sizeof(haystack1)) == haystack1 + 6); |
| 37 | ok1(memrchr(haystack1, 'g', sizeof(haystack1)) == haystack1 + 7); |
| 38 | ok1(memrchr(haystack1, 'h', sizeof(haystack1)) == haystack1 + 8); |
| 39 | ok1(memrchr(haystack1, '\0', sizeof(haystack1)) == haystack1 + 9); |
| 40 | ok1(memrchr(haystack1, 'i', sizeof(haystack1)) == NULL); |
| 41 | |
| 42 | ok1(memrchr(haystack2, 'a', sizeof(haystack2)) == haystack2 + 9); |
| 43 | ok1(memrchr(haystack2, 'b', sizeof(haystack2)) == haystack2 + 10); |
| 44 | ok1(memrchr(haystack2, '\0', sizeof(haystack2)) == haystack2 + 11); |
| 45 | |
| 46 | ok1(memrchr(needle1, '\0', 2) == NULL); |
| 47 | |
| 48 | #define S(x) (x), sizeof(x) - 1 |
| 49 | ok1(mempbrkm(S(haystack1), S("\0efgh")) == haystack1 + 4); |
| 50 | ok1(mempbrkm(S(haystack1), S("jklmn")) == NULL); |
| 51 | ok1(mempbrkm(S(haystack1), S("sd\0a")) == haystack1 + 0); |
| 52 | |
| 53 | ok1(mempbrk(haystack1, sizeof(haystack1), "bcd\0a") == haystack1 + 1); |
| 54 | ok1(mempbrk(haystack1, sizeof(haystack1), "\0") == NULL); |
| 55 | |
| 56 | ok1(memcchr(scan1, 'a', sizeof(scan1)) == scan1 + 4); |
| 57 | ok1(memcchr(scan1, 'b', sizeof(scan1)) == scan1); |
| 58 | ok1(memcchr(scan2, '\0', sizeof(scan2)) == scan2 + 3); |
| 59 | ok1(memcchr(scan2, '\0', sizeof(scan2) - 2) == NULL); |
| 60 | |
| 61 | ok1(memeq(haystack1, sizeof(haystack1), haystack1, sizeof(haystack1))); |
| 62 | ok1(!memeq(haystack1, sizeof(haystack1), haystack2, sizeof(haystack2))); |
| 63 | |
| 64 | ok1(memeqstr(scan1, sizeof(scan1) - 1, scan1)); |
| 65 | ok1(!memeqstr(scan1, sizeof(scan1), scan1)); |
| 66 | ok1(!memeqstr(scan1, sizeof(scan1), "aaaa")); |
| 67 |
nothing calls this directly
no test coverage detected