Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <assert.h>
- #include <err.h>
- #include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
- # define NB_TEST 5
- size_t my_strlen(char *str);
- char *my_strcpy(char *dest, char *src);
- char *my_strchr(const char *s, int c);
- static void strlen_test(char **tests)
- {
- puts("my_strlen");
- for (int i = 0; i < NB_TEST; i++)
- {
- char *s1 = tests[i];
- printf("test : %s\n", s1);
- size_t l1 = my_strlen(s1);
- size_t l2 = strlen(s1);
- if (l1 != l2)
- err(1, "result : %ld, expected %ld\n", l1, l2);
- }
- }
- static void strcpy_test(char **tests)
- {
- puts("my_strcpy");
- for (int i = 0; i < NB_TEST; i++)
- {
- char *s1 = tests[i];
- char *s2 = calloc(my_strlen(s1), sizeof(char));
- char *s3 = calloc(strlen(s1), sizeof(char));
- printf("test : %s\n", s1);
- if (strcmp(my_strcpy(s1, s2), strcpy(s1, s3)))
- err(1, "FAILED strcpy : expected %s, mine %s\n", s3, s2);
- free(s2);
- free(s3);
- s2 = NULL;
- s3 = NULL;
- }
- }
- static void strchr_test(char **tests)
- {
- puts("my_strchr");
- for (int i = 0; i < NB_TEST; i++)
- {
- char *s1 = tests[i];
- printf("test : %s\n", s1);
- for (int j = 0; j < 128; j++)
- assert(my_strchr(s1, j) == strchr(s1, j));
- }
- }
- int main(void)
- {
- char *tests[] =
- {
- "hello word",
- "\0",
- "hello \0 world",
- "",
- " "
- };
- strlen_test(tests);
- strcpy_test(tests);
- strchr_test(tests);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement