Re: [PATCH rt-tests v3 30/33] pi_stress: Prepare command line parser for long options only

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Sat, 20 Mar 2021, Daniel Wagner wrote:

> Introduce option value enums in order to be able to parse long options
> only.
> 
> Signed-off-by: Daniel Wagner <dwagner@xxxxxxx>
> ---
>  src/pi_tests/pi_stress.c | 45 ++++++++++++++++++++++++++++------------
>  1 file changed, 32 insertions(+), 13 deletions(-)
> 
> diff --git a/src/pi_tests/pi_stress.c b/src/pi_tests/pi_stress.c
> index 49f89b7b0136..73f0e6a402e3 100644
> --- a/src/pi_tests/pi_stress.c
> +++ b/src/pi_tests/pi_stress.c
> @@ -1274,23 +1274,29 @@ int process_sched_line(const char *arg)
>  	return retval;
>  }
>  
> +enum option_values {
> +	OPT_DEBUG=1, OPT_DURATION, OPT_GROUPS, OPT_HELP, OPT_INVERSIONS,
> +	OPT_MLOCKALL, OPT_PROMPT, OPT_QUIET, OPT_RR, OPT_SCHED,
> +	OPT_UNIPROCESSOR, OPT_VERBOSE, OPT_VERSION,
> +};
> +
>  void process_command_line(int argc, char **argv)
>  {
>  	for (;;) {
>  		struct option options[] = {
> -			{"debug",		no_argument,		NULL, 'd'},
> -			{"duration",		required_argument,	NULL, 'D'},
> -			{"groups",		required_argument,	NULL, 'g'},
> -			{"help",		no_argument,		NULL, 'h'},
> -			{"inversions",		required_argument,	NULL, 'i'},
> -			{"mlockall",		no_argument,		NULL, 'm'},
> -			{"prompt",		no_argument,		NULL, 'p'},
> -			{"quiet",		no_argument,		NULL, 'q'},
> -			{"rr",			no_argument,		NULL, 'r'},
> -			{"sched",		required_argument,	NULL, 's'},
> -			{"uniprocessor",	no_argument,		NULL, 'u'},
> -			{"verbose",		no_argument,		NULL, 'v'},
> -			{"version",		no_argument,		NULL, 'V'},
> +			{"debug",		no_argument,		NULL, OPT_DEBUG},
> +			{"duration",		required_argument,	NULL, OPT_DURATION},
> +			{"groups",		required_argument,	NULL, OPT_GROUPS},
> +			{"help",		no_argument,		NULL, OPT_HELP},
> +			{"inversions",		required_argument,	NULL, OPT_INVERSIONS},
> +			{"mlockall",		no_argument,		NULL, OPT_MLOCKALL},
> +			{"prompt",		no_argument,		NULL, OPT_PROMPT},
> +			{"quiet",		no_argument,		NULL, OPT_QUIET},
> +			{"rr",			no_argument,		NULL, OPT_RR},
> +			{"sched",		required_argument,	NULL, OPT_SCHED},
> +			{"uniprocessor",	no_argument,		NULL, OPT_UNIPROCESSOR},
> +			{"verbose",		no_argument,		NULL, OPT_VERBOSE},
> +			{"version",		no_argument,		NULL, OPT_VERSION},
>  			{NULL, 0, NULL, 0},
>  		};
>  
> @@ -1298,12 +1304,15 @@ void process_command_line(int argc, char **argv)
>  		if (c == -1)
>  			break;
>  		switch (c) {
> +		case OPT_DEBUG:
>  		case 'd':
>  			debugging = 1;
>  			break;
> +		case OPT_DURATION:
>  		case 'D':
>  			duration = parse_time_string(optarg);
>  			break;
> +		case OPT_GROUPS:
>  		case 'g':
>  			ngroups = strtol(optarg, NULL, 10);
>  			if (ngroups > num_processors) {
> @@ -1314,37 +1323,47 @@ void process_command_line(int argc, char **argv)
>  			}
>  			pi_info("number of groups set to %d\n", ngroups);
>  			break;
> +		case OPT_HELP:
>  		case 'h':
>  			usage(0);
>  			break;
> +		case OPT_INVERSIONS:
>  		case 'i':
>  			inversions = strtol(optarg, NULL, 10);
>  			pi_info("doing %d inversion per group\n", inversions);
>  			break;
> +		case OPT_MLOCKALL:
>  		case 'm':
>  			lockall = 1;
>  			break;
> +		case OPT_PROMPT:
>  		case 'p':
>  			prompt = 1;
>  			break;
> +		case OPT_QUIET:
>  		case 'q':
>  			verbose = 0;
>  			quiet = 1;
>  			break;
> +		case OPT_RR:
>  		case 'r':
>  			policy = SCHED_RR;
>  			break;
> +		case OPT_SCHED:
>  		case 's':
>  			if (process_sched_line(optarg))
>  				pi_error("ignoring invalid options '%s'\n", optarg);
>  			break;
> +		case OPT_UNIPROCESSOR:
>  		case 'u':
>  			uniprocessor = 1;
>  			break;
> +		case OPT_VERBOSE:
>  		case 'v':
>  			verbose = 1;
>  			quiet = 0;
>  			break;
> +		case OPT_VERSION:
>  		case 'V':
>  			printf("pi_stress v%1.2f ", VERSION);
>  			exit(0);
> -- 
> 2.30.2
> 
> 
Signed-off-by: John Kacur <jkacur@xxxxxxxxxx>



[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux