static void usage(const char *prgname)
{
- printf("%s [options]\n"
+ printf("%s [options] [test1 test2 test3...]\n"
" -h\n"
" --"EC_OPT_HELP"\n"
" Show this help.\n"
" -l <level>\n"
" --"EC_OPT_LOG_LEVEL"=<level>\n"
- " Set log level (0 = no log, 6 = verbose).\n"
+ " Set log level (0 = no log, 7 = verbose).\n"
" -r <probability>\n"
" --"EC_OPT_RANDOM_ALLOC_FAIL"=<probability>\n"
" Cause malloc to fail randomly. This helps to debug\n"
return 0;
}
-static void parse_args(int argc, char **argv)
+static int parse_args(int argc, char **argv)
{
- int opt;
+ int ret, opt;
while ((opt = getopt_long(argc, argv, ec_short_options,
ec_long_options, NULL)) != EOF) {
default:
usage(argv[0]);
- exit(1);
+ return -1;
}
}
+
+ ret = optind - 1;
+ optind = 1;
+
+ return ret;
}
TAILQ_HEAD(debug_alloc_hdr_list, debug_alloc_hdr);
int main(int argc, char **argv)
{
- int ret, leaks;
+ int i, ret = 0, leaks;
+
+ ret = parse_args(argc, argv);
+ if (ret < 0)
+ return 1;
+
+ argc -= ret;
+ argv += ret;
- parse_args(argc, argv);
srandom(seed);
ec_log_register(debug_log, NULL);
return -1;
}
- ret = ec_test_all();
+ ret = 0;
+ if (argc <= 1) {
+ ret = ec_test_all();
+ } else {
+ for (i = 1; i < argc; i++)
+ ret |= ec_test_one(argv[i]);
+ }
ec_malloc_unregister();
leaks = debug_alloc_dump_leaks();