#include #include "log/Log.h" #include "common/Clock.h" #include "common/PrebufferedStreambuf.h" #include "include/coredumpctl.h" #include "SubsystemMap.h" using namespace ceph::logging; TEST(Log, Simple) { SubsystemMap subs; subs.add(0, "none", 10, 10); subs.add(1, "foosys", 20, 1); subs.add(2, "bar", 20, 2); subs.add(3, "baz", 10, 3); Log log(&subs); log.start(); log.set_log_file("/tmp/foo"); log.reopen_log_file(); log.set_stderr_level(5, -1); for (int i=0; i<100; i++) { int sys = i % 4; int l = 5 + (i%4); if (subs.should_gather(sys, l)) { Entry *e = new Entry(ceph_clock_now(), pthread_self(), l, sys, "hello world"); log.submit_entry(e); } } log.flush(); log.dump_recent(); log.stop(); } int many = 10000; TEST(Log, ManyNoGather) { SubsystemMap subs; subs.add(1, "foo", 1, 1); Log log(&subs); log.start(); log.set_log_file("/tmp/big"); log.reopen_log_file(); for (int i=0; iset_str(oss.str()); log.submit_entry(e); } } log.flush(); log.stop(); } TEST(Log, ManyGatherLogStringAssignWithReserve) { SubsystemMap subs; subs.add(1, "foo", 20, 10); Log log(&subs); log.start(); log.set_log_file("/tmp/big"); log.reopen_log_file(); for (int i=0; iset_str(oss.str()); log.submit_entry(e); } } log.flush(); log.stop(); } TEST(Log, ManyGatherLogPrebuf) { SubsystemMap subs; subs.add(1, "foo", 20, 10); Log log(&subs); log.start(); log.set_log_file("/tmp/big"); log.reopen_log_file(); for (int i=0; im_static_buf, sizeof(e->m_static_buf)); ostream oss(&psb); oss << "this i a long stream asdf asdf asdf asdf asdf asdf asdf asdf asdf as fd"; //e->m_str = oss.str(); log.submit_entry(e); } } log.flush(); log.stop(); } TEST(Log, ManyGatherLogPrebufOverflow) { SubsystemMap subs; subs.add(1, "foo", 20, 10); Log log(&subs); log.start(); log.set_log_file("/tmp/big"); log.reopen_log_file(); for (int i=0; im_static_buf, sizeof(e->m_static_buf)); ostream oss(&psb); oss << "this i a long stream asdf asdf asdf asdf asdf asdf asdf asdf asdf as fd" << std::string(sizeof(e->m_static_buf) * 2, '-') ; //e->m_str = oss.str(); log.submit_entry(e); } } log.flush(); log.stop(); } TEST(Log, ManyGather) { SubsystemMap subs; subs.add(1, "foo", 20, 1); Log log(&subs); log.start(); log.set_log_file("/tmp/big"); log.reopen_log_file(); for (int i=0; iset_str(msg); log.submit_entry(e); log.flush(); log.stop(); }