]> git.ozlabs.org Git - ccan/blobdiff - ccan/tdb2/test/run-expand.c
tdb2: more fixes and tests for enlarging hash.
[ccan] / ccan / tdb2 / test / run-expand.c
index 92dbf1808cf72999f9968f855b69fbdfa828f98a..ef2955cba9713593d0c13e87fe05a36430e544fe 100644 (file)
@@ -13,14 +13,24 @@ int main(int argc, char *argv[])
        int flags[] = { TDB_INTERNAL, TDB_DEFAULT,
                        TDB_INTERNAL|TDB_CONVERT, TDB_CONVERT };
 
-       plan_tests(sizeof(flags) / sizeof(flags[0]) * 3 + 1);
+       plan_tests(sizeof(flags) / sizeof(flags[0]) * 10 + 1);
        for (i = 0; i < sizeof(flags) / sizeof(flags[0]); i++) {
                tdb = tdb_open("/tmp/run-new_database.tdb", flags[i],
                               O_RDWR|O_CREAT|O_TRUNC, 0600, NULL);
                tdb->log = tap_log_fn;
                ok1(tdb);
                if (tdb) {
+                       /* First expand (expand file to fill zone). */
                        ok1(tdb_expand(tdb, 1, 1, false) == 0);
+                       ok1(tdb->header.v.num_zones == 1);
+                       ok1(tdb_check(tdb, NULL, NULL) == 0);
+                       /* Little expand (extra zone). */
+                       ok1(tdb_expand(tdb, 1, 1, false) == 0);
+                       ok1(tdb->header.v.num_zones == 2);
+                       ok1(tdb_check(tdb, NULL, NULL) == 0);
+                       /* Big expand (enlarge zones) */
+                       ok1(tdb_expand(tdb, 1, 4096, false) == 0);
+                       ok1(tdb->header.v.num_zones == 2);
                        ok1(tdb_check(tdb, NULL, NULL) == 0);
                        tdb_close(tdb);
                }