diff options
author | Daniel Wagner <dwagner@suse.de> | 2021-02-23 20:24:05 +0100 |
---|---|---|
committer | John Kacur <jkacur@redhat.com> | 2021-05-07 12:24:45 -0400 |
commit | a82c7e81b4e1a28dedaa35df45751c313dd1ac2b (patch) | |
tree | a4881b9a519112fb854b36f90f5713d17ac5d8da | |
parent | d7734bcae0346aa91cbd343a69e0ff7a54a34229 (diff) | |
download | rt-tests-a82c7e81b4e1a28dedaa35df45751c313dd1ac2b.tar.gz |
ssdd: Add quiet command line option
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>
Signed-off-by: John Kacur <jkacur@redhat.com>
-rw-r--r-- | src/ssdd/ssdd.c | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/src/ssdd/ssdd.c b/src/ssdd/ssdd.c index 9fa61f3..50bec82 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(); |