1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 5 #include "test_helpers.h" 6 7 int main(void) { 8 puts("# mem #"); 9 char arr[100]; 10 memset(arr, 0, 100); // Compiler builtin, should work 11 arr[50] = 1; 12 if ((size_t)memchr((void *)arr, 1, 100) - (size_t)arr != 50) { 13 puts("Incorrect memchr"); 14 exit(EXIT_FAILURE); 15 } 16 puts("Correct memchr"); 17 if ((size_t)memrchr((void *)arr, 1, 100) - (size_t)arr != 50) { 18 puts("Incorrect memrchr"); 19 exit(EXIT_FAILURE); 20 } 21 puts("Correct memrchr"); 22 char arr2[51]; 23 memset(arr2, 0, 51); // Compiler builtin, should work 24 memccpy((void *)arr2, (void *)arr, 1, 100); 25 if (arr[50] != 1) { 26 puts("Incorrect memccpy"); 27 exit(EXIT_FAILURE); 28 } 29 puts("Correct memccpy"); 30 int res; 31 if ((res = memcmp("hello world", "hello world", 11))) { 32 printf("Incorrect memcmp (1), expected 0 found %d\n", res); 33 exit(EXIT_FAILURE); 34 } 35 if ((res = memcmp("hello world", "hello worlt", 11)) >= 0) { 36 printf("Incorrect memcmp (2), expected -, found %d\n", res); 37 exit(EXIT_FAILURE); 38 } 39 if ((res = memcmp("hello world", "hallo world", 5)) <= 0) { 40 printf("Incorrect memcmp (3), expected +, found %d\n", res); 41 exit(EXIT_FAILURE); 42 } 43 if ((res = memcmp("hello world", "henlo world", 5)) >= 0) { 44 printf("Incorrect memcmp (4), expected -, found %d\n", res); 45 exit(EXIT_FAILURE); 46 } 47 puts("Correct memcmp"); 48 } 49