]> git.ozlabs.org Git - ccan/blobdiff - ccan/tdb2/test/run-summary.c
tdb2: allow multiple chain locks.
[ccan] / ccan / tdb2 / test / run-summary.c
index d6ccf2fa7c570801f2802322e0dc3d3d238d7b2c..6217021b73df4d08452481e809840c2ceca9ac2c 100644 (file)
@@ -1,10 +1,12 @@
 #include <ccan/tdb2/tdb.c>
+#include <ccan/tdb2/open.c>
 #include <ccan/tdb2/free.c>
 #include <ccan/tdb2/lock.c>
 #include <ccan/tdb2/io.c>
 #include <ccan/tdb2/hash.c>
 #include <ccan/tdb2/check.c>
 #include <ccan/tdb2/summary.c>
+#include <ccan/tdb2/transaction.c>
 #include <ccan/tap/tap.h>
 #include "logging.h"
 
@@ -19,7 +21,7 @@ int main(int argc, char *argv[])
        struct tdb_data data = { (unsigned char *)&j, sizeof(j) };
        char *summary;
 
-       plan_tests(sizeof(flags) / sizeof(flags[0]) * (1 + 2 * 7) + 1);
+       plan_tests(sizeof(flags) / sizeof(flags[0]) * (1 + 2 * 5) + 1);
        for (i = 0; i < sizeof(flags) / sizeof(flags[0]); i++) {
                tdb = tdb_open("run-summary.tdb", flags[i],
                               O_RDWR|O_CREAT|O_TRUNC, 0600, &tap_log_attr);
@@ -28,20 +30,20 @@ int main(int argc, char *argv[])
                        continue;
 
                /* Put some stuff in there. */
-               for (j = 0; j < 500; j++)
+               for (j = 0; j < 500; j++) {
+                       /* Make sure padding varies to we get some graphs! */
+                       data.dsize = j % (sizeof(j) + 1);
                        if (tdb_store(tdb, key, data, TDB_REPLACE) != 0)
                                fail("Storing in tdb");
+               }
 
                for (j = 0;
                     j <= TDB_SUMMARY_HISTOGRAMS;
                     j += TDB_SUMMARY_HISTOGRAMS) {
-                       summary = tdb_summary(tdb, j);
+                       ok1(tdb_summary(tdb, j, &summary) == TDB_SUCCESS);
                        ok1(strstr(summary, "Number of records: 500\n"));
                        ok1(strstr(summary, "Smallest/average/largest keys: 4/4/4\n"));
-                       ok1(strstr(summary, "Smallest/average/largest data: 4/4/4\n"));
-                       ok1(strstr(summary, "Free bucket 8"));
-                       ok1(strstr(summary, "Free bucket 16"));
-                       ok1(strstr(summary, "Free bucket 24"));
+                       ok1(strstr(summary, "Smallest/average/largest data: 0/2/4\n"));
                        if (j == TDB_SUMMARY_HISTOGRAMS)
                                ok1(strstr(summary, "|")
                                    && strstr(summary, "*"));