diff options
author | Trond Norbye <trond.norbye@gmail.com> | 2011-04-02 19:14:20 +0200 |
---|---|---|
committer | Trond Norbye <trond.norbye@gmail.com> | 2011-04-02 19:14:20 +0200 |
commit | 0e1d11678cd12a55ba7a1d9063bbade3e6d6a44c (patch) | |
tree | 7290df5a68841c94e64e02d2dbbc86110900ec86 | |
parent | 979d98229623432571c0100e19ebe76a9d3d67a2 (diff) | |
download | memcached-0e1d11678cd12a55ba7a1d9063bbade3e6d6a44c.tar.gz |
Added a blackhole logger to use during testing
-rw-r--r-- | Makefile.am | 7 | ||||
-rw-r--r-- | extensions/loggers/blackhole_logger.c | 42 | ||||
-rw-r--r-- | programs/testapp.c | 7 | ||||
-rw-r--r-- | t/lib/MemcachedTest.pm | 2 |
4 files changed, 57 insertions, 1 deletions
diff --git a/Makefile.am b/Makefile.am index 2c447e0..45cabca 100644 --- a/Makefile.am +++ b/Makefile.am @@ -28,6 +28,7 @@ pkglib_LTLIBRARIES = libmemcached_utilities.la \ basic_engine_testsuite.la \ default_engine.la \ example_protocol.la \ + blackhole_logger.la \ stdin_term_handler.la if BUILD_SYSLOG_LOGGER @@ -185,6 +186,12 @@ example_protocol_la_SOURCES= extensions/protocol/example_protocol.c \ extensions/protocol_extension.h example_protocol_la_LDFLAGS= -avoid-version -shared -module -no-undefined +# A logger just ignoring the output +blackhole_logger_la_CPPFLAGS = $(CPPFLAGS) -I$(top_srcdir)/extensions +blackhole_logger_la_SOURCES = extensions/loggers/blackhole_logger.c \ + extensions/protocol_extension.h +blackhole_logger_la_LDFLAGS = -avoid-version -shared -module -no-undefined + # A logger using syslog syslog_logger_la_CPPFLAGS = $(CPPFLAGS) -I$(top_srcdir)/extensions syslog_logger_la_SOURCES = extensions/loggers/syslog_logger.c \ diff --git a/extensions/loggers/blackhole_logger.c b/extensions/loggers/blackhole_logger.c new file mode 100644 index 0000000..8b8b9cc --- /dev/null +++ b/extensions/loggers/blackhole_logger.c @@ -0,0 +1,42 @@ +/* -*- Mode: C; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */ +#include "config.h" +#include <stdarg.h> +#include <stdio.h> +#include <memcached/extension.h> +#include <memcached/engine.h> +#include "protocol_extension.h" + +static const char *get_name(void) { + return "blackhole"; +} + +static void logger_log(EXTENSION_LOG_LEVEL severity, + const void* client_cookie, + const char *fmt, ...) +{ + (void)severity; + (void)client_cookie; + (void)fmt; +} + +static EXTENSION_LOGGER_DESCRIPTOR descriptor = { + .get_name = get_name, + .log = logger_log +}; + +MEMCACHED_PUBLIC_API +EXTENSION_ERROR_CODE memcached_extensions_initialize(const char *config, + GET_SERVER_API get_server_api) { + (void)config; + + SERVER_HANDLE_V1 *sapi = get_server_api(); + if (sapi == NULL) { + return EXTENSION_FATAL; + } + + if (!sapi->extension->register_extension(EXTENSION_LOGGER, &descriptor)) { + return EXTENSION_FATAL; + } + + return EXTENSION_SUCCESS; +} diff --git a/programs/testapp.c b/programs/testapp.c index af3b084..5a159eb 100644 --- a/programs/testapp.c +++ b/programs/testapp.c @@ -330,6 +330,11 @@ static pid_t start_server(in_port_t *port_out, bool daemon, int timeout) { strcat(engine, "/.libs/default_engine.so"); assert(strlen(engine) < sizeof(engine)); + char blackhole[1024]; + assert(getcwd(blackhole, sizeof(blackhole))); + strcat(blackhole, "/.libs/blackhole_logger.so"); + + #ifdef __sun /* I want to name the corefiles differently so that they don't overwrite each other @@ -359,6 +364,8 @@ static pid_t start_server(in_port_t *port_out, bool daemon, int timeout) { argv[arg++] = "./memcached"; argv[arg++] = "-E"; argv[arg++] = engine; + argv[arg++] = "-X"; + argv[arg++] = blackhole; argv[arg++] = "-p"; argv[arg++] = "-1"; argv[arg++] = "-U"; diff --git a/t/lib/MemcachedTest.pm b/t/lib/MemcachedTest.pm index 5674e10..0aca537 100644 --- a/t/lib/MemcachedTest.pm +++ b/t/lib/MemcachedTest.pm @@ -172,7 +172,7 @@ sub new_memcached { if ($< == 0) { $args .= " -u root"; } - $args .= " -E $builddir/.libs/default_engine.so"; + $args .= " -E $builddir/.libs/default_engine.so -X $builddir/.libs/blackhole_logger.so"; my $childpid = fork(); |