Message ID | 20210320183829.1318-33-dwagner@suse.de |
---|---|
State | New |
Headers | show |
Series | JSON cleanups and more tests updated | expand |
On Sat, 20 Mar 2021, Daniel Wagner wrote: > The quiet option is useful for automated test setups where > only the final result of the run is interesting. > > Signed-off-by: Daniel Wagner <dwagner@suse.de> > --- > src/ssdd/ssdd.c | 29 ++++++++++++++++++++--------- > 1 file changed, 20 insertions(+), 9 deletions(-) > > diff --git a/src/ssdd/ssdd.c b/src/ssdd/ssdd.c > index 9fa61f39f6e3..50bec824b2e8 100644 > --- a/src/ssdd/ssdd.c > +++ b/src/ssdd/ssdd.c > @@ -64,9 +64,11 @@ static const char *get_state_name(int state) > > #define unused __attribute__((unused)) > > +static int quiet; > + > static int got_sigchld; > > -enum option_value { OPT_NFORKS=1, OPT_NITERS, OPT_HELP }; > +enum option_value { OPT_NFORKS=1, OPT_NITERS, OPT_HELP, OPT_QUIET }; > > static void usage(int error) > { > @@ -75,6 +77,7 @@ static void usage(int error) > "ssdd <options>\n\n" > "-f --forks=NUM number of forks\n" > "-h --help print this message\n" > + "-q --quiet suppress running output\n" > "-i --iters=NUM number of iterations\n" > ); > exit(error); > @@ -176,7 +179,8 @@ static int forktests(int testid) > if (!child) > child_process(); > > - printf("forktest#%d/%d/%d: STARTING\n", testid, parent, child); > + if (!quiet) > + printf("forktest#%d/%d/%d: STARTING\n", testid, parent, child); > > act.sa_sigaction = sigchld; > sigemptyset(&act.sa_mask); > @@ -278,8 +282,8 @@ static int forktests(int testid) > /* There is no need for the tracer to kill the tracee. It will > * automatically exit when its owner, ie, us, exits. > */ > - > - printf("forktest#%d/%d: EXITING, no error\n", testid, parent); > + if (!quiet) > + printf("forktest#%d/%d: EXITING, no error\n", testid, parent); > exit(0); > } > > @@ -297,10 +301,11 @@ int main(int argc, char **argv) > static struct option long_options[] = { > {"forks", required_argument, NULL, OPT_NFORKS}, > {"help", no_argument, NULL, OPT_HELP}, > + {"quiet", no_argument, NULL, OPT_QUIET}, > {"iters", required_argument, NULL, OPT_NITERS}, > {NULL, 0, NULL, 0}, > }; > - int c = getopt_long(argc, argv, "f:hi:", long_options, &option_index); > + int c = getopt_long(argc, argv, "f:hqi:", long_options, &option_index); > if (c == -1) > break; > switch(c) { > @@ -312,6 +317,10 @@ int main(int argc, char **argv) > case OPT_HELP: > usage(0); > break; > + case OPT_QUIET: > + case 'q': > + quiet = 1; > + break; > case 'i': > case OPT_NITERS: > nsteps = atoi(optarg); > @@ -322,10 +331,12 @@ int main(int argc, char **argv) > } > } > > - printf("#main : %d\n", getpid()); > - printf("#forks: %d\n", nforks); > - printf("#steps: %d\n", nsteps); > - printf("\n"); > + if (!quiet) { > + printf("#main : %d\n", getpid()); > + printf("#forks: %d\n", nforks); > + printf("#steps: %d\n", nsteps); > + printf("\n"); > + } > > for (i = 0; i < nforks; i++) { > child = fork(); > -- > 2.30.2 > > Signed-off-by: John Kacur <jkacur@redhat.com>
diff --git a/src/ssdd/ssdd.c b/src/ssdd/ssdd.c index 9fa61f39f6e3..50bec824b2e8 100644 --- a/src/ssdd/ssdd.c +++ b/src/ssdd/ssdd.c @@ -64,9 +64,11 @@ static const char *get_state_name(int state) #define unused __attribute__((unused)) +static int quiet; + static int got_sigchld; -enum option_value { OPT_NFORKS=1, OPT_NITERS, OPT_HELP }; +enum option_value { OPT_NFORKS=1, OPT_NITERS, OPT_HELP, OPT_QUIET }; static void usage(int error) { @@ -75,6 +77,7 @@ static void usage(int error) "ssdd <options>\n\n" "-f --forks=NUM number of forks\n" "-h --help print this message\n" + "-q --quiet suppress running output\n" "-i --iters=NUM number of iterations\n" ); exit(error); @@ -176,7 +179,8 @@ static int forktests(int testid) if (!child) child_process(); - printf("forktest#%d/%d/%d: STARTING\n", testid, parent, child); + if (!quiet) + printf("forktest#%d/%d/%d: STARTING\n", testid, parent, child); act.sa_sigaction = sigchld; sigemptyset(&act.sa_mask); @@ -278,8 +282,8 @@ static int forktests(int testid) /* There is no need for the tracer to kill the tracee. It will * automatically exit when its owner, ie, us, exits. */ - - printf("forktest#%d/%d: EXITING, no error\n", testid, parent); + if (!quiet) + printf("forktest#%d/%d: EXITING, no error\n", testid, parent); exit(0); } @@ -297,10 +301,11 @@ int main(int argc, char **argv) static struct option long_options[] = { {"forks", required_argument, NULL, OPT_NFORKS}, {"help", no_argument, NULL, OPT_HELP}, + {"quiet", no_argument, NULL, OPT_QUIET}, {"iters", required_argument, NULL, OPT_NITERS}, {NULL, 0, NULL, 0}, }; - int c = getopt_long(argc, argv, "f:hi:", long_options, &option_index); + int c = getopt_long(argc, argv, "f:hqi:", long_options, &option_index); if (c == -1) break; switch(c) { @@ -312,6 +317,10 @@ int main(int argc, char **argv) case OPT_HELP: usage(0); break; + case OPT_QUIET: + case 'q': + quiet = 1; + break; case 'i': case OPT_NITERS: nsteps = atoi(optarg); @@ -322,10 +331,12 @@ int main(int argc, char **argv) } } - printf("#main : %d\n", getpid()); - printf("#forks: %d\n", nforks); - printf("#steps: %d\n", nsteps); - printf("\n"); + if (!quiet) { + printf("#main : %d\n", getpid()); + printf("#forks: %d\n", nforks); + printf("#steps: %d\n", nsteps); + printf("\n"); + } for (i = 0; i < nforks; i++) { child = fork();
The quiet option is useful for automated test setups where only the final result of the run is interesting. Signed-off-by: Daniel Wagner <dwagner@suse.de> --- src/ssdd/ssdd.c | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-)