int main(void) { int i; t_test test[D_TEST]; int status; pid_t pid; srand(time(NULL)); printf("[\033[33mYellow Tests\033[0m] are Hardcore\n"); i = 0; memset(test, 0, D_TEST); /* * Si vous n'avez pas la fonction il suffit de mettre en commentaire */ /* * Example : vous n'avez pas memset vous commentez * // #define D_MEMSET * // D_ADD_TEST(...) */ #define D_MEMSET D_ADD_HCTEST(memset); #define D_BZERO D_ADD_HCTEST(bzero); #define D_MEMCPY D_ADD_HCTEST(memcpy); #define D_MEMCCPY D_ADD_HCTEST(memccpy); #define D_MEMMOVE D_ADD_HCTEST(memmove); #define D_MEMCHR D_ADD_HCTEST(memchr); #define D_MEMCMP D_ADD_HCTEST(memcmp); #define D_STRLEN D_ADD_TEST(strlen); #define D_STRDUP D_ADD_TEST(strdup); #define D_STRCPY D_ADD_HCTEST(strcpy); #define D_STRNCPY D_ADD_HCTEST(strncpy); #define D_STRCAT D_ADD_TEST(strcat); #define D_STRNCAT D_ADD_TEST(strncat); #define D_STRLCAT D_ADD_TEST(strlcat); #define D_STRCHR D_ADD_TEST(strchr); #define D_STRRCHR D_ADD_TEST(strrchr); #define D_STRSTR D_ADD_TEST(strstr); //#define D_STRNSTR // D_ADD_TEST(strnstr); #define D_STRCMP D_ADD_TEST(strcmp); #define D_STRNCMP D_ADD_TEST(strncmp); #define D_ATOI D_ADD_HCTEST(atoi); #define D_ISALPHA D_ADD_HCTEST(isalpha); #define D_ISDIGIT D_ADD_HCTEST(isdigit); #define D_ISALNUM D_ADD_HCTEST(isalnum); #define D_ISASCII D_ADD_HCTEST(isascii); #define D_ISPRINT D_ADD_HCTEST(isprint); #define D_TOUPPER D_ADD_HCTEST(toupper); #define D_TOLOWER D_ADD_HCTEST(tolower); #define D_MEMALLOC_AND_DEL D_ADD_TEST(memalloc_and_del); #define D_STRNEW D_ADD_TEST(strnew); #define D_STRDEL D_ADD_TEST(strdel); #define D_STRCLR D_ADD_TEST(strclr); #define D_STRITER D_ADD_TEST(striter); #define D_STRITERI D_ADD_TEST(striteri); #define D_STRMAP D_ADD_TEST(strmap); #define D_STRMAPI D_ADD_TEST(strmapi); #define D_STREQU D_ADD_TEST(strequ); #define D_STRNEQU D_ADD_TEST(strnequ); #define D_STRSUB D_ADD_TEST(strsub); #define D_STRJOIN D_ADD_TEST(strjoin); #define D_STRSPLIT D_ADD_TEST(strsplit); #define D_ITOA D_ADD_TEST(itoa); #define D_STRTRIM D_ADD_TEST(strtrim); //#define D_LSTNEW // D_ADD_TEST(lstnew); //#define D_LSTDELONE // D_ADD_TEST(lstdelone); //#define D_LSTDEL // D_ADD_TEST(lstdel); //#define D_LSTADD // D_ADD_TEST(lstadd); //#define D_LSTITER // D_ADD_TEST(lstiter); //#define D_LSTMAP // D_ADD_TEST(lstmap); while (test[i].set == true) { printf("Test [%s] : ", test[i].name); fflush(stdout); if ((pid = fork()) == 0) { if (test[i].funct() == 0) printf("\033[31mFAIL\033[0m\n"); else printf("\033[32mOK\033[0m\n"); exit(0); } if (pid == -1) printf("\033[33mUNABLE TO FORK\033[0m\n"); else { if (waitpid(pid, &status, 0) != -1) { if (WIFSIGNALED(status)) { if (WTERMSIG(status) == SIGSEGV) printf("\033[33mSegmentation Fault\033[0m\n"); else if (WTERMSIG(status) == SIGEMT) printf("\033[33mBus Error\033[0m\n"); else if (WTERMSIG(status) == SIGILL) printf("\033[33mIllegal Instruction\033[0m\n"); else printf("\033[33mThe processus receive the signal %d\033[0m\n", WTERMSIG(status)); } } else perror("Waitpid"); } i = i + 1; } return (0); }
int main(int argc, const char **argv) { int i; t_test test[D_TEST]; srand(time(NULL)); printf("[\033[33mYellow Tests\033[0m] are Hardcore\n"); i = 0; memset(test, 0, D_TEST); /* * Si vous n'avez pas la fonction il suffit de mettre en commentaire */ /* * Example : vous n'avez pas memset vous commentez * // #define D_MEMSET * // D_ADD_TEST(...) */ #define D_MEMSET D_ADD_HCTEST(memset); #define D_BZERO D_ADD_HCTEST(bzero); #define D_MEMCPY D_ADD_HCTEST(memcpy); #define D_MEMCCPY D_ADD_HCTEST(memccpy); #define D_MEMMOVE D_ADD_HCTEST(memmove); #define D_MEMCHR D_ADD_HCTEST(memchr); #define D_MEMCMP D_ADD_HCTEST(memcmp); #define D_STRLEN D_ADD_TEST(strlen); #define D_STRDUP D_ADD_TEST(strdup); #define D_STRCPY D_ADD_HCTEST(strcpy); #define D_STRNCPY D_ADD_HCTEST(strncpy); #define D_STRCAT D_ADD_TEST(strcat); #define D_STRNCAT D_ADD_TEST(strncat); #define D_STRLCAT D_ADD_TEST(strlcat); #define D_STRCHR D_ADD_TEST(strchr); #define D_STRRCHR D_ADD_TEST(strrchr); #define D_STRSTR D_ADD_TEST(strstr); #define D_STRNSTR D_ADD_TEST(strnstr); #define D_STRCMP D_ADD_TEST(strcmp); #define D_STRNCMP D_ADD_TEST(strncmp); #define D_ATOI D_ADD_HCTEST(atoi); #define D_ISALPHA D_ADD_HCTEST(isalpha); #define D_ISDIGIT D_ADD_HCTEST(isdigit); #define D_ISALNUM D_ADD_HCTEST(isalnum); #define D_ISASCII D_ADD_HCTEST(isascii); #define D_ISPRINT D_ADD_HCTEST(isprint); #define D_TOUPPER D_ADD_HCTEST(toupper); #define D_TOLOWER D_ADD_HCTEST(tolower); #define D_MEMALLOC_AND_DEL D_ADD_TEST(memalloc_and_del); #define D_STRNEW D_ADD_TEST(strnew); #define D_STRDEL D_ADD_TEST(strdel); #define D_STRCLR D_ADD_TEST(strclr); #define D_STRITER D_ADD_TEST(striter); #define D_STRITERI D_ADD_TEST(striteri); #define D_STRMAP D_ADD_TEST(strmap); #define D_STRMAPI D_ADD_TEST(strmapi); #define D_STREQU D_ADD_TEST(strequ); #define D_STRNEQU D_ADD_TEST(strnequ); #define D_STRSUB D_ADD_TEST(strsub); #define D_STRJOIN D_ADD_TEST(strjoin); #define D_STRSPLIT D_ADD_TEST(strsplit); #define D_ITOA D_ADD_TEST(itoa); #define D_STRTRIM D_ADD_TEST(strtrim); #define D_LSTNEW D_ADD_TEST(lstnew); #define D_LSTDELONE D_ADD_TEST(lstdelone); #define D_LSTDEL D_ADD_TEST(lstdel); #define D_LSTADD D_ADD_TEST(lstadd); #define D_LSTITER D_ADD_TEST(lstiter); while (test[i].set == true) { printf("Test [%s] : ", test[i].name); if (test[i].funct() == 0) printf("\033[31mFAIL\033[0m\n"); else printf("\033[32mOK\033[0m\n"); i = i + 1; } (void)argc; (void)argv; return (0); }