]> git.ozlabs.org Git - ccan/blobdiff - ccan/tdb2/test/run-tdb1-die-during-transaction.c
tdb2: test: Speed up run-01-new_database.
[ccan] / ccan / tdb2 / test / run-tdb1-die-during-transaction.c
index 3097e13a3395896ebfffeb7c416beb9f1daaf9ec..f45fcedc7abf746136200291c13bce1ddb232894 100644 (file)
@@ -18,7 +18,7 @@ static int ftruncate_check(int fd, off_t length);
 #include <err.h>
 #include <setjmp.h>
 #include "tdb1-external-agent.h"
-#include "tdb1-logging.h"
+#include "logging.h"
 
 #undef write
 #undef pwrite
@@ -28,7 +28,7 @@ static int ftruncate_check(int fd, off_t length);
 static bool in_transaction;
 static int target, current;
 static jmp_buf jmpbuf;
-#define TEST_DBNAME "run-die-during-transaction.tdb"
+#define TEST_DBNAME "run-die-during-transaction.tdb1"
 #define KEY_STRING "helloworld"
 
 static void maybe_die(int fd)
@@ -81,20 +81,25 @@ static int ftruncate_check(int fd, off_t length)
 
 static bool test_death(enum operation op, struct agent *agent)
 {
-       struct tdb1_context *tdb = NULL;
+       struct tdb_context *tdb = NULL;
        TDB_DATA key;
        enum agent_return ret;
        int needed_recovery = 0;
+       union tdb_attribute hsize;
+
+       hsize.base.attr = TDB_ATTRIBUTE_TDB1_HASHSIZE;
+       hsize.base.next = &tap_log_attr;
+       hsize.tdb1_hashsize.hsize = 1024;
 
        current = target = 0;
 reset:
        unlink(TEST_DBNAME);
-       tdb = tdb1_open_ex(TEST_DBNAME, 1024, TDB1_NOMMAP,
-                         O_CREAT|O_TRUNC|O_RDWR, 0600, &taplogctx, NULL);
+       tdb = tdb_open(TEST_DBNAME, TDB_VERSION1|TDB_NOMMAP,
+                      O_CREAT|O_TRUNC|O_RDWR, 0600, &hsize);
 
        if (setjmp(jmpbuf) != 0) {
                /* We're partway through.  Simulate our death. */
-               close(tdb->fd);
+               close(tdb->file->fd);
                forget_locking1();
                in_transaction = false;
 
@@ -139,7 +144,7 @@ reset:
                /* Suppress logging as this tries to use closed fd. */
                suppress_logging = true;
                suppress_lockcheck1 = true;
-               tdb1_close(tdb);
+               tdb_close(tdb);
                suppress_logging = false;
                suppress_lockcheck1 = false;
                target++;
@@ -150,7 +155,7 @@ reset:
        /* Put key for agent to fetch. */
        key.dsize = strlen(KEY_STRING);
        key.dptr = (void *)KEY_STRING;
-       if (tdb1_store(tdb, key, key, TDB_INSERT) != 0)
+       if (tdb_store(tdb, key, key, TDB_INSERT) != TDB_SUCCESS)
                return false;
 
        /* This is the key we insert in transaction. */
@@ -165,20 +170,20 @@ reset:
                errx(1, "Agent failed find key: %s", agent_return_name1(ret));
 
        in_transaction = true;
-       if (tdb1_transaction_start(tdb) != 0)
+       if (tdb_transaction_start(tdb) != TDB_SUCCESS)
                return false;
 
-       if (tdb1_store(tdb, key, key, TDB_INSERT) != 0)
+       if (tdb_store(tdb, key, key, TDB_INSERT) != TDB_SUCCESS)
                return false;
 
-       if (tdb1_transaction_commit(tdb) != 0)
+       if (tdb_transaction_commit(tdb) != TDB_SUCCESS)
                return false;
 
        in_transaction = false;
 
        /* We made it! */
        diag("Completed %u runs", current);
-       tdb1_close(tdb);
+       tdb_close(tdb);
        ret = external_agent_operation1(agent, CLOSE, "");
        if (ret != SUCCESS) {
                diag("Step %u close failed = %s", current,