X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Ftdb2%2Ftest%2Frun-25-hashoverload.c;h=83f549d6b2633e4def88084d304ed0bdb1b5e753;hb=b87e14495d5b07e1b247218a72329f10ecb3da7f;hp=68e52114d7b7903ae51329a83aca3b3f6b9f2e8d;hpb=51a56b52627e635566253a3fae081c3f466b6bb6;p=ccan diff --git a/ccan/tdb2/test/run-25-hashoverload.c b/ccan/tdb2/test/run-25-hashoverload.c index 68e52114..83f549d6 100644 --- a/ccan/tdb2/test/run-25-hashoverload.c +++ b/ccan/tdb2/test/run-25-hashoverload.c @@ -1,4 +1,5 @@ #include +#include #include #include #include @@ -28,7 +29,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 +37,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 +59,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 +71,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 +91,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. */