lib: avoid getopt value conflicts with tests

Most tests use a printable character as the value for getopt to return,
so avoid conflicts by using non-printing values for the standard options.

v2: fix "-h" short option

Signed-off-by: Thomas Wood <thomas.wood@intel.com>
This commit is contained in:
Thomas Wood 2014-07-25 16:54:41 +01:00
parent 8fc4107c91
commit fc5e25750f

View File

@ -218,6 +218,13 @@ int num_test_children;
int test_children_sz; int test_children_sz;
bool test_child; bool test_child;
enum {
OPT_LIST_SUBTESTS,
OPT_RUN_SUBTEST,
OPT_DEBUG,
OPT_HELP = 'h'
};
__attribute__((format(printf, 1, 2))) __attribute__((format(printf, 1, 2)))
static void kmsg(const char *format, ...) static void kmsg(const char *format, ...)
#define KERN_INFO "<5>" #define KERN_INFO "<5>"
@ -320,10 +327,10 @@ static int common_init(int argc, char **argv,
{ {
int c, option_index = 0; int c, option_index = 0;
static struct option long_options[] = { static struct option long_options[] = {
{"list-subtests", 0, 0, 'l'}, {"list-subtests", 0, 0, OPT_LIST_SUBTESTS},
{"run-subtest", 1, 0, 'r'}, {"run-subtest", 1, 0, OPT_RUN_SUBTEST},
{"debug", 0, 0, 'd'}, {"debug", 0, 0, OPT_DEBUG},
{"help", 0, 0, 'h'}, {"help", 0, 0, OPT_HELP},
}; };
char *short_opts; char *short_opts;
struct option *combined_opts; struct option *combined_opts;
@ -370,18 +377,18 @@ static int common_init(int argc, char **argv,
while ((c = getopt_long(argc, argv, short_opts, combined_opts, while ((c = getopt_long(argc, argv, short_opts, combined_opts,
&option_index)) != -1) { &option_index)) != -1) {
switch(c) { switch(c) {
case 'd': case OPT_DEBUG:
igt_log_level = IGT_LOG_DEBUG; igt_log_level = IGT_LOG_DEBUG;
break; break;
case 'l': case OPT_LIST_SUBTESTS:
if (!run_single_subtest) if (!run_single_subtest)
list_subtests = true; list_subtests = true;
break; break;
case 'r': case OPT_RUN_SUBTEST:
if (!list_subtests) if (!list_subtests)
run_single_subtest = strdup(optarg); run_single_subtest = strdup(optarg);
break; break;
case 'h': case OPT_HELP:
print_usage(help_str, false); print_usage(help_str, false);
ret = -1; ret = -1;
goto out; goto out;