From: Michal Sojka Date: Tue, 10 Nov 2009 12:41:09 +0000 (+0100) Subject: fwp-timing: Added --quiet option X-Git-Url: http://rtime.felk.cvut.cz/gitweb/frescor/fwp.git/commitdiff_plain/f3687e2e68575b7a0917f819000c0adb2af6db95 fwp-timing: Added --quiet option --- diff --git a/fwp/tests/timing/fwp-timing.c b/fwp/tests/timing/fwp-timing.c index c0c1b5b..41a385d 100644 --- a/fwp/tests/timing/fwp-timing.c +++ b/fwp/tests/timing/fwp-timing.c @@ -24,6 +24,7 @@ #include bool opt_verbose = false; +bool opt_quiet = false; #define HIST_MAX_US 1000000 #define HIST_RES_US 10 @@ -196,14 +197,15 @@ void create_endpoints(struct stream_params *p, static struct option long_opts[] = { - { "period", 1, 0, 'p' }, - { "budget", 1, 0, 'b' }, - { "source", 1, 0, 's' }, - { "dest", 1, 0, 'd' }, - { "async", 0, 0, 'a' }, - { "number", 0, 0, 'n' }, - { "count", 0, 0, 'c' }, - { "verbose",0, 0, 'v' }, + { "period", required_argument, 0, 'p' }, + { "budget", required_argument, 0, 'b' }, + { "source", required_argument, 0, 's' }, + { "dest", required_argument, 0, 'd' }, + { "async", no_argument, 0, 'a' }, + { "number", required_argument, 0, 'n' }, + { "count", required_argument, 0, 'c' }, + { "verbose",no_argument, 0, 'v' }, + { "quiet", no_argument, 0, 'q' }, { 0, 0, 0, 0} }; @@ -218,6 +220,7 @@ usage(void) printf(" -a, --async Send packets asynchronously\n"); printf(" -n, --number Number of streams with the same parameters\n"); printf(" -c, --count Number of messages to send [infinity]\n"); + printf(" -q, --quiet Print only final statistics\n"); printf(" -/, --stream New stream separator\n"); printf(" -v, --verbose Be more verbose\n"); } @@ -228,7 +231,7 @@ int parse_opts(int *argc, char **argv[], struct stream_params *p) int ret; bool options_found = false; - while ((opt = getopt_long(*argc, *argv, "/ab:c:p:s:d:n:v", long_opts, NULL)) != -1) { + while ((opt = getopt_long(*argc, *argv, "/ab:c:d:n:p:qs:v", long_opts, NULL)) != -1) { options_found = true; switch (opt) { case 'a': @@ -266,6 +269,10 @@ int parse_opts(int *argc, char **argv[], struct stream_params *p) break; case 'v': opt_verbose = true; + break; + case 'q': + opt_quiet = true; + break; case '/': break; default: @@ -359,7 +366,8 @@ void *receiver(void *arg) clock_gettime(CLOCK_MONOTONIC, &tsr); tss = msg->ts; if (msg->cnt != last_cnt+1) { - printf("%3d: packet(s) lost!\n", rp->id); + if (!opt_quiet) + printf("%3d: packet(s) lost!\n", rp->id); __sync_fetch_and_add(&stats.lost, msg->cnt - last_cnt+1); } else { hist_add(&hist, tsdiff2us(&tsr, &tss)); @@ -437,16 +445,17 @@ void *sender(void *arg) return NULL; } -void print_stat(bool full) +void print_stat(bool final) { printf("Sent: %5d Received: %5d Lost: %5d Max: %6.3f ms", stats.sent, stats.received, stats.lost, hist.max/1000.0); - if (full) { - printf(" Max: %6.3f ms 90%%: %6.3f ms", + if (final) { + printf(" Max: %6.3f ms 90%%: %6.3f ms\n", hist_get_percentile(&hist, 100)/1000.0, hist_get_percentile(&hist, 90)/1000.0); } - printf("\r"); + else + printf("\r"); fflush(stdout); } @@ -486,7 +495,7 @@ int main(int argc, char *argv[]) } } while(ret == 0); - while (!exit_flag) { + while (!exit_flag && !opt_quiet) { int v; print_stat(false); sem_getvalue(&finished, &v); @@ -499,7 +508,6 @@ int main(int argc, char *argv[]) sem_wait(&finished); print_stat(true); - printf("\n"); return 0; }