[ovs-dev] [debian 6/9] tests: Slightly generalize utility function tests.
Ansis Atteka
aatteka at nicira.com
Tue Jul 31 18:09:11 UTC 2012
On Mon, Jul 30, 2012 at 3:18 PM, Ben Pfaff <blp at nicira.com> wrote:
> This will allow passing arguments in for an upcoming test.
>
> Signed-off-by: Ben Pfaff <blp at 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 at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
>
Looks good. Thanks!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openvswitch.org/pipermail/ovs-dev/attachments/20120731/2375cfe2/attachment-0004.html>
More information about the dev
mailing list