X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Ftdb2%2Ftest%2Frun-50-multiple-freelists.c;h=0618a88dbe1321b237c0100de847c90da7253594;hp=fd709730da7ce0370b9c7dfce3d834c3ba41cc75;hb=b929638e3cfe629285af3ecd0813e03eaeaa1133;hpb=5e8b9af5e7fe5f1ccac407873a3b782b8a629782 diff --git a/ccan/tdb2/test/run-50-multiple-freelists.c b/ccan/tdb2/test/run-50-multiple-freelists.c index fd709730..0618a88d 100644 --- a/ccan/tdb2/test/run-50-multiple-freelists.c +++ b/ccan/tdb2/test/run-50-multiple-freelists.c @@ -1,11 +1,5 @@ -#include -#include -#include -#include -#include -#include +#include "tdb2-source.h" #include -#include #include "logging.h" #include "layout.h" @@ -15,18 +9,22 @@ int main(int argc, char *argv[]) struct tdb_context *tdb; struct tdb_layout *layout; TDB_DATA key, data; + union tdb_attribute seed; + + /* This seed value previously tickled a layout.c bug. */ + seed.base.attr = TDB_ATTRIBUTE_SEED; + seed.seed.seed = 0xb1142bc054d035b4ULL; + seed.base.next = &tap_log_attr; plan_tests(11); - key.dptr = (unsigned char *)"Hello"; - data.dptr = (unsigned char *)"world"; - data.dsize = 5; - key.dsize = 5; + key = tdb_mkdata("Hello", 5); + data = tdb_mkdata("world", 5); - /* Create a TDB with three free lists. */ + /* Create a TDB with three free tables. */ layout = new_tdb_layout(NULL); - tdb_layout_add_freelist(layout); - tdb_layout_add_freelist(layout); - tdb_layout_add_freelist(layout); + tdb_layout_add_freetable(layout); + tdb_layout_add_freetable(layout); + tdb_layout_add_freetable(layout); tdb_layout_add_free(layout, 80, 0); /* Used record prevent coalescing. */ tdb_layout_add_used(layout, key, data, 6); @@ -37,30 +35,35 @@ int main(int argc, char *argv[]) key.dsize--; tdb_layout_add_used(layout, key, data, 8); tdb_layout_add_free(layout, 40, 0); - tdb = tdb_layout_get(layout); + tdb = tdb_layout_get(layout, &seed); ok1(tdb_check(tdb, NULL, NULL) == 0); - off = get_free(tdb, 0, 80 - sizeof(struct tdb_used_record), 0, 0); + off = get_free(tdb, 0, 80 - sizeof(struct tdb_used_record), 0, + TDB_USED_MAGIC, 0); ok1(off == layout->elem[3].base.off); - ok1(tdb->flist_off == layout->elem[0].base.off); + ok1(tdb->ftable_off == layout->elem[0].base.off); - off = get_free(tdb, 0, 160 - sizeof(struct tdb_used_record), 0, 0); + off = get_free(tdb, 0, 160 - sizeof(struct tdb_used_record), 0, + TDB_USED_MAGIC, 0); ok1(off == layout->elem[5].base.off); - ok1(tdb->flist_off == layout->elem[1].base.off); + ok1(tdb->ftable_off == layout->elem[1].base.off); - off = get_free(tdb, 0, 320 - sizeof(struct tdb_used_record), 0, 0); + off = get_free(tdb, 0, 320 - sizeof(struct tdb_used_record), 0, + TDB_USED_MAGIC, 0); ok1(off == layout->elem[7].base.off); - ok1(tdb->flist_off == layout->elem[2].base.off); + ok1(tdb->ftable_off == layout->elem[2].base.off); - off = get_free(tdb, 0, 40 - sizeof(struct tdb_used_record), 0, 0); + off = get_free(tdb, 0, 40 - sizeof(struct tdb_used_record), 0, + TDB_USED_MAGIC, 0); ok1(off == layout->elem[9].base.off); - ok1(tdb->flist_off == layout->elem[0].base.off); + ok1(tdb->ftable_off == layout->elem[0].base.off); /* Now we fail. */ - off = get_free(tdb, 0, 0, 1, 0); + off = get_free(tdb, 0, 0, 1, TDB_USED_MAGIC, 0); ok1(off == 0); tdb_close(tdb); + tdb_layout_free(layout); ok1(tap_log_messages == 0); return exit_status();