-#include <ccan/tdb2/tdb.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 "tdb2-source.h"
#include <ccan/tap/tap.h>
-#include <ccan/tdb2/transaction.c>
#include "logging.h"
#include "layout.h"
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 tables. */
layout = new_tdb_layout(NULL);
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,
ok1(off == 0);
tdb_close(tdb);
+ tdb_layout_free(layout);
ok1(tap_log_messages == 0);
return exit_status();