From 9191e6c8caece723aa522e9ae018b050ff5b9db4 Mon Sep 17 00:00:00 2001 From: fanasina Date: Fri, 25 Aug 2023 22:26:57 +0200 Subject: [PATCH] add options and help, know we can run tests using diffent parameters without recompile it options: timeunit, parallel,savelog, ordered, removelog, --- isgood | Bin 128856 -> 221032 bytes rec_log_test0 | 0 src/test_t/is_good.c | 6 +- src/test_t/test_t.c | 270 +++++++++++++++++++++++++++++++++++-------- src/test_t/test_t.h | 42 ++++--- 5 files changed, 252 insertions(+), 66 deletions(-) create mode 100644 rec_log_test0 diff --git a/isgood b/isgood index 5d8a4b6e3a53ba4f4ac98cb7da26e95bfe49470b..fa073b37137b13720ebe788f83057cee51189e3f 100644 GIT binary patch literal 221032 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 z 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 Ax&QzG literal 128856 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 Bur>ey diff --git a/rec_log_test0 b/rec_log_test0 new file mode 100644 index 0000000..e69de29 diff --git a/src/test_t/is_good.c b/src/test_t/is_good.c index d6d675a..aba5139 100644 --- a/src/test_t/is_good.c +++ b/src/test_t/is_good.c @@ -141,10 +141,12 @@ TEST(sleep){sleep(2);} TEST(sleep){sleep(2);} TEST(sleep){sleep(2);} -int main(){ +int main(int argc, char **argv){ //run_all_tests(); - run_all_tests_parallel(4); + //run_all_tests_parallel(4); + + run_all_tests_args(argc, argv); //purge_tests(); //run_some_tests(8, 1, 2, 2, 3, 3, 0, 4, 1); diff --git a/src/test_t/test_t.c b/src/test_t/test_t.c index ad26c36..8af131d 100644 --- a/src/test_t/test_t.c +++ b/src/test_t/test_t.c @@ -18,13 +18,18 @@ /* * by default display in millisecond - */ + */ +/* #ifndef SECOND #define SECOND 0 #endif #ifndef NANOSECOND #define NANOSECOND 0 #endif +*/ + +#define NANOSECOND (timeunit[0]=='n') +#define SECOND (timeunit[0]=='s') #ifndef PROGRESS #define PROGRESS 0 @@ -56,7 +61,7 @@ #define INCREMENT(variable)\ do{\ - if(is_parallel){\ + if(is_parallel_nb){\ LOCK(mut_##variable); \ ++variable;\ UNLOCK(mut_##variable);\ @@ -75,15 +80,40 @@ struct failed_lists{ struct failed_lists *next; }; +#define default_ordered 0 +#define default_unicolour 0 +#define default_removelog 0 +#define default_parallel_nb 1 /* * global variables not exported * only exist in test_t.c */ +/* + * begin variable option + */ +bool some_thing_wrong = 0; +bool help=0; +bool ordered= 0; +bool unicolour = 0; +bool removelog = 0; +char *timeunit="ms"; +char *savelog=NULL; +char *default_timeunit="ms"; +char *default_savelog="log_all_tests"; +/* + * number of threads + */ +size_t parallel_nb = 0; + +/* + * end variable option + */ + +bool is_parallel_nb = 0; bool progress = false; -bool is_parallel = 0; FILE **f_ou_th; @@ -103,11 +133,6 @@ size_t count_fail_local = 0; size_t *count_pass_test = NULL; size_t *count_fail_test = NULL; -/* - * number of threads - */ -size_t parallel_nb = 0; - /* * count on each thread [PARALLEL] */ @@ -206,44 +231,184 @@ long int id_of_thread_executed(void){ * we extract NUM here * to have hash_table of the count when parallel test! */ -size_t extract_num_test__f(const char *name_f){ +size_t extract_num__f(const char *name_f){ size_t len = strlen(name_f); size_t val = 0, p = 1; - for(size_t i= len-1; i>=0; --i){ + for(long i= len-1; i>=0; --i){ PRINT_DEBUG(" name_f[%ld] = %c\n",i,name_f[i]); if(name_f[i] >= '0' && name_f[i] <= '9'){ val += p * (name_f[i]-'0'); p *= 10; } - else if( name_f[i] == ' ' || name_f[i] == '_' ) break; + else if( name_f[i] == ' ' || name_f[i] == '_' || name_f[i] == '=' ) break; } return val; } +void usage(int argc, char **argv){ + printf("usage: %s [OPTIONS] [] \n\n or : %s [OPTIONS]=[]\n\n",argv[0],argv[0]); + printf("OPTIONS\n"); + printf("\t -h, --help \n\t\tprint help, options variables\n\n"); + printf("\t -p , --parallel , -p=, --parallel=\n\t\tby default the program ran in sequantial all test, \n\t\tif this option is set, the program run tests on NB threads.\n\t\tEach thread pull up one test out the list of all test not yet executed,\n\t\tand execute it, until the list is empty \n\n"); + printf("\t -t , --time , -t=, --time= \n\t\tby default unit is millisecons ms, the other of unit are choices are second (or s), and nanosecond (or ns)\n\t\tex: -t ns or -t=nanosecond or --time=n to set nanosecond unit\n\n"); + printf("\t -u , --unicolour\n\t\tby default, the result is colored, if you choice this option, it prints with default color\n\n"); + printf("\t -o, --ordered\n\t\tthis option is usefull if you choose to use parallel tests,\n\t\tby default, each thread share the screen to print results,\n\t\tthis option create file to record log of each thread on file,\n\t\tand print on screen all results at the end of all tests\n\n"); + printf("\t -r , --remove\n\t\tif the option ordered is choosen if parallel tests,\n\t\tthis option remove the file logs of each thread after all tests.\n\n"); + printf("\t -s , --savelog , -s=file, --savelog=file\n\t\tthis option save the global ordered result in 'file',\n\t\this option active the option -o or --ordered. \n\n"); + + if(some_thing_wrong){ + printf("invalid argument\n"); + exit(0); + } +} + + +const char* extract_string_after_equal_symbole_in_string(const char * in_str){ + size_t len=strlen(in_str); + + for(long i=0; i=0; --i){ + PRINT_DEBUG("(%s)[%ld]=%c\n",in_str,i,in_str[i]); + if(in_str[i]=='=') return val; + if(in_str[i] >= '0' && in_str[i] <= '9' ){ + val += p * (in_str[i]-'0'); + p *= 10; + } + } + if(val) return val; + return -1; +} + +#define IF_OPTION_WITH_ARG_NUM(option)\ + if(argv[i][0]=='-'){\ + j=1;\ + if(argv[i][j]=='-') ++j;\ + if(argv[i][j] == #option[0]){\ + long ret_num=extract_num_after_equal_symbole_in_string(argv[i]);\ + PRINT_DEBUG("option=%s, ret_num = %ld, argv[%d]=%s\n",#option,ret_num,i,argv[i]);\ + is_##option = 1;\ + if(ret_num > -1)\ + option = ret_num;\ + else{\ + if(i0)\ + option = ret_num;\ + else{ \ + help=1;\ + option = default_##option;\ + some_thing_wrong = 1;\ + }\ + }\ + }\ + else{\ + help=1;\ + option = default_##option;\ + some_thing_wrong = 1;\ + }\ + }\ + PRINT_DEBUG("option %s activated, its value is %ld\n",#option,option);\ + continue;\ + }\ + }\ + +#define IF_OPTION_WITH_ARG_STR(option)\ + if(argv[i][0]=='-'){\ + j=1;\ + if(argv[i][j]=='-') ++j;\ + if(argv[i][j] == #option[0]){\ + char* ret_str=(char*)extract_string_after_equal_symbole_in_string(argv[i]);\ + PRINT_DEBUG("option=%s, ret_str = %s, argv[%d]=%s\n",#option,ret_str,i,argv[i]);\ + if(ret_str ==NULL || strlen(ret_str)==0){\ + if(iname);\ + failed_lst = failed_lst->next;\ + } + + void list_failed_test(struct failed_lists *test_failed){ struct failed_lists *failed_lst = test_failed; + if(is_parallel_nb){ long int id_thrd = id_of_thread_executed(); - if(id_thrd < 0 || id_thrd == parallel_nb ){ - while(failed_lst){ - PRINT_HK_C(RED_K, HK_FL," %s\n",failed_lst->name); - failed_lst = failed_lst->next; - //if(failed_lst->next) list_failed_test(failed_lst->next); + if(id_thrd < 0 || id_thrd == parallel_nb ){ + LISTE_ALL_FAILED_TEST_IN_F_OUT + }else{ + while(failed_lst){ + PRINT_HK_C(RED_K, HK_FL," %s, on thread[%ld]\n",failed_lst->name,id_thrd); + failed_lst = failed_lst->next; + } } - }else{ - while(failed_lst){ - PRINT_HK_C(RED_K, HK_FL," %s, on thread[%ld]\n",failed_lst->name,id_thrd); - failed_lst = failed_lst->next; - //if(failed_lst->next) list_failed_test(failed_lst->next); - } - } - + else{ + LISTE_ALL_FAILED_TEST_IN_F_OUT + } PRINT_HK_C(DEFAULT_K, HK_EQ,"%s\n",""); } @@ -253,13 +418,9 @@ void list_failed_test(struct failed_lists *test_failed){ #define INCREMENT_EXPECT(expect,name)\ do{\ - size_t num_test=extract_num_test__f(name);\ + size_t num_test=extract_num__f(name);\ ++count_## expect ##_test[num_test];\ PRINT_DEBUG("INCREMENT cout_%s_test[%ld] = %ld\n",#expect, num_test,count_## expect ##_test[num_test]); \ - /*PRINT_DEBUG(" cout_%s_test[%ld] = %ld , count_%s_thread[%ld] = %ld\n",#expect, num_test,count_## expect ##_test[num_test]); \ - size_t num_thread= id_of_thread_executed(pthread_self());\ - ++count_## expect ##_thread[num_thread];\ - PRINT_DEBUG(" cout_%s_thread[%ld] = %ld , count_%s_thread[%ld] = %ld\n",#expect, num_thread,count_## expect ##_thread[num_thread]);*/ \ }while(0); @@ -287,11 +448,6 @@ bool expected_##expect##_f_name(bool val, const char * name){ EXPECTED_EXPECT_F(true) EXPECTED_EXPECT_F(false) -/* -EXPECTED_EXPECT_F(true,false) -EXPECTED_EXPECT_F(false,true) -*/ - #define EXPECTED_OP_TYPE(OP,type) \ \ @@ -699,7 +855,7 @@ void begin_execute_func_parallel(char *fun_ame, struct timespec *start_t, size_t void end_execute_func_parallel(char *fun_ame, struct timespec start_t, size_t id_thrd){ struct timespec end_t; clock_gettime(CLOCK_REALTIME, &end_t); - size_t num_test = extract_num_test__f(fun_ame); + size_t num_test = extract_num__f(fun_ame); PRINT_DEBUG(" ... thread[%ld], count_fail_test[%ld] = %ld ... %s\n", id_thrd, num_test, count_fail_test[num_test],fun_ame); if(count_fail_test[num_test]){ INCREMENT(count_fail_global); /*++count_fail_global*/ @@ -733,7 +889,7 @@ void progress_test_(int max_colon){ tmp = current_fn; UNLOCK(mut_current_test); if(tmp) - num_test = extract_num_test__f(tmp->name); + num_test = extract_num__f(tmp->name); gotoxy(13,0); for(int i=0; i<(num_test*max_colon/count_tests); ++i) printf("#"); //printf("%c",prgss[cur]); @@ -797,7 +953,7 @@ init_parallel_test_() { progress = PROGRESS; - is_parallel = 1; + is_parallel_nb = 1; f_ou_th = malloc((parallel_nb + 1) *sizeof(FILE*)); log_name_file_thrd = malloc((parallel_nb + 1) *sizeof(char*)); @@ -863,21 +1019,37 @@ final_parallel_test_() pthread_mutex_destroy(&mut_count_pass_local); pthread_mutex_destroy(&mut_count_fail_local); - char reader[256]; - for(size_t id_thrd =0 ; id_thrd <= parallel_nb; ++id_thrd){ - rewind(f_ou_th[id_thrd]); // put the file pointer to the begin of file; - while(fgets(reader, 255,f_ou_th[id_thrd] )){ - fprintf(F_OUT,"%s",reader); + char reader[256]; + + if(savelog){ + FILE *f_savelog; + f_savelog=fopen(savelog, "w+"); + for(size_t id_thrd =0 ; id_thrd <= parallel_nb; ++id_thrd){ + rewind(f_ou_th[id_thrd]); // put the file pointer to the begin of file; + while(fgets(reader, 255,f_ou_th[id_thrd] )){ + fprintf(F_OUT,"%s",reader); + fprintf(f_savelog,"%s",reader); + } + fclose(f_ou_th[id_thrd]); + } + fclose(f_savelog); + }else{ + for(size_t id_thrd =0 ; id_thrd <= parallel_nb; ++id_thrd){ + rewind(f_ou_th[id_thrd]); // put the file pointer to the begin of file; + while(fgets(reader, 255,f_ou_th[id_thrd] )) + fprintf(F_OUT,"%s",reader); + fclose(f_ou_th[id_thrd]); } - fclose(f_ou_th[id_thrd]); } - //fclose(f_ou_th[parallel_nb]); - if(!SAVE_LOG){ + + if(removelog){ for(size_t i=0; i<=parallel_nb; ++i){ remove(log_name_file_thrd[i]); } } + + } void run_all_tests_parallel(size_t parallel /*, int max_col*/) @@ -919,7 +1091,13 @@ if(progress) pthread_join(thrd_progress, NULL); } - +void run_all_tests_args(int argc, char **argv){ + + parse_options(argc,argv); + if(help) usage(argc,argv); + if(is_parallel_nb) run_all_tests_parallel(parallel_nb); + else run_all_tests(); +} void clear_all_func(struct func **fun) diff --git a/src/test_t/test_t.h b/src/test_t/test_t.h index 7d92718..bbee5fe 100644 --- a/src/test_t/test_t.h +++ b/src/test_t/test_t.h @@ -54,11 +54,11 @@ #define DESCRIPTION_NE "inequality" -#ifndef NOT_COLORED - #define NOT_COLORED 0 -#endif /* NOT_COLORED */ - #if 0 +#ifndef unicolour + #define unicolour 0 +#endif /* unicolour */ + #ifndef PARALLEL #define PARALLEL 1 #define LOCK(mut) @@ -66,11 +66,12 @@ #else /*PARALLEL defined*/ #define LOCK(mutex_var) pthread_mutex_lock(&mutex_var); #define UNLOCK(mutex_var) pthread_mutex_unlock(&mutex_var); - #define is_parallel 1 + #define is_parallel_nb 1 #endif #endif /* 0 */ extern FILE **f_ou_th; +extern bool unicolour; // ===================== rec not in file @@ -97,7 +98,7 @@ extern FILE **f_ou_th; */ #define PRINT_HK_C(color,hk,...)\ - do{ if(!NOT_COLORED) fprintf(F_OUT, color hk DEFAULT_K __VA_ARGS__); \ + do{ if(!unicolour) fprintf(F_OUT, color hk DEFAULT_K __VA_ARGS__); \ else fprintf(F_OUT, hk __VA_ARGS__); } while(0) /* =================================== end no file */ @@ -106,7 +107,7 @@ extern FILE **f_ou_th; #define PRINT_LOC(fmt, ...) \ do{ \ - if(is_parallel){\ + if(is_parallel_nb){\ size_t id_thread=id_of_thread_executed();\ if(id_thread < 0){\ fprintf(F_OUT, "%s:%d:%s(): " fmt, __FILE__, \ @@ -125,7 +126,7 @@ extern FILE **f_ou_th; #define PRINTF( ...) \ do{ \ - if(is_parallel){\ + if(is_parallel_nb){\ size_t id_thread=id_of_thread_executed();\ if(id_thread < 0){\ fprintf(F_OUT,__VA_ARGS__);\ @@ -141,19 +142,19 @@ extern FILE **f_ou_th; #define PRINT_HK_C(color,hk,...)\ do{ \ - if(is_parallel){\ + if(is_parallel_nb){\ size_t id_thread=id_of_thread_executed();\ if(id_thread < 0){\ - if(!NOT_COLORED) fprintf(F_OUT, color hk DEFAULT_K __VA_ARGS__); \ + if(!unicolour) fprintf(F_OUT, color hk DEFAULT_K __VA_ARGS__); \ else fprintf(F_OUT, hk __VA_ARGS__); \ }\ else{\ - if(!NOT_COLORED) fprintf(f_ou_th[id_thread], color hk DEFAULT_K __VA_ARGS__); \ + if(!unicolour) fprintf(f_ou_th[id_thread], color hk DEFAULT_K __VA_ARGS__); \ else fprintf(f_ou_th[id_thread], hk __VA_ARGS__); \ }\ } \ else{\ - if(!NOT_COLORED) fprintf(F_OUT, color hk DEFAULT_K __VA_ARGS__); \ + if(!unicolour) fprintf(F_OUT, color hk DEFAULT_K __VA_ARGS__); \ else fprintf(F_OUT, hk __VA_ARGS__); \ }\ }while(0) @@ -170,7 +171,7 @@ extern FILE **f_ou_th; * print [ HK_NAME ] with color */ #define PRINT_HK_C(color,hk,format,...)\ - do{ if(!NOT_COLORED) fprintf(F_OUT, color hk DEFAULT_K format, __VA_ARGS__); \ + do{ if(!unicolour) fprintf(F_OUT, color hk DEFAULT_K format, __VA_ARGS__); \ else fprintf(F_OUT, hk format, __VA_ARGS__); } while(0) \ #endif /* 0 */ @@ -191,21 +192,26 @@ struct func { }; -extern bool is_parallel; +extern bool is_parallel_nb; long int id_of_thread_executed(void); +void parse_options(int argc, char **argv); + void run_all_tests(); void execute_all(struct func *fun); void append_func(void (*run)(void), char *name); -//__attribute__((destructor)) void purge_tests(); void run_some_tests(size_t cnt, ... ); void run_all_tests_exept(size_t cnt, ... ); void run_some_tests_ordered(size_t cnt, ... ); void run_all_tests_parallel(size_t parallel /*, int max_col*/); - +/* + * to launch test with different parameters without re-compile it + * it can print help if need! + * */ +void run_all_tests_args(int argc, char **argv); bool expected_true_f(bool val); bool expected_false_f(bool val); @@ -337,7 +343,7 @@ GEN_EXPECTED_OP_TYPE_FUNC(NE, TYPE_STRING) */ #define HANDLE_OP_EXPECT_ASSERT(OP,type,var1,var2,is_assert) \ do{ \ - if(is_parallel == 0){\ + if(is_parallel_nb == 0){\ if(expected_##OP##_##type(var1, var2)){ \ PRINT_HK_C(GREEN_K,HK_TR," 1 test passed from %s \n\n",__func__); \ } \ @@ -598,7 +604,7 @@ do{ \ #define HANDLE_EXPECT_NOT_EXPECT_ASSERT(expect,not_expect,var1,is_assert) \ do{ \ - if(is_parallel==0){\ + if(is_parallel_nb==0){\ if(expected_##expect##_f(var1)){ \ PRINT_HK_C(GREEN_K,HK_TR," 1 test passed from %s \n\n",__func__); \ } \