From ee47e81f9cbca646f595c3aef7ae5af6239512f7 Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Wed, 12 Mar 2008 16:48:07 +0000 Subject: [PATCH] Replaced positional command line arguments by command options. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7650 --- exp-drd/tests/omp_prime.c | 44 ++++++++++++++++++++++++++------------- 1 file changed, 30 insertions(+), 14 deletions(-) diff --git a/exp-drd/tests/omp_prime.c b/exp-drd/tests/omp_prime.c index 5fd7804d8e..69a7c79a7d 100644 --- a/exp-drd/tests/omp_prime.c +++ b/exp-drd/tests/omp_prime.c @@ -9,6 +9,7 @@ #include #include #include +#include // getopt() #include "../drd_clientreq.h" @@ -35,11 +36,31 @@ int main(int argc, char **argv) { int i; int total = 0; - const int n = argc > 1 ? atoi(argv[1]) : 300; - const int num_threads = argc > 2 ? atoi(argv[2]) : 4; + int silent = 0; + int n; + int num_threads = 2; + int optchar; int* primes; int* pflag; + while ((optchar = getopt(argc, argv, "qt:")) != EOF) + { + switch (optchar) + { + case 'q': silent = 1; break; + case 't': num_threads = atoi(optarg); break; + default: + fprintf(stderr, "Error: unknown option '%c'.\n", optchar); + return 1; + } + } + + if (optind + 1 != argc) + { + fprintf(stderr, "Error: wrong number of arguments.\n"); + } + n = atoi(argv[optind]); + // Not the most user-friendly way to do error checking, but better than // nothing. assert(n > 2); @@ -51,14 +72,6 @@ int main(int argc, char **argv) omp_set_num_threads(num_threads); omp_set_dynamic(0); -#if 1 - { - int res; - VALGRIND_DO_CLIENT_REQUEST(res, 0, VG_USERREQ__DRD_TRACE_ADDR, - &total, 0, 0, 0, 0); - } -#endif - for (i = 0; i < n; i++) { pflag[i] = 1; } @@ -72,11 +85,14 @@ int main(int argc, char **argv) total++; } } - printf("Number of prime numbers between 2 and %d: %d\n", - n, total); - for (i = 0; i < total; i++) + if (! silent) { - printf("%d\n", primes[i]); + printf("Number of prime numbers between 2 and %d: %d\n", + n, total); + for (i = 0; i < total; i++) + { + printf("%d\n", primes[i]); + } } free(pflag); -- 2.47.3