X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Ftdb2%2Ftest%2Frun-25-hashoverload.c;h=0e1430265ccfe5722f5aef507822b5c5873db7e4;hp=68e52114d7b7903ae51329a83aca3b3f6b9f2e8d;hb=380372e733416c2b348d5307f536d0a0807e95df;hpb=2523e67f154c3f8614a2ddca2cd0170d321a27d4 diff --git a/ccan/tdb2/test/run-25-hashoverload.c b/ccan/tdb2/test/run-25-hashoverload.c index 68e52114..0e143026 100644 --- a/ccan/tdb2/test/run-25-hashoverload.c +++ b/ccan/tdb2/test/run-25-hashoverload.c @@ -1,11 +1,4 @@ -#include -#include -#include -#include -#include -#include -#include -#include +#include "tdb2-source.h" #include #include "logging.h" @@ -28,7 +21,7 @@ int main(int argc, char *argv[]) struct tdb_data key = { (unsigned char *)&j, sizeof(j) }; struct tdb_data dbuf = { (unsigned char *)&j, sizeof(j) }; union tdb_attribute hattr = { .hash = { .base = { TDB_ATTRIBUTE_HASH }, - .hash_fn = badhash } }; + .fn = badhash } }; int flags[] = { TDB_INTERNAL, TDB_DEFAULT, TDB_NOMMAP, TDB_INTERNAL|TDB_CONVERT, TDB_CONVERT, TDB_NOMMAP|TDB_CONVERT, @@ -36,9 +29,9 @@ int main(int argc, char *argv[]) hattr.base.next = &tap_log_attr; - plan_tests(5395); + plan_tests(6883); for (i = 0; i < sizeof(flags) / sizeof(flags[0]); i++) { - struct tdb_data d; + struct tdb_data d = { NULL, 0 }; /* Bogus GCC warning */ tdb = tdb_open("run-25-hashoverload.tdb", flags[i], O_RDWR|O_CREAT|O_TRUNC, 0600, &hattr); @@ -58,10 +51,11 @@ int main(int argc, char *argv[]) /* Check we can find them all. */ for (j = 0; j < (1 << TDB_HASH_GROUP_BITS) + 1; j++) { - d = tdb_fetch(tdb, key); + ok1(tdb_fetch(tdb, key, &d) == TDB_SUCCESS); ok1(d.dsize == sizeof(j)); ok1(d.dptr != NULL); ok1(d.dptr && memcmp(d.dptr, &j, d.dsize) == 0); + free(d.dptr); } /* Now add a *lot* more. */ @@ -69,10 +63,11 @@ int main(int argc, char *argv[]) j < (16 << TDB_HASH_GROUP_BITS); j++) { ok1(tdb_store(tdb, key, dbuf, TDB_INSERT) == 0); - d = tdb_fetch(tdb, key); + ok1(tdb_fetch(tdb, key, &d) == TDB_SUCCESS); ok1(d.dsize == sizeof(j)); ok1(d.dptr != NULL); ok1(d.dptr && memcmp(d.dptr, &j, d.dsize) == 0); + free(d.dptr); } ok1(tdb_check(tdb, NULL, NULL) == 0); @@ -88,10 +83,11 @@ int main(int argc, char *argv[]) for (j = (1 << TDB_HASH_GROUP_BITS); j < (16 << TDB_HASH_GROUP_BITS); j++) { - d = tdb_fetch(tdb, key); + ok1(tdb_fetch(tdb, key, &d) == TDB_SUCCESS); ok1(d.dsize == sizeof(j)); ok1(d.dptr != NULL); ok1(d.dptr && memcmp(d.dptr, &j, d.dsize) == 0); + free(d.dptr); } /* Traverse through them. */