On Mon, Jul 30, 2012 at 3:18 PM, Ben Pfaff <b...@nicira.com> wrote:
> This will allow passing arguments in for an upcoming test. > > Signed-off-by: Ben Pfaff <b...@nicira.com> > --- > tests/library.at | 15 ++++++-- > tests/test-util.c | 90 > +++++++++++++++++++++++++++++++++------------------- > 2 files changed, 68 insertions(+), 37 deletions(-) > > diff --git a/tests/library.at b/tests/library.at > index dce69de..70660a2 100644 > --- a/tests/library.at > +++ b/tests/library.at > @@ -100,10 +100,17 @@ nibble 0 1 2 3 4 5 6 7 8 9 10 > 11 12 13 14 15 > ]) > AT_CLEANUP > > -AT_SETUP([test utility functions]) > -AT_KEYWORDS([util]) > -AT_CHECK([test-util]) > -AT_CLEANUP > +m4_foreach( > + [testname], > + [[ctz], > + [log_2_floor], > + [bitwise_copy], > + [bitwise_zero], > + [bitwise_one], > + [bitwise_is_all_zeros]], > + [AT_SETUP([testname[()] function]) > + AT_CHECK([test-util testname], [0], [], []) > + AT_CLEANUP]) > > AT_SETUP([test unix socket -- short pathname]) > AT_CHECK([test-unix-socket x]) > diff --git a/tests/test-util.c b/tests/test-util.c > index 097b1eb..56c5b28 100644 > --- a/tests/test-util.c > +++ b/tests/test-util.c > @@ -22,6 +22,7 @@ > #include <stdlib.h> > > #include "byte-order.h" > +#include "command-line.h" > #include "random.h" > #include "util.h" > > @@ -36,6 +37,25 @@ check_log_2_floor(uint32_t x, int n) > } > > static void > +test_log_2_floor(int argc OVS_UNUSED, char *argv[] OVS_UNUSED) > +{ > + int n; > + > + for (n = 0; n < 32; n++) { > + /* Check minimum x such that f(x) == n. */ > + check_log_2_floor(1 << n, n); > + > + /* Check maximum x such that f(x) == n. */ > + check_log_2_floor((1 << n) | ((1 << n) - 1), n); > + > + /* Check a random value in the middle. */ > + check_log_2_floor((random_uint32() & ((1 << n) - 1)) | (1 << n), > n); > + } > + > + /* log_2_floor(0) is undefined, so don't check it. */ > +} > + > +static void > check_ctz(uint32_t x, int n) > { > if (ctz(x) != n) { > @@ -45,6 +65,26 @@ check_ctz(uint32_t x, int n) > } > } > > +static void > +test_ctz(int argc OVS_UNUSED, char *argv[] OVS_UNUSED) > +{ > + int n; > + > + for (n = 0; n < 32; n++) { > + /* Check minimum x such that f(x) == n. */ > + check_ctz(1 << n, n); > + > + /* Check maximum x such that f(x) == n. */ > + check_ctz(UINT32_MAX << n, n); > + > + /* Check a random value in the middle. */ > + check_ctz((random_uint32() | 1) << n, n); > + } > + > + /* Check ctz(0). */ > + check_ctz(0, 32); > +} > + > /* Returns the sum of the squares of the first 'n' positive integers. */ > static unsigned int > sum_of_squares(int n) > @@ -53,7 +93,7 @@ sum_of_squares(int n) > } > > static void > -check_bitwise_copy(void) > +test_bitwise_copy(int argc OVS_UNUSED, char *argv[] OVS_UNUSED) > { > unsigned int n_loops; > int src_ofs; > @@ -103,7 +143,7 @@ check_bitwise_copy(void) > } > > static void > -check_bitwise_zero(void) > +test_bitwise_zero(int argc OVS_UNUSED, char *argv[] OVS_UNUSED) > { > unsigned int n_loops; > int dst_ofs; > @@ -144,7 +184,7 @@ check_bitwise_zero(void) > } > > static void > -check_bitwise_one(void) > +test_bitwise_one(int argc OVS_UNUSED, char *argv[] OVS_UNUSED) > { > unsigned int n_loops; > int dst_ofs; > @@ -185,7 +225,7 @@ check_bitwise_one(void) > } > > static void > -check_bitwise_is_all_zeros(void) > +test_bitwise_is_all_zeros(int argc OVS_UNUSED, char *argv[] OVS_UNUSED) > { > int n_loops; > > @@ -227,37 +267,21 @@ check_bitwise_is_all_zeros(void) > } > } > } > + > +static const struct command commands[] = { > + {"ctz", 0, 0, test_ctz}, > + {"log_2_floor", 0, 0, test_log_2_floor}, > + {"bitwise_copy", 0, 0, test_bitwise_copy}, > + {"bitwise_zero", 0, 0, test_bitwise_zero}, > + {"bitwise_one", 0, 0, test_bitwise_one}, > + {"bitwise_is_all_zeros", 0, 0, test_bitwise_is_all_zeros}, > + {NULL, 0, 0, NULL}, > +}; > > int > -main(void) > +main(int argc, char *argv[]) > { > - int n; > - > - for (n = 0; n < 32; n++) { > - /* Check minimum x such that f(x) == n. */ > - check_log_2_floor(1 << n, n); > - check_ctz(1 << n, n); > - > - /* Check maximum x such that f(x) == n. */ > - check_log_2_floor((1 << n) | ((1 << n) - 1), n); > - check_ctz(UINT32_MAX << n, n); > - > - /* Check a random value in the middle. */ > - check_log_2_floor((random_uint32() & ((1 << n) - 1)) | (1 << n), > n); > - check_ctz((random_uint32() | 1) << n, n); > - } > - > - /* Check ctz(0). > - * (log_2_floor(0) is undefined.) */ > - check_ctz(0, 32); > - > - check_bitwise_copy(); > - > - check_bitwise_zero(); > - > - check_bitwise_one(); > - > - check_bitwise_is_all_zeros(); > - > + set_program_name(argv[0]); > + run_command(argc - 1, argv + 1, commands); > return 0; > } > -- > 1.7.2.5 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev > Looks good. Thanks!
_______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev