From 27fbe8be78ec4f48635baa84a337895fb03a6bfa Mon Sep 17 00:00:00 2001 From: Colin Patrick McCabe Date: Wed, 6 Jul 2011 17:08:41 -0700 Subject: [PATCH] Now we can put runnable logs into separate files Signed-off-by: Colin McCabe --- src/test/system/rados_open_pools_parallel.cc | 4 ++++ src/test/system/st_rados_create_pool.cc | 5 +++++ src/test/system/systest_runnable.cc | 8 ++++---- src/test/system/systest_settings.cc | 14 ++++++++++++++ src/test/system/systest_settings.h | 4 ++++ 5 files changed, 31 insertions(+), 4 deletions(-) diff --git a/src/test/system/rados_open_pools_parallel.cc b/src/test/system/rados_open_pools_parallel.cc index b8eb53f662e8f..aee95a210844c 100644 --- a/src/test/system/rados_open_pools_parallel.cc +++ b/src/test/system/rados_open_pools_parallel.cc @@ -17,6 +17,7 @@ #include "include/rados/librados.h" #include "st_rados_create_pool.h" #include "systest_runnable.h" +#include "systest_settings.h" #include #include @@ -63,6 +64,9 @@ public: rados_t cl; RETURN_IF_NONZERO(rados_create(&cl, NULL)); rados_conf_parse_argv(cl, m_argc, m_argv); + std::string log_name = SysTestSettings::inst().get_log_name(get_id_str()); + if (!log_name.empty()) + rados_conf_set(cl, "log_file", log_name.c_str()); RETURN_IF_NONZERO(rados_conf_read_file(cl, NULL)); RETURN_IF_NONZERO(rados_connect(cl)); if (m_pool_setup_sem) diff --git a/src/test/system/st_rados_create_pool.cc b/src/test/system/st_rados_create_pool.cc index 29be91eeb568d..80c16d639c230 100644 --- a/src/test/system/st_rados_create_pool.cc +++ b/src/test/system/st_rados_create_pool.cc @@ -16,6 +16,7 @@ #include "include/rados/librados.h" #include "st_rados_create_pool.h" #include "systest_runnable.h" +#include "systest_settings.h" #include #include @@ -59,6 +60,10 @@ run() rados_t cl; RETURN_IF_NONZERO(rados_create(&cl, NULL)); rados_conf_parse_argv(cl, m_argc, m_argv); + rados_conf_parse_argv(cl, m_argc, m_argv); + std::string log_name = SysTestSettings::inst().get_log_name(get_id_str()); + if (!log_name.empty()) + rados_conf_set(cl, "log_file", log_name.c_str()); RETURN_IF_NONZERO(rados_conf_read_file(cl, NULL)); RETURN_IF_NONZERO(rados_connect(cl)); int ret = rados_pool_delete(cl, "foo"); diff --git a/src/test/system/systest_runnable.cc b/src/test/system/systest_runnable.cc index 84c954edd60de..2f768594dbf93 100644 --- a/src/test/system/systest_runnable.cc +++ b/src/test/system/systest_runnable.cc @@ -202,14 +202,14 @@ update_id_str(bool started) if (started) { if (use_threads) - snprintf(extra, sizeof(extra), " [%d]", do_gettid()); + snprintf(extra, sizeof(extra), "_[%d]", do_gettid()); else - snprintf(extra, sizeof(extra), " [%d]", getpid()); + snprintf(extra, sizeof(extra), "_[%d]", getpid()); } if (use_threads) - snprintf(m_id_str, SysTestRunnable::ID_STR_SZ, "thread %d%s", m_id, extra); + snprintf(m_id_str, SysTestRunnable::ID_STR_SZ, "thread_%d%s", m_id, extra); else - snprintf(m_id_str, SysTestRunnable::ID_STR_SZ, "process %d%s", m_id, extra); + snprintf(m_id_str, SysTestRunnable::ID_STR_SZ, "process_%d%s", m_id, extra); } // Copy argv so that if some fiend decides to modify it, it's ok. diff --git a/src/test/system/systest_settings.cc b/src/test/system/systest_settings.cc index 59b4072cfcadb..b1d14a259bf69 100644 --- a/src/test/system/systest_settings.cc +++ b/src/test/system/systest_settings.cc @@ -15,6 +15,7 @@ #include "systest_settings.h" #include +#include #include pthread_mutex_t g_system_test_settings_lock = PTHREAD_MUTEX_INITIALIZER; @@ -35,6 +36,16 @@ use_threads() const return m_use_threads; } +std::string SysTestSettings:: +get_log_name(const std::string &suffix) const +{ + if (m_log_file_base.empty()) + return ""; + std::ostringstream oss; + oss << m_log_file_base << "." << suffix; + return oss.str(); +} + SysTestSettings* SysTestSettings:: m_inst = NULL; @@ -42,6 +53,9 @@ SysTestSettings:: SysTestSettings() { m_use_threads = !!getenv("USE_THREADS"); + const char *lfb = getenv("LOG_FILE_BASE"); + if (lfb) + m_log_file_base.assign(lfb); } SysTestSettings:: diff --git a/src/test/system/systest_settings.h b/src/test/system/systest_settings.h index 18abf1c134de1..4c32143f75a19 100644 --- a/src/test/system/systest_settings.h +++ b/src/test/system/systest_settings.h @@ -15,18 +15,22 @@ #ifndef CEPH_SYSTEM_TEST_SETTINGS_H #define CEPH_SYSTEM_TEST_SETTINGS_H +#include + /* Singleton with settings grabbed from environment variables */ class SysTestSettings { public: static SysTestSettings& inst(); bool use_threads() const; + std::string get_log_name(const std::string &suffix) const; private: static SysTestSettings* m_inst; SysTestSettings(); ~SysTestSettings(); bool m_use_threads; + std::string m_log_file_base; }; #endif -- 2.39.5