1 #include "tdb2-source.h"
2 #include <ccan/tap/tap.h>
5 #include "tdb1-logging.h"
7 int main(int argc, char *argv[])
9 struct tdb1_context *tdb;
13 tdb = tdb1_open_ex("run-endian.tdb", 1024,
14 TDB1_CLEAR_IF_FIRST|TDB1_CONVERT,
15 O_CREAT|O_TRUNC|O_RDWR, 0600, &taplogctx, NULL);
18 key.dsize = strlen("hi");
19 key.dptr = (void *)"hi";
20 data.dsize = strlen("world");
21 data.dptr = (void *)"world";
23 ok1(tdb1_store(tdb, key, data, TDB_MODIFY) < 0);
24 ok1(tdb_error(tdb) == TDB_ERR_NOEXIST);
25 ok1(tdb1_store(tdb, key, data, TDB_INSERT) == 0);
26 ok1(tdb1_store(tdb, key, data, TDB_INSERT) < 0);
27 ok1(tdb_error(tdb) == TDB_ERR_EXISTS);
28 ok1(tdb1_store(tdb, key, data, TDB_MODIFY) == 0);
30 data = tdb1_fetch(tdb, key);
31 ok1(data.dsize == strlen("world"));
32 ok1(memcmp(data.dptr, "world", strlen("world")) == 0);
36 data = tdb1_fetch(tdb, key);
37 ok1(data.dptr == NULL);
40 /* Reopen: should read it */
41 tdb = tdb1_open_ex("run-endian.tdb", 1024, 0, O_RDWR, 0,
45 key.dsize = strlen("hi");
46 key.dptr = (void *)"hi";
47 data = tdb1_fetch(tdb, key);
48 ok1(data.dsize == strlen("world"));
49 ok1(memcmp(data.dptr, "world", strlen("world")) == 0);