X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Ftdb2%2Ftest%2Frun-13-delete.c;h=fdbc9db70aefaba4f91982e192b425b065c445ff;hp=6295523bb4ad687a73fd30bd86c5461b28a6a138;hb=d9cbd7d4454ae35e4e2f6d18a9469bf26948e4b9;hpb=b21004624683be5bf1d8f75e3b5be4e9618049ee;ds=sidebyside diff --git a/ccan/tdb2/test/run-13-delete.c b/ccan/tdb2/test/run-13-delete.c index 6295523b..fdbc9db7 100644 --- a/ccan/tdb2/test/run-13-delete.c +++ b/ccan/tdb2/test/run-13-delete.c @@ -1,17 +1,11 @@ -#include -#include -#include -#include -#include -#include -#include +#include "tdb2-source.h" #include #include "logging.h" /* We rig the hash so adjacent-numbered records always clash. */ static uint64_t clash(const void *key, size_t len, uint64_t seed, void *priv) { - return ((uint64_t)*(unsigned int *)key) + return ((uint64_t)*(const unsigned int *)key) << (64 - TDB_TOPLEVEL_HASH_BITS - 1); } @@ -32,9 +26,7 @@ static bool store_records(struct tdb_context *tdb) if (tdb_store(tdb, key, data, TDB_REPLACE) != 0) return false; tdb_fetch(tdb, key, &d); - if (d.dsize != data.dsize) - return false; - if (memcmp(d.dptr, data.dptr, d.dsize) != 0) + if (!tdb_deq(d, data)) return false; free(d.dptr); } @@ -147,14 +139,19 @@ int main(int argc, char *argv[]) uint64_t seed = 16014841315512641303ULL; union tdb_attribute clash_hattr = { .hash = { .base = { TDB_ATTRIBUTE_HASH }, - .hash_fn = clash } }; + .fn = clash } }; union tdb_attribute fixed_hattr = { .hash = { .base = { TDB_ATTRIBUTE_HASH }, - .hash_fn = fixedhash, - .hash_private = &seed } }; + .fn = fixedhash, + .data = &seed } }; int flags[] = { TDB_INTERNAL, TDB_DEFAULT, TDB_NOMMAP, TDB_INTERNAL|TDB_CONVERT, TDB_CONVERT, - TDB_NOMMAP|TDB_CONVERT }; + TDB_NOMMAP|TDB_CONVERT, + TDB_INTERNAL|TDB_VERSION1, TDB_VERSION1, + TDB_NOMMAP|TDB_VERSION1, + TDB_INTERNAL|TDB_CONVERT|TDB_VERSION1, + TDB_CONVERT|TDB_VERSION1, + TDB_NOMMAP|TDB_CONVERT|TDB_VERSION1 }; /* These two values gave trouble before. */ int vals[] = { 755, 837 }; @@ -179,7 +176,8 @@ int main(int argc, char *argv[]) /* Check mixed bitpattern. */ test_val(tdb, 0x123456789ABCDEF0ULL); - ok1(tdb->allrecord_lock.count == 0 && tdb->num_lockrecs == 0); + ok1(!tdb->file || (tdb->file->allrecord_lock.count == 0 + && tdb->file->num_lockrecs == 0)); tdb_close(tdb); /* Deleting these entries in the db gave problems. */