tdb: unify logging code in test dir.
authorRusty Russell <rusty@rustcorp.com.au>
Sat, 11 Sep 2010 02:43:14 +0000 (12:13 +0930)
committerRusty Russell <rusty@rustcorp.com.au>
Sat, 11 Sep 2010 02:43:14 +0000 (12:13 +0930)
14 files changed:
ccan/tdb/test/external-agent.c
ccan/tdb/test/run-3G-file.c
ccan/tdb/test/run-bad-tdb-header.c
ccan/tdb/test/run-check.c
ccan/tdb/test/run-corrupt.c
ccan/tdb/test/run-die-during-transaction.c
ccan/tdb/test/run-endian.c
ccan/tdb/test/run-nested-transactions.c
ccan/tdb/test/run-nested-traverse.c
ccan/tdb/test/run-no-lock-during-traverse.c
ccan/tdb/test/run-open-during-transaction.c
ccan/tdb/test/run-traverse-in-transaction.c
ccan/tdb/test/run-zero-append.c
ccan/tdb/test/run.c

index dd43c2043f570b364c4b508005c5da77b271cbd7..503b00d84e4d5f2afbbc3204b745c7949773c526 100644 (file)
@@ -1,5 +1,6 @@
 #include "external-agent.h"
 #include "lock-tracking.h"
+#include "logging.h"
 #include <sys/types.h>
 #include <sys/wait.h>
 #include <unistd.h>
 
 static struct tdb_context *tdb;
 
-static void taplog(struct tdb_context *tdb,
-                  enum tdb_debug_level level,
-                  const char *fmt, ...)
-{
-       va_list ap;
-       char line[200];
-
-       va_start(ap, fmt);
-       vsprintf(line, fmt, ap);
-       va_end(ap);
-
-       diag("external: %s", line);
-}
-
 static enum agent_return do_operation(enum operation op, const char *name)
 {
-       struct tdb_logging_context logctx = { taplog, NULL };
        TDB_DATA k;
        enum agent_return ret;
        TDB_DATA data;
@@ -54,7 +40,7 @@ static enum agent_return do_operation(enum operation op, const char *name)
                        return OTHER_FAILURE;
                }
                tdb = tdb_open_ex(name, 0, TDB_DEFAULT, O_RDWR, 0,
-                                 &logctx, NULL);
+                                 &taplogctx, NULL);
                if (!tdb) {
                        if (!locking_would_block)
                                diag("Opening tdb gave %s", strerror(errno));
@@ -66,7 +52,7 @@ static enum agent_return do_operation(enum operation op, const char *name)
                if (tdb)
                        return OTHER_FAILURE;
                tdb = tdb_open_ex(name, 0, TDB_CLEAR_IF_FIRST, O_RDWR, 0,
-                                 &logctx, NULL);
+                                 &taplogctx, NULL);
                ret = tdb ? SUCCESS : OTHER_FAILURE;
                break;
        case TRANSACTION_START:
@@ -146,6 +132,7 @@ struct agent *prepare_external_agent(void)
 
        /* We want to fail, not block. */
        nonblocking_locks = true;
