]> git.ozlabs.org Git - ccan/blobdiff - ccan/tdb2/test/tdb1-logging.c
tdb2: test: import tdb1's tests.
[ccan] / ccan / tdb2 / test / tdb1-logging.c
diff --git a/ccan/tdb2/test/tdb1-logging.c b/ccan/tdb2/test/tdb1-logging.c
new file mode 100644 (file)
index 0000000..43ce07b
--- /dev/null
@@ -0,0 +1,30 @@
+#include "tdb1-logging.h"
+#include <ccan/tap/tap.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+
+/* Turn log messages into tap diag messages. */
+static void taplog(struct tdb1_context *tdb,
+                  enum tdb1_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);
+
+       /* Strip trailing \n: diag adds it. */
+       if (line[0] && line[strlen(line)-1] == '\n')
+               diag("%s%.*s", log_prefix, (unsigned)strlen(line)-1, line);
+       else
+               diag("%s%s", log_prefix, line);
+}
+
+struct tdb1_logging_context taplogctx = { taplog, NULL };