{
Mutex::Locker lck(m_parent->m_lock); // Take lock to access m_loggers
buffer.push_back('{');
- buffer.push_back(' ');
for (std::set <ProfLogger*>::iterator l = m_parent->m_loggers.begin();
l != m_parent->m_loggers.end(); ++l)
{
if (d->count != COUNT_DISABLED) {
switch (d->type) {
case PROF_LOG_DATA_ANY_U64:
- snprintf(buf, sizeof(buf), "\"%s\" : { \"count\" : %" PRId64 ", "
- "\"sum\" : %" PRId64 " },\n",
+ snprintf(buf, sizeof(buf), "'%s':{'count':%" PRId64 ","
+ "'sum':%" PRId64 "},",
data.name, data.count, data.u.u64);
break;
case PROF_LOG_DATA_ANY_DOUBLE:
- snprintf(buf, sizeof(buf), "\"%s\" : { \"count\" : %" PRId64 ", "
- "\"sum\" : %g },\n",
+ snprintf(buf, sizeof(buf), "'%s':{'count':%" PRId64 ","
+ "'sum':%g},",
data.name, data.count, data.u.dbl);
break;
default:
else {
switch (d->type) {
case PROF_LOG_DATA_ANY_U64:
- snprintf(buf, sizeof(buf), "\"%s\" : %" PRId64 ",\n",
+ snprintf(buf, sizeof(buf), "'%s':%" PRId64 ",",
data.name, data.u.u64);
break;
case PROF_LOG_DATA_ANY_DOUBLE:
- snprintf(buf, sizeof(buf), "\"%s\" : %g,\n", data.name, data.u.dbl);
+ snprintf(buf, sizeof(buf), "'%s':%g,", data.name, data.u.dbl);
break;
default:
assert(0);
return oss.str();
}
- printf("MESSAGE FROM SERVER: %s\n", buffer);
+ //printf("MESSAGE FROM SERVER: %s\n", buffer);
message->assign((const char*)buffer);
close(socket_fd);
return "";
}
TEST(ProfLogger, SimpleTest) {
-
ProfLoggerCollectionTest plct(g_ceph_context->GetProfLoggerCollection());
ASSERT_EQ(true, plct.shutdown());
ASSERT_EQ(true, plct.init(get_socket_path()));
ProfLoggerTestClient test_client(get_socket_path());
std::string message;
ASSERT_EQ("", test_client.get_message(&message));
- ASSERT_EQ("{ }", message);
+ ASSERT_EQ("{}", message);
+}
+
+enum {
+ FAKE_PROFLOGGER1_ELEMENT_FIRST = 200,
+ FAKE_PROFLOGGER1_ELEMENT_1,
+ FAKE_PROFLOGGER1_ELEMENT_2,
+ FAKE_PROFLOGGER1_ELEMENT_3,
+ FAKE_PROFLOGGER1_ELEMENT_LAST,
+};
+
+static ProfLogger* setup_fake_proflogger1(CephContext *cct)
+{
+ ProfLoggerBuilder bld(cct, "fake_proflogger_1",
+ FAKE_PROFLOGGER1_ELEMENT_FIRST, FAKE_PROFLOGGER1_ELEMENT_LAST);
+ bld.add_u64(FAKE_PROFLOGGER1_ELEMENT_1, "element1");
+ bld.add_fl(FAKE_PROFLOGGER1_ELEMENT_2, "element2");
+ bld.add_fl_avg(FAKE_PROFLOGGER1_ELEMENT_3, "element3");
+ return bld.create_proflogger();
+}
+
+TEST(ProfLogger, FakeProflogger1) {
+ ProfLoggerCollection *coll = g_ceph_context->GetProfLoggerCollection();
+ coll->logger_add(setup_fake_proflogger1(g_ceph_context));
+ ProfLoggerCollectionTest plct(coll);
+ ASSERT_EQ(true, plct.shutdown());
+ ASSERT_EQ(true, plct.init(get_socket_path()));
+ ProfLoggerTestClient test_client(get_socket_path());
+ std::string message;
+ ASSERT_EQ("", test_client.get_message(&message));
+ ASSERT_EQ("{'element1':0,'element2':0,'element3':{'count':0,'sum':0},}", message);
}