#include <err.h>
#include <setjmp.h>
#include "tdb1-external-agent.h"
-#include "tdb1-logging.h"
+#include "logging.h"
#undef write
#undef pwrite
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)
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, TDB_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;
/* 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++;
/* 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. */
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,