Mercurial > hg > octave-nkf > gnulib-hg
changeset 11643:560a14733476
tests: test-hash: allow seed selection via a command line argument
* tests/test-hash.c (get_seed): New function.
(main): Use it.
author | Jim Meyering <meyering@redhat.com> |
---|---|
date | Fri, 19 Jun 2009 16:56:48 +0200 |
parents | 08911a9e5f94 |
children | df58e63c07a8 |
files | ChangeLog tests/test-hash.c |
diffstat | 2 files changed, 30 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2009-06-19 Jim Meyering <meyering@redhat.com> + + tests: test-hash: allow seed selection via a command line argument + * tests/test-hash.c (get_seed): New function. + (main): Use it. + 2009-06-19 Eric Blake <ebb9@byu.net> hash: avoid memory leak on allocation failure
--- a/tests/test-hash.c +++ b/tests/test-hash.c @@ -78,14 +78,37 @@ return false; } +static int +get_seed (char const *str, unsigned int *seed) +{ + size_t len = strlen (str); + if (len == 0 || strspn (str, "0123456789") != len || 10 < len) + return 1; + + *seed = atoi (str); + return 0; +} + int -main (void) +main (int argc, char **argv) { unsigned int i; unsigned int table_size[] = {1, 2, 3, 4, 5, 23, 53}; Hash_table *ht; Hash_tuning tuning; + if (1 < argc) + { + unsigned int seed; + if (get_seed (argv[1], &seed) != 0) + { + fprintf (stderr, "invalid seed: %s\n", argv[1]); + exit (EXIT_FAILURE); + } + + srand (seed); + } + for (i = 0; i < ARRAY_CARDINALITY (table_size); i++) { size_t sz = table_size[i];