Skip to content

Commit ef481d1

Browse files
committed
MB-20054: [BP] Add verbose (logging) output to ep_unit_tests_main
Not originally part of MB-20054, but needed for test development for this MB. Change-Id: Ia38db00d4f8cd84b2c90b5bddbd0bc01f51b61de Reviewed-on: http://review.couchbase.org/65516 Well-Formed: buildbot <[email protected]> Tested-by: buildbot <[email protected]> Reviewed-by: Will Gardner <[email protected]> Reviewed-by: Jim Walker <[email protected]>
1 parent b77fd62 commit ef481d1

File tree

4 files changed

+38
-6
lines changed

4 files changed

+38
-6
lines changed

src/ep_engine.cc

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,8 @@
5252
#include <JSON_checker.h>
5353

5454
static ALLOCATOR_HOOKS_API *hooksApi;
55-
static SERVER_LOG_API *loggerApi;
55+
SERVER_LOG_API* EventuallyPersistentEngine::loggerApi;
56+
5657

5758
static size_t percentOf(size_t val, double percent) {
5859
return static_cast<size_t>(static_cast<double>(val) * percent);
@@ -1724,7 +1725,7 @@ extern "C" {
17241725
}
17251726

17261727
hooksApi = api->alloc_hooks;
1727-
loggerApi = api->log;
1728+
EventuallyPersistentEngine::loggerApi = api->log;
17281729
MemoryTracker::getInstance();
17291730
ObjectRegistry::initialize(api->alloc_hooks->get_allocation_size);
17301731

@@ -1809,11 +1810,11 @@ extern "C" {
18091810
void LOG(EXTENSION_LOG_LEVEL severity, const char *fmt, ...) {
18101811
char buffer[2048];
18111812

1812-
if (loggerApi != NULL) {
1813+
if (EventuallyPersistentEngine::loggerApi != NULL) {
18131814
EXTENSION_LOGGER_DESCRIPTOR* logger =
1814-
(EXTENSION_LOGGER_DESCRIPTOR*)loggerApi->get_logger();
1815+
(EXTENSION_LOGGER_DESCRIPTOR*)EventuallyPersistentEngine::loggerApi->get_logger();
18151816

1816-
if (loggerApi->get_level() <= severity) {
1817+
if (EventuallyPersistentEngine::loggerApi->get_level() <= severity) {
18171818
EventuallyPersistentEngine *engine = ObjectRegistry::onSwitchThread(NULL, true);
18181819
va_list va;
18191820
va_start(va, fmt);

src/ep_engine.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -740,6 +740,8 @@ class EventuallyPersistentEngine : public ENGINE_HANDLE_V1 {
740740
ENGINE_ERROR_CODE getAllVBucketSequenceNumbers(const void *cookie,
741741
ADD_RESPONSE response);
742742

743+
static SERVER_LOG_API *loggerApi;
744+
743745
protected:
744746
friend class EpEngineValueChangeListener;
745747

tests/module_tests/ep_unit_tests_main.cc

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,36 @@
3232
static char allow_no_stats_env[] = "ALLOW_NO_STATS_UPDATE=yeah";
3333

3434
int main(int argc, char **argv) {
35+
bool log_to_stderr = false;
36+
// Parse command-line options.
37+
int cmd;
38+
bool invalid_argument = false;
39+
while (!invalid_argument &&
40+
(cmd = getopt(argc, argv, "v")) != EOF) {
41+
switch (cmd) {
42+
case 'v':
43+
log_to_stderr = true;
44+
break;
45+
default:
46+
std::cerr << "Usage: " << argv[0] << " [-v] [gtest_options...]" << std::endl
47+
<< std::endl
48+
<< " -v Verbose - Print verbose output to stderr."
49+
<< std::endl << std::endl;
50+
invalid_argument = true;
51+
break;
52+
}
53+
}
54+
3555
putenv(allow_no_stats_env);
3656

37-
init_mock_server(false);
57+
init_mock_server(log_to_stderr);
58+
get_mock_server_api()->log->set_level(EXTENSION_LOG_DEBUG);
59+
60+
if (memcached_initialize_stderr_logger(get_mock_server_api) != EXTENSION_SUCCESS) {
61+
std::cerr << argv[0] << ": Failed to initialize log system" << std::endl;
62+
return 1;
63+
}
64+
3865

3966
// Default number of hashtable locks is too large for TSan to
4067
// track. Use the value in configuration.json (47 at time of

tests/module_tests/evp_store_test.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ SynchronousEPEngine::SynchronousEPEngine(const std::string& extra_config)
4141
: EventuallyPersistentEngine(get_mock_server_api) {
4242
maxFailoverEntries = 1;
4343

44+
EventuallyPersistentEngine::loggerApi = get_mock_server_api()->log;
45+
4446
// Merge any extra config into the main configuration.
4547
if (extra_config.size() > 0) {
4648
if (!configuration.parseConfiguration(extra_config.c_str(),

0 commit comments

Comments
 (0)