+       log_prefix = "external: ";
        while ((ret = read(command[0], name, sizeof(name))) > 0) {
                enum agent_return result;
 
index ea395a9c35bdbdef76ae5abf06f72b689ff1737c..7204128ff9778d8f08972dc8291da3d100407fcc 100644 (file)
@@ -14,6 +14,7 @@
 #include <ccan/tap/tap.h>
 #include <stdlib.h>
 #include <err.h>
+#include "logging.h"
 
 static int tdb_expand_file_sparse(struct tdb_context *tdb,
                                  tdb_off_t size,
@@ -73,8 +74,8 @@ int main(int argc, char *argv[])
        struct tdb_record rec;
 
        plan_tests(24);
-       tdb = tdb_open("run-36-file.tdb", 1024, TDB_CLEAR_IF_FIRST,
-                      O_CREAT|O_TRUNC|O_RDWR, 0600);
+       tdb = tdb_open_ex("run-36-file.tdb", 1024, TDB_CLEAR_IF_FIRST,
+                         O_CREAT|O_TRUNC|O_RDWR, 0600, &taplogctx, NULL);
 
        ok1(tdb);
        tdb->methods = &large_io_methods;
index 0303ec26f7d0988a04d6feee40c008f2e7eee73d..4ee225cc964bc77824d159fb4af039afe962f3fb 100644 (file)
@@ -12,6 +12,7 @@
 #include <ccan/tap/tap.h>
 #include <stdlib.h>
 #include <err.h>
+#include "logging.h"
 
 int main(int argc, char *argv[])
 {
@@ -25,9 +26,11 @@ int main(int argc, char *argv[])
        ok1(fd >= 0);
        ok1(write(fd, "hello world", 11) == 11);
        close(fd);
-       tdb = tdb_open("run-bad-tdb-header.tdb", 1024, 0, O_RDWR, 0);
+       tdb = tdb_open_ex("run-bad-tdb-header.tdb", 1024, 0, O_RDWR, 0,
+                         &taplogctx, NULL);
        ok1(!tdb);
-       tdb = tdb_open("run-bad-tdb-header.tdb", 1024, 0, O_CREAT|O_RDWR, 0600);
+       tdb = tdb_open_ex("run-bad-tdb-header.tdb", 1024, 0, O_CREAT|O_RDWR,
+                         0600, &taplogctx, NULL);
        ok1(tdb);
        tdb_close(tdb);
 
@@ -41,12 +44,14 @@ int main(int argc, char *argv[])
        ok1(write(fd, &hdr, sizeof(hdr)) == sizeof(hdr));
        close(fd);
 
-       tdb = tdb_open("run-bad-tdb-header.tdb", 1024, 0, O_RDWR|O_CREAT, 0600);
+       tdb = tdb_open_ex("run-bad-tdb-header.tdb", 1024, 0, O_RDWR|O_CREAT,
+                         0600, &taplogctx, NULL);
        ok1(errno == EIO);
        ok1(!tdb);
 
        /* With truncate, will be fine. */
-       tdb = tdb_open("run-bad-tdb-header.tdb", 1024, 0, O_RDWR|O_CREAT|O_TRUNC, 0600);
+       tdb = tdb_open_ex("run-bad-tdb-header.tdb", 1024, 0,
+                         O_RDWR|O_CREAT|O_TRUNC, 0600, &taplogctx, NULL);
        ok1(tdb);
        tdb_close(tdb);
 
index 3a4a39f1f32fad5ba55ba689c0b1c9ffec4d9653..b76d91bbb96c469217a26dd4955a00f4a88619ea 100644 (file)
@@ -12,6 +12,7 @@
 #include <ccan/tap/tap.h>
 #include <stdlib.h>
 #include <err.h>
+#include "logging.h"
 
 int main(int argc, char *argv[])
 {
@@ -19,8 +20,8 @@ int main(int argc, char *argv[])
        TDB_DATA key, data;
 
        plan_tests(9);
-       tdb = tdb_open("run-check.tdb", 1, TDB_CLEAR_IF_FIRST,
-                      O_CREAT|O_TRUNC|O_RDWR, 0600);
+       tdb = tdb_open_ex("run-check.tdb", 1, TDB_CLEAR_IF_FIRST,
+                         O_CREAT|O_TRUNC|O_RDWR, 0600, &taplogctx, NULL);
 
        ok1(tdb);
        ok1(tdb_check(tdb, NULL, NULL) == 0);
index a5c4aa4417e8d5f7b0565a3c6ec5781df6630b68..067ac861e4913acef1964da692b88fe625d08159 100644 (file)
@@ -12,6 +12,7 @@
 #include <ccan/tap/tap.h>
 #include <stdlib.h>
 #include <err.h>
+#include "logging.h"
 
 static int check(TDB_DATA key, TDB_DATA data, void *private)
 {
@@ -103,8 +104,8 @@ int main(int argc, char *argv[])
 
        plan_tests(4);
        /* This should use mmap. */
-       tdb = tdb_open("run-corrupt.tdb", 2, TDB_CLEAR_IF_FIRST,
-                      O_CREAT|O_TRUNC|O_RDWR, 0600);
+       tdb = tdb_open_ex("run-corrupt.tdb", 2, TDB_CLEAR_IF_FIRST,
+                         O_CREAT|O_TRUNC|O_RDWR, 0600, &taplogctx, NULL);
 
        if (!tdb)
                abort();
@@ -112,8 +113,8 @@ int main(int argc, char *argv[])
        tdb_close(tdb);
 
        /* This should not. */
-       tdb = tdb_open("run-corrupt.tdb", 2, TDB_CLEAR_IF_FIRST|TDB_NOMMAP,
-                      O_CREAT|O_TRUNC|O_RDWR, 0600);
+       tdb = tdb_open_ex("run-corrupt.tdb", 2, TDB_CLEAR_IF_FIRST|TDB_NOMMAP,
+                         O_CREAT|O_TRUNC|O_RDWR, 0600, &taplogctx, NULL);
 
        if (!tdb)
                abort();
index c5f802c22e9edcad94a11c3f4892ce7a758e880a..fb5da455ebf023a2d626acaa41a97b5c7e1986ce 100644 (file)
@@ -27,6 +27,7 @@ static int ftruncate_check(int fd, off_t length);
 #include <err.h>
 #include <setjmp.h>
 #include "external-agent.h"
+#include "logging.h"
 
 #undef write
 #undef pwrite
@@ -34,29 +35,11 @@ static int ftruncate_check(int fd, off_t length);
 #undef ftruncate
 
 static bool in_transaction;
-static bool suppress_logging;
 static int target, current;
 static jmp_buf jmpbuf;
 #define TEST_DBNAME "run-die-during-transaction.tdb"
 #define KEY_STRING "helloworld"
 
-static void taplog(struct tdb_context *tdb,
-                  enum tdb_debug_level level,
-                  const char *fmt, ...)
-{
-       va_list ap;
-       char line[200];
-
-       if (suppress_logging)
-               return;
-
-       va_start(ap, fmt);
-       vsprintf(line, fmt, ap);
-       va_end(ap);
-
-       diag("%s", line);
-}
-
 static void maybe_die(int fd)
 {
        if (in_transaction && current++ == target) {
@@ -109,7 +92,6 @@ static bool test_death(enum operation op, struct agent *agent)
 {
        struct tdb_context *tdb = NULL;
        TDB_DATA key;
-       struct tdb_logging_context logctx = { taplog, NULL };
        enum agent_return ret;
        int needed_recovery = 0;
 
@@ -172,7 +154,7 @@ reset:
 
        unlink(TEST_DBNAME);
        tdb = tdb_open_ex(TEST_DBNAME, 1024, TDB_NOMMAP,
-                         O_CREAT|O_TRUNC|O_RDWR, 0600, &logctx, NULL);
+                         O_CREAT|O_TRUNC|O_RDWR, 0600, &taplogctx, NULL);
 
        /* Put key for agent to fetch. */
        key.dsize = strlen(KEY_STRING);
index 9ee877dde5090a1bf3a1e550f75fb5cf0f9bacf8..74184a1a5836f0061adbdb3ca9a44c68c8b7e6de 100644 (file)
@@ -12,6 +12,7 @@
 #include <ccan/tap/tap.h>
 #include <stdlib.h>
 #include <err.h>
+#include "logging.h"
 
 int main(int argc, char *argv[])
 {
@@ -19,8 +20,9 @@ int main(int argc, char *argv[])
        TDB_DATA key, data;
 
        plan_tests(13);
-       tdb = tdb_open("run-endian.tdb", 1024, TDB_CLEAR_IF_FIRST|TDB_CONVERT,
-                      O_CREAT|O_TRUNC|O_RDWR, 0600);
+       tdb = tdb_open_ex("run-endian.tdb", 1024,
+                         TDB_CLEAR_IF_FIRST|TDB_CONVERT,
+                         O_CREAT|O_TRUNC|O_RDWR, 0600, &taplogctx, NULL);
 
        ok1(tdb);
        key.dsize = strlen("hi");
@@ -46,7 +48,8 @@ int main(int argc, char *argv[])
        tdb_close(tdb);
 
        /* Reopen: should read it */
-       tdb = tdb_open("run-endian.tdb", 1024, 0, O_RDWR, 0);
+       tdb = tdb_open_ex("run-endian.tdb", 1024, 0, O_RDWR, 0,
+                         &taplogctx, NULL);
        ok1(tdb);
        
        key.dsize = strlen("hi");
index b39833638b416e1d4bedde3f29f4ae30d6b8e726..f8fd05497de6cc264b84d468b13e647b54206ca1 100644 (file)
@@ -13,6 +13,8 @@
 #include <stdlib.h>
 #include <stdbool.h>
 #include <err.h>
+#include "logging.h"
+
 int main(int argc, char *argv[])
 {
        struct tdb_context *tdb;
@@ -22,8 +24,9 @@ int main(int argc, char *argv[])
        key.dsize = strlen("hi");
        key.dptr = (void *)"hi";
 
-       tdb = tdb_open("run-nested-transactions.tdb", 1024, TDB_CLEAR_IF_FIRST,
-                      O_CREAT|O_TRUNC|O_RDWR, 0600);
+       tdb = tdb_open_ex("run-nested-transactions.tdb",
+                         1024, TDB_CLEAR_IF_FIRST,
+                         O_CREAT|O_TRUNC|O_RDWR, 0600, &taplogctx, NULL);
        ok1(tdb);
 
        /* No nesting by default. */
@@ -49,7 +52,8 @@ int main(int argc, char *argv[])
        free(data.dptr);
        tdb_close(tdb);
 
-       tdb = tdb_open("run-nested-transactions.tdb", 1024, TDB_ALLOW_NESTING, O_RDWR, 0);
+       tdb = tdb_open_ex("run-nested-transactions.tdb",
+                         1024, TDB_ALLOW_NESTING, O_RDWR, 0, &taplogctx, NULL);
        ok1(tdb);
 
        ok1(tdb_transaction_start(tdb) == 0);
index d4e499d7e313e7bb3a98891624087420f2c01d9e..7e0a71dd325363ec018a29110cbef2039337443f 100644 (file)
@@ -17,6 +17,7 @@
 #include <stdbool.h>
 #include <err.h>
 #include "external-agent.h"
+#include "logging.h"
 
 static struct agent *agent;
 
@@ -65,8 +66,8 @@ int main(int argc, char *argv[])
        if (!agent)
                err(1, "preparing agent");
 
-       tdb = tdb_open("run-nested-traverse.tdb", 1024, TDB_CLEAR_IF_FIRST,
-                      O_CREAT|O_TRUNC|O_RDWR, 0600);
+       tdb = tdb_open_ex("run-nested-traverse.tdb", 1024, TDB_CLEAR_IF_FIRST,
+                         O_CREAT|O_TRUNC|O_RDWR, 0600, &taplogctx, NULL);
        ok1(tdb);
 
        ok1(external_agent_operation(agent, OPEN, tdb_name(tdb)) == SUCCESS);
index a4f7668ee49ca24ae3073aea92402e66190f11d7..bbca2e93a391b88e4a517947adb6f23c4dc85b33 100644 (file)
@@ -17,6 +17,7 @@
 #include <ccan/tap/tap.h>
 #include <stdlib.h>
 #include <err.h>
+#include "logging.h"
 
 #undef fcntl
 
@@ -78,8 +79,9 @@ int main(int argc, char *argv[])
        int errors = 0;
 
        plan_tests(41);
-       tdb = tdb_open("run-no-lock-during-traverse.tdb",
-                      1024, TDB_CLEAR_IF_FIRST, O_CREAT|O_TRUNC|O_RDWR, 0600);
+       tdb = tdb_open_ex("run-no-lock-during-traverse.tdb",
+                         1024, TDB_CLEAR_IF_FIRST, O_CREAT|O_TRUNC|O_RDWR,
+                         0600, &taplogctx, NULL);
 
        ok1(tdb);
        ok1(prepare_entries(tdb));
index 1c55b723413e12eccaaab4f017561799fa74b9b6..98cbac9173075c1059b2f143514c61a79a1bc636 100644 (file)
@@ -27,6 +27,7 @@ static int ftruncate_check(int fd, off_t length);
 #include <stdarg.h>
 #include <err.h>
 #include "external-agent.h"
+#include "logging.h"
 
 static struct agent *agent;
 static bool opened;
@@ -39,20 +40,6 @@ static bool clear_if_first;
 #undef fcntl
 #undef ftruncate
 
-static void taplog(struct tdb_context *tdb,
-                  enum tdb_debug_level level,
-                  const char *fmt, ...)
-{
-       va_list ap;
-       char line[200];
-
-       va_start(ap, fmt);
-       vsprintf(line, fmt, ap);
-       va_end(ap);
-
-       diag("%s", line);
-}
-
 static bool is_same(const char *snapshot, const char *latest, off_t len)
 {
        unsigned i;
@@ -154,7 +141,6 @@ static int ftruncate_check(int fd, off_t length)
 
 int main(int argc, char *argv[])
 {
-       struct tdb_logging_context logctx = { taplog, NULL };
        const int flags[] = { TDB_DEFAULT,
                              TDB_CLEAR_IF_FIRST,
                              TDB_NOMMAP, 
@@ -177,7 +163,7 @@ int main(int argc, char *argv[])
                unlink(TEST_DBNAME);
                tdb = tdb_open_ex(TEST_DBNAME, 1024, flags[i],
                                  O_CREAT|O_TRUNC|O_RDWR, 0600,
-                                 &logctx, NULL);
+                                 &taplogctx, NULL);
                ok1(tdb);
 
                opened = true;
index c7079cf6828eb39deb3665950c5913684f6a0b2c..a3475582e3fb2dda6137657a1b65fc917c6bdbb2 100644 (file)
@@ -17,6 +17,7 @@
 #include <stdbool.h>
 #include <err.h>
 #include "external-agent.h"
+#include "logging.h"
 
 static struct agent *agent;
 
@@ -50,8 +51,9 @@ int main(int argc, char *argv[])
        if (!agent)
                err(1, "preparing agent");
 
-       tdb = tdb_open("run-traverse-in-transaction.tdb",
-                      1024, TDB_CLEAR_IF_FIRST, O_CREAT|O_TRUNC|O_RDWR, 0600);
+       tdb = tdb_open_ex("run-traverse-in-transaction.tdb",
+                         1024, TDB_CLEAR_IF_FIRST, O_CREAT|O_TRUNC|O_RDWR,
+                         0600, &taplogctx, NULL);
        ok1(tdb);
 
        key.dsize = strlen("hi");
index 999fe1d7f406da41a59ddb383fabb460c3a1d30b..8cb57f400bcc9154c819f665bfd8cb3aef13dabc 100644 (file)
@@ -12,6 +12,7 @@
 #include <ccan/tap/tap.h>
 #include <stdlib.h>
 #include <err.h>
+#include "logging.h"
 
 int main(int argc, char *argv[])
 {
@@ -19,7 +20,8 @@ int main(int argc, char *argv[])
        TDB_DATA key, data;
 
        plan_tests(4);
-       tdb = tdb_open(NULL, 1024, TDB_INTERNAL, O_CREAT|O_TRUNC|O_RDWR, 0600);
+       tdb = tdb_open_ex(NULL, 1024, TDB_INTERNAL, O_CREAT|O_TRUNC|O_RDWR,
+                         0600, &taplogctx, NULL);
        ok1(tdb);
 
        /* Tickle bug on appending zero length buffer to zero length buffer. */
index b6202fe70860037db737a268d0fdc018c1762e56..fe09d45b058c26a48eaa60b259dc6ecb725a100a 100644 (file)
@@ -12,6 +12,7 @@
 #include <ccan/tap/tap.h>
 #include <stdlib.h>
 #include <err.h>
+#include "logging.h"
 
 int main(int argc, char *argv[])
 {
@@ -19,8 +20,8 @@ int main(int argc, char *argv[])
        TDB_DATA key, data;
 
        plan_tests(10);
-       tdb = tdb_open("run.tdb", 1024, TDB_CLEAR_IF_FIRST,
-                      O_CREAT|O_TRUNC|O_RDWR, 0600);
+       tdb = tdb_open_ex("run.tdb", 1024, TDB_CLEAR_IF_FIRST,
+                         O_CREAT|O_TRUNC|O_RDWR, 0600, &taplogctx, NULL);
 
        ok1(tdb);
        key.dsize = strlen("hi");