All of lore.kernel.org
 help / color / mirror / Atom feed
From: John Kacur <jkacur@redhat.com>
To: Daniel Wagner <dwagner@suse.de>
Cc: Clark Williams <williams@redhat.com>, linux-rt-users@vger.kernel.org
Subject: Re: [PATCH rt-tests v3 31/33] pi_stress: Add JSON output feature
Date: Fri, 7 May 2021 12:59:03 -0400 (EDT)	[thread overview]
Message-ID: <28158ea-eeca-1ff5-355a-1ba4f54665@redhat.com> (raw)
In-Reply-To: <20210320183829.1318-32-dwagner@suse.de>



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@suse.de>
> ---
>  src/pi_tests/pi_stress.c | 22 +++++++++++++++++++++-
>  1 file changed, 21 insertions(+), 1 deletion(-)
> 
> diff --git a/src/pi_tests/pi_stress.c b/src/pi_tests/pi_stress.c
> index 73f0e6a402e3..3f93d4aadd53 100644
> --- a/src/pi_tests/pi_stress.c
> +++ b/src/pi_tests/pi_stress.c
> @@ -99,6 +99,9 @@ int debugging = 0;
>  
>  int quiet = 0;	/* turn off all prints, default = 0 (off) */
>  
> +/* filename for JSON output */
> +char outfile[MAX_PATH];
> +
>  /* prompt to start test */
>  int prompt = 0;
>  
> @@ -209,6 +212,7 @@ int create_group(struct group_parameters *group);
>  unsigned long total_inversions(void);
>  void banner(void);
>  void summary(void);
> +void write_stats(FILE *f, void *data);
>  void wait_for_termination(void);
>  int barrier_init(pthread_barrier_t *b, const pthread_barrierattr_t *attr,
>  		 unsigned int count, const char *name);
> @@ -235,6 +239,7 @@ int main(int argc, char **argv)
>  
>  
>  	/* process command line arguments */
> +	rt_init(argc, argv);
>  	process_command_line(argc, argv);
>  
>  	/* set default sched attributes */
> @@ -299,6 +304,7 @@ int main(int argc, char **argv)
>  	}
>  	/* report */
>  	banner();
> +	rt_test_start();
>  	start = time(NULL);
>  
>  	/* turn loose the threads */
> @@ -335,6 +341,10 @@ int main(int argc, char **argv)
>  		kill(0, SIGTERM);
>  	finish = time(NULL);
>  	summary();
> +
> +	if (strlen(outfile) != 0)
> +		rt_write_json(outfile, retval, write_stats, NULL);
> +
>  	if (lockall)
>  		munlockall();
>  	exit(retval);
> @@ -983,6 +993,7 @@ void usage(int error)
>  	       "-h       --help            print this message\n"
>  	       "-i INV   --inversions=INV  number of inversions per group (default is infinite)\n"
>  	       "-m       --mlockall        lock current and future memory\n"
> +	       "         --output=FILENAME write final results into FILENAME, JSON formatted\n"
>  	       "-p       --prompt          prompt before starting the test\n"
>  	       "-q       --quiet           suppress running output\n"
>  	       "-r       --rr              use SCHED_RR for test threads [SCHED_FIFO]\n"
> @@ -1276,7 +1287,7 @@ int process_sched_line(const char *arg)
>  
>  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_MLOCKALL, OPT_OUTPUT, OPT_PROMPT, OPT_QUIET, OPT_RR, OPT_SCHED,
>  	OPT_UNIPROCESSOR, OPT_VERBOSE, OPT_VERSION,
>  };
>  
> @@ -1290,6 +1301,7 @@ void process_command_line(int argc, char **argv)
>  			{"help",		no_argument,		NULL, OPT_HELP},
>  			{"inversions",		required_argument,	NULL, OPT_INVERSIONS},
>  			{"mlockall",		no_argument,		NULL, OPT_MLOCKALL},
> +			{"output",		required_argument,	NULL, OPT_OUTPUT},
>  			{"prompt",		no_argument,		NULL, OPT_PROMPT},
>  			{"quiet",		no_argument,		NULL, OPT_QUIET},
>  			{"rr",			no_argument,		NULL, OPT_RR},
> @@ -1336,6 +1348,9 @@ void process_command_line(int argc, char **argv)
>  		case 'm':
>  			lockall = 1;
>  			break;
> +		case OPT_OUTPUT:
> +			strncpy(outfile, optarg, strnlen(optarg, MAX_PATH-1));
> +			break;
>  		case OPT_PROMPT:
>  		case 'p':
>  			prompt = 1;
> @@ -1439,6 +1454,11 @@ void summary(void)
>  	       t->tm_yday, t->tm_hour, t->tm_min, t->tm_sec);
>  }
>  
> +void write_stats(FILE *f, void *data)
> +{
> +	fprintf(f, "  \"inversion\": %lu\n", total_inversions());
> +}
> +
>  int
>  barrier_init(pthread_barrier_t *b, const pthread_barrierattr_t *attr,
>  	     unsigned int count, const char *name)
> -- 
> 2.30.2
> 
> 
Signed-off-by: John Kacur <jkacur@redhat.com>

  reply	other threads:[~2021-05-07 16:59 UTC|newest]

Thread overview: 73+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-20 18:37 [PATCH rt-tests v3 00/33] JSON cleanups and more tests updated Daniel Wagner
2021-03-20 18:37 ` [PATCH rt-tests v3 01/33] cyclictest: Remove unused include header Daniel Wagner
2021-05-07 16:17   ` John Kacur
2021-03-20 18:37 ` [PATCH rt-tests v3 02/33] cyclicdeadline: " Daniel Wagner
2021-05-07 16:19   ` John Kacur
2021-03-20 18:37 ` [PATCH rt-tests v3 03/33] signaltest: Add missing --output usage info Daniel Wagner
2021-05-07 16:26   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 04/33] rt-util: Add rt_init function Daniel Wagner
2021-05-07 16:27   ` John Kacur
2021-05-12  7:30     ` Daniel Wagner
2021-03-20 18:38 ` [PATCH rt-tests v3 05/33] cyclictest: Initialize rt-util Daniel Wagner
2021-05-07 16:28   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 06/33] oslat: " Daniel Wagner
2021-05-07 16:29   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 07/33] pmqtest: " Daniel Wagner
2021-05-07 16:29   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 08/33] ptsematest: " Daniel Wagner
2021-05-07 16:30   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 09/33] rt-migrate-test: " Daniel Wagner
2021-05-07 16:31   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 10/33] cyclicdeadline: " Daniel Wagner
2021-05-07 16:31   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 11/33] signaltest: " Daniel Wagner
2021-05-07 16:32   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 12/33] sigwaittest: " Daniel Wagner
2021-05-07 16:33   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 13/33] svematest: " Daniel Wagner
2021-05-07 16:34   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 14/33] rt-util: Remove superfluous arguments from rt_write_json Daniel Wagner
2021-05-07 16:36   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 15/33] rt-util: Introduce rt_test_start() Daniel Wagner
2021-05-07 16:40   ` John Kacur
2021-05-12  7:33     ` Daniel Wagner
2021-03-20 18:38 ` [PATCH rt-tests v3 16/33] cyclictest: Record start of test execution Daniel Wagner
2021-05-07 16:41   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 17/33] oslat: " Daniel Wagner
2021-05-07 16:41   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 18/33] pmqtest: " Daniel Wagner
2021-05-07 16:43   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 19/33] ptesematest: " Daniel Wagner
2021-05-07 16:43   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 20/33] rt-migrate-test: " Daniel Wagner
2021-05-07 16:44   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 21/33] cyclicdeadline: " Daniel Wagner
2021-05-07 16:45   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 22/33] signaltest: " Daniel Wagner
2021-05-07 16:45   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 23/33] sigwaittest: " Daniel Wagner
2021-05-07 16:46   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 24/33] svsematest: " Daniel Wagner
2021-05-07 16:46   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 25/33] rt-util: Add return_code to common section of JSON output Daniel Wagner
2021-05-07 16:49   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 26/33] pip_stress: Move test result output to main Daniel Wagner
2021-05-07 16:55   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 27/33] pip_stress: Return failure code if test fails Daniel Wagner
2021-05-07 16:54   ` John Kacur
2021-05-12  7:35     ` Daniel Wagner
2021-05-13 19:27       ` John Kacur
2021-05-14  6:58         ` Daniel Wagner
2021-03-20 18:38 ` [PATCH rt-tests v3 28/33] pip_stress: Prepare arg parser to accept only long options Daniel Wagner
2021-05-07 16:55   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 29/33] pip_stress: Add JSON output feature Daniel Wagner
2021-05-07 16:58   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 30/33] pi_stress: Prepare command line parser for long options only Daniel Wagner
2021-05-07 16:58   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 31/33] pi_stress: Add JSON output feature Daniel Wagner
2021-05-07 16:59   ` John Kacur [this message]
2021-03-20 18:38 ` [PATCH rt-tests v3 32/33] ssdd: Add quiet command line option Daniel Wagner
2021-05-07 17:00   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 33/33] ssdd: Add JSON output feature Daniel Wagner
2021-05-07 17:00   ` John Kacur
2021-03-22 15:50 ` [PATCH rt-tests v3 00/33] JSON cleanups and more tests updated John Kacur

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=28158ea-eeca-1ff5-355a-1ba4f54665@redhat.com \
    --to=jkacur@redhat.com \
    --cc=dwagner@suse.de \
    --cc=linux-rt-users@vger.kernel.org \
    --cc=williams@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.