]> git.ozlabs.org Git - ccan/blobdiff - ccan/tdb2/test/run-25-hashoverload.c
tdb2: feature support.
[ccan] / ccan / tdb2 / test / run-25-hashoverload.c
index 68e52114d7b7903ae51329a83aca3b3f6b9f2e8d..b96a4cc473689fadf1f9f045a8d772e750f38855 100644 (file)
@@ -36,9 +36,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 +58,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 +70,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 +90,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. */