Re: [PATCH rt-tests v3 29/33] pip_stress: Add JSON output feature

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

 




On Sat, 20 Mar 2021, Daniel Wagner wrote:

> Write the test results as JSON output to a file. This allows to
> simplifies any parsing later on.
> 
> Signed-off-by: Daniel Wagner <dwagner@xxxxxxx>
> ---
>  src/pi_tests/pip_stress.c | 16 ++++++++++++++--
>  1 file changed, 14 insertions(+), 2 deletions(-)
> 
> diff --git a/src/pi_tests/pip_stress.c b/src/pi_tests/pip_stress.c
> index 0831f698ff1d..f6096a2de273 100644
> --- a/src/pi_tests/pip_stress.c
> +++ b/src/pi_tests/pip_stress.c
> @@ -67,18 +67,21 @@ struct State *statep;
>  const int policy = SCHED_FIFO;
>  static int prio_min;	/* Initialized for the minimum priority of policy */
>  
> +static char outfile[MAX_PATH];
> +
>  static void usage(int error)
>  {
>  	printf("pip_stress V %1.2f\n", VERSION);
>  	printf("Usage:\n"
>  	       "pip_stress <options>\n"\
> -	       "-h	--help                  Show this help menu.\n"
> +	       "-h	 --help            Show this help menu.\n"
> +	       "         --output=FILENAME write final results into FILENAME, JSON formatted\n"
>  	       );
>  	exit(error);
>  }
>  
>  enum option_values {
> -	OPT_HELP=1
> +	OPT_HELP=1, OPT_OUTPUT,
>  };
>  
>  int main(int argc, char *argv[])
> @@ -89,9 +92,11 @@ int main(int argc, char *argv[])
>  	int res;
>  	int *minimum_priority = (int*)&prio_min;
>  
> +	rt_init(argc, argv);
>  	for (;;) {
>  		struct option long_options[] = {
>  			{"help",	no_argument,		NULL, OPT_HELP},
> +			{"output",	required_argument,	NULL, OPT_OUTPUT },
>  			{NULL,		0,			NULL, 0}
>  		};
>  
> @@ -103,6 +108,9 @@ int main(int argc, char *argv[])
>  		case 'h':
>  			usage(0);
>  			break;
> +		case OPT_OUTPUT:
> +			strncpy(outfile, optarg, strnlen(optarg, MAX_PATH-1));
> +			break;
>  		default:
>  			usage(1);
>  			break;
> @@ -145,6 +153,7 @@ int main(int argc, char *argv[])
>  		err_exit(err, NULL);
>  	}
>  
> +	rt_test_start();
>  	pid1 = fork();
>  	if (pid1 == -1) {
>  		perror("fork");
> @@ -165,6 +174,9 @@ int main(int argc, char *argv[])
>  		}
>  	}
>  
> +	if (strlen(outfile) != 0)
> +		rt_write_json(outfile, !statep->inversion, NULL, NULL);
> +
>  	if (!statep->inversion) {
>  		printf("No inversion incurred\n");
>  		exit(1);
> -- 
> 2.30.2
> 
> 

I'm not opposed to json in this test in general, but need to think more 
about how this should look. Omiting for now, but I might be amendable in 
the future.

thanks

John



[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