X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/41acb535492710d42da81b0878fa602bdeaa4bd5..94a5e6c017fdcf4882fe6cb518b6005d4c8dd8ae:/tools/tesh/tesh.c diff --git a/tools/tesh/tesh.c b/tools/tesh/tesh.c index e441b89701..f865e45fb4 100644 --- a/tools/tesh/tesh.c +++ b/tools/tesh/tesh.c @@ -21,8 +21,14 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(tesh, "TEst SHell utility"); /*** Options ***/ int timeout_value = 5; /* child timeout value */ int sort_len = 19; /* length of the prefix to sort */ +char *option; +int coverage = 0; /* whether the code coverage is enable */ +rctx_t rctx; const char *testsuite_name; + +xbt_dict_t env; + static void handle_line(const char *filepos, char *line) { /* Search end */ @@ -166,8 +172,7 @@ static void handle_suite(const char *filename, FILE * IN) rctx_free(rctx); /* Clear buffers */ - if (line) - free(line); + free(line); xbt_strbuff_free(buff); } @@ -178,12 +183,12 @@ static void parse_environ() int i; char *eq = NULL; char *key = NULL; - env = xbt_dict_new(); + env = xbt_dict_new_homogeneous(xbt_free_f); for (i = 0; environ[i]; i++) { p = environ[i]; eq = strchr(p, '='); key = bprintf("%.*s", (int) (eq - p), p); - xbt_dict_set(env, key, xbt_strdup(eq + 1), xbt_free_f); + xbt_dict_set(env, key, xbt_strdup(eq + 1), NULL); free(key); } } @@ -227,9 +232,9 @@ int main(int argc, char *argv[]) exit(1); } char *eq = strchr(argv[i+1], '='); - xbt_assert1(eq,"The argument of --setenv must contain a '=' (got %s instead)",argv[i+1]); + xbt_assert(eq,"The argument of --setenv must contain a '=' (got %s instead)",argv[i+1]); char *key = bprintf("%.*s", (int) (eq - argv[i+1]), argv[i+1]); - xbt_dict_set(env, key, xbt_strdup(eq + 1), xbt_free_f); + xbt_dict_set(env, key, xbt_strdup(eq + 1), NULL); XBT_INFO("setting environment variable '%s' to '%s'", key, eq+1); free(key); memmove(argv + i, argv + i + 2, (argc - i - 1) * sizeof(char *)); @@ -240,16 +245,25 @@ int main(int argc, char *argv[]) XBT_ERROR("--cfg argument requires an argument"); exit(1); } - if(!option){ //if option is NULL + if (!option){ //if option is NULL option = bprintf("--cfg=%s",argv[i+1]); - }else{ - option = bprintf("%s --cfg=%s",option,argv[i+1]); + } else { + char *newoption = bprintf("%s --cfg=%s", option, argv[i+1]); + free(option); + option = newoption; } XBT_INFO("Add option \'--cfg=%s\' to command line",argv[i+1]); memmove(argv + i, argv + i + 2, (argc - i - 1) * sizeof(char *)); argc -= 2; i -= 2; } + else if (!strcmp(argv[i], "--enable-coverage" )){ + coverage = 1; + XBT_INFO("Enable coverage"); + memmove(argv + i, argv + i + 1, (argc - i - 1) * sizeof(char *)); + argc -= 1; + i -= 1; + } } /* Find the description file */ @@ -288,6 +302,6 @@ int main(int argc, char *argv[]) rctx_exit(); xbt_dict_free(&env); - xbt_free_f(option); + free(option); return 0; }