]> git.ozlabs.org Git - ccan/blob - ccan/tdb2/test/tdb1-logging.c
tdb2: test: import tdb1's tests.
[ccan] / ccan / tdb2 / test / tdb1-logging.c
1 #include "tdb1-logging.h"
2 #include <ccan/tap/tap.h>
3 #include <stdarg.h>
4 #include <stdlib.h>
5 #include <string.h>
6 #include <stdio.h>
7
8 /* Turn log messages into tap diag messages. */
9 static void taplog(struct tdb1_context *tdb,
10                    enum tdb1_debug_level level,
11                    const char *fmt, ...)
12 {
13         va_list ap;
14         char line[200];
15
16         if (suppress_logging)
17                 return;
18
19         va_start(ap, fmt);
20         vsprintf(line, fmt, ap);
21         va_end(ap);
22
23         /* Strip trailing \n: diag adds it. */
24         if (line[0] && line[strlen(line)-1] == '\n')
25                 diag("%s%.*s", log_prefix, (unsigned)strlen(line)-1, line);
26         else
27                 diag("%s%s", log_prefix, line);
28 }
29
30 struct tdb1_logging_context taplogctx = { taplog, NULL };