diff mbox series

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

Message ID 20210320183829.1318-31-dwagner@suse.de
State New
Headers show
Series JSON cleanups and more tests updated | expand

Commit Message

Daniel Wagner March 20, 2021, 6:38 p.m. UTC
Introduce option value enums in order to be able to parse long options
only.

Signed-off-by: Daniel Wagner <dwagner@suse.de>
---
 src/pi_tests/pi_stress.c | 45 ++++++++++++++++++++++++++++------------
 1 file changed, 32 insertions(+), 13 deletions(-)

Comments

John Kacur May 7, 2021, 4:58 p.m. UTC | #1
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@suse.de>

> ---

>  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@redhat.com>
diff mbox series

Patch

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);