From: Rusty Russell Date: Mon, 29 Jun 2009 02:28:44 +0000 (+0930) Subject: zero-append test for tdb. X-Git-Url: https://git.ozlabs.org/?p=ccan;a=commitdiff_plain;h=e84f843dfeb798e66b32a212bb7ffb095eebd7aa zero-append test for tdb. --- diff --git a/ccan/tdb/test/run-zero-append.c b/ccan/tdb/test/run-zero-append.c new file mode 100644 index 00000000..287d74c3 --- /dev/null +++ b/ccan/tdb/test/run-zero-append.c @@ -0,0 +1,37 @@ +#define _XOPEN_SOURCE 500 +#include "tdb/tdb.h" +#include "tdb/io.c" +#include "tdb/tdb.c" +#include "tdb/lock.c" +#include "tdb/freelist.c" +#include "tdb/traverse.c" +#include "tdb/transaction.c" +#include "tdb/error.c" +#include "tdb/open.c" +#include "tap/tap.h" +#include +#include + +int main(int argc, char *argv[]) +{ + struct tdb_context *tdb; + TDB_DATA key, data; + + plan_tests(4); + tdb = tdb_open(NULL, 1024, TDB_INTERNAL, O_CREAT|O_TRUNC|O_RDWR, 0600); + ok1(tdb); + + /* Tickle bug on appending zero length buffer to zero length buffer. */ + key.dsize = strlen("hi"); + key.dptr = (void *)"hi"; + data.dptr = (void *)"world"; + data.dsize = 0; + + ok1(tdb_append(tdb, key, data) == 0); + ok1(tdb_append(tdb, key, data) == 0); + data = tdb_fetch(tdb, key); + ok1(data.dsize == 0); + tdb_close(tdb); + + return exit_status(); +}