Advertisement
Guest User

Untitled

a guest
Dec 14th, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.39 KB | None | 0 0
  1. #include <assert.h>
  2. #include <err.h>
  3. #include <stddef.h>
  4. #include <stdlib.h>
  5. #include <stdio.h>
  6. #include <string.h>
  7.  
  8. # define NB_TEST 5
  9.  
  10. size_t my_strlen(char *str);
  11. char *my_strcpy(char *dest, char *src);
  12. char *my_strchr(const char *s, int c);
  13.  
  14. static void strlen_test(char **tests)
  15. {
  16.     puts("my_strlen");
  17.     for (int i = 0; i < NB_TEST; i++)
  18.     {
  19.         char *s1 = tests[i];
  20.         printf("test : %s\n", s1);
  21.         size_t l1 = my_strlen(s1);
  22.         size_t l2 = strlen(s1);
  23.         if (l1 != l2)
  24.             err(1, "result : %ld, expected %ld\n", l1, l2);
  25.     }
  26. }
  27.  
  28. static void strcpy_test(char **tests)
  29. {
  30.     puts("my_strcpy");
  31.     for (int i = 0; i < NB_TEST; i++)
  32.     {
  33.         char *s1 = tests[i];
  34.         char *s2 = calloc(my_strlen(s1), sizeof(char));
  35.         char *s3 = calloc(strlen(s1), sizeof(char));
  36.         printf("test : %s\n", s1);
  37.         if (strcmp(my_strcpy(s1, s2), strcpy(s1, s3)))
  38.             err(1, "FAILED strcpy : expected %s, mine %s\n", s3, s2);
  39.         free(s2);
  40.         free(s3);
  41.         s2 = NULL;
  42.         s3 = NULL;
  43.     }
  44. }
  45.  
  46. static void strchr_test(char **tests)
  47. {
  48.     puts("my_strchr");
  49.     for (int i = 0; i < NB_TEST; i++)
  50.     {
  51.         char *s1 = tests[i];
  52.         printf("test : %s\n", s1);
  53.         for (int j = 0; j < 128; j++)
  54.             assert(my_strchr(s1, j) == strchr(s1, j));
  55.     }
  56.  
  57. }
  58.  
  59. int main(void)
  60. {
  61.     char *tests[] =
  62.     {
  63.         "hello word",
  64.         "\0",
  65.         "hello \0 world",
  66.         "",
  67.         " "
  68.     };
  69.  
  70.     strlen_test(tests);
  71.     strcpy_test(tests);
  72.     strchr_test(tests);
  73.     return 0;
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement