tdb2: test: fix run-57-die-during-transaction.c to be more efficient.
[ccan] / ccan / tdb2 / test / run-83-openhook.c
index c85279355596696f45106fa0c1a45b0e995496cd..59b1e6526e51b96fb755c9383bf56cd4b069d54b 100644 (file)
@@ -1,11 +1,4 @@
-#include <ccan/tdb2/tdb.c>
-#include <ccan/tdb2/open.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 <ccan/tdb2/transaction.c>
+#include "tdb2-source.h"
 #include <ccan/tap/tap.h>
 #include <stdlib.h>
 #include <stdbool.h>
@@ -16,7 +9,8 @@
 
 static enum TDB_ERROR clear_if_first(int fd, void *arg)
 {
-/* We hold a lock offset 63 always, so we can tell if anyone is holding it. */
+/* We hold a lock offset 4 always, so we can tell if anyone is holding it.
+ * (This is compatible with tdb1's TDB_CLEAR_IF_FIRST flag).  */
        struct flock fl;
 
        if (arg != clear_if_first)
@@ -24,7 +18,7 @@ static enum TDB_ERROR clear_if_first(int fd, void *arg)
 
        fl.l_type = F_WRLCK;
        fl.l_whence = SEEK_SET;
-       fl.l_start = 63;
+       fl.l_start = 4;
        fl.l_len = 1;
 
        if (fcntl(fd, F_SETLK, &fl) == 0) {
@@ -49,7 +43,10 @@ int main(int argc, char *argv[])
        union tdb_attribute cif;
        struct tdb_data key = tdb_mkdata("key", 3);
        int flags[] = { TDB_DEFAULT, TDB_NOMMAP,
-                       TDB_CONVERT, TDB_NOMMAP|TDB_CONVERT };
+                       TDB_CONVERT, TDB_NOMMAP|TDB_CONVERT,
+                       TDB_VERSION1, TDB_NOMMAP|TDB_VERSION1,
+                       TDB_CONVERT|TDB_VERSION1,
+                       TDB_NOMMAP|TDB_CONVERT|TDB_VERSION1 };
 
        cif.openhook.base.attr = TDB_ATTRIBUTE_OPENHOOK;
        cif.openhook.base.next = &tap_log_attr;