status->set("reload", Element::create(reload.total_seconds()));
}
- // todo: number of service threads.
+ if (MultiThreadingMgr::instance().getMode()) {
+ status->set("thread-pool-size", Element::create(
+ long(MultiThreadingMgr::instance().getThreadPoolSize())));
+ status->set("packet-queue-size", Element::create(
+ long(MultiThreadingMgr::instance().getPacketQueueSize())));
+ }
return (createAnswer(0, status));
}
ASSERT_TRUE(found_reload);
EXPECT_LE(found_reload->intValue(), 5);
EXPECT_GE(found_reload->intValue(), 0);
+
+ MultiThreadingMgr::instance().setMode(true);
+ MultiThreadingMgr::instance().setThreadPoolSize(4);
+ MultiThreadingMgr::instance().setPacketQueueSize(64);
+ sendUnixCommand("{ \"command\": \"status-get\" }", response_txt);
+ ASSERT_NO_THROW(response = Element::fromJSON(response_txt));
+ ASSERT_TRUE(response);
+ ASSERT_EQ(Element::map, response->getType());
+ EXPECT_EQ(2, response->size());
+ result = response->get("result");
+ ASSERT_TRUE(result);
+ ASSERT_EQ(Element::integer, result->getType());
+ EXPECT_EQ(0, result->intValue());
+ arguments = response->get("arguments");
+ ASSERT_EQ(Element::map, arguments->getType());
+
+ // The returned pid should be the pid of our process.
+ found_pid = arguments->get("pid");
+ ASSERT_TRUE(found_pid);
+ EXPECT_EQ(static_cast<int64_t>(getpid()), found_pid->intValue());
+
+ // It is hard to check the actual uptime (and reload) as it is based
+ // on current time. Let's just make sure it is within a reasonable
+ // range.
+ found_uptime = arguments->get("uptime");
+ ASSERT_TRUE(found_uptime);
+ EXPECT_LE(found_uptime->intValue(), 5);
+ EXPECT_GE(found_uptime->intValue(), 0);
+
+ found_reload = arguments->get("reload");
+ ASSERT_TRUE(found_reload);
+ EXPECT_LE(found_reload->intValue(), 5);
+ EXPECT_GE(found_reload->intValue(), 0);
+
+ auto found_thread_count = arguments->get("thread-pool-size");
+ ASSERT_TRUE(found_thread_count);
+ EXPECT_EQ(found_thread_count->intValue(), 4);
+
+ auto found_queue_size = arguments->get("packet-queue-size");
+ ASSERT_TRUE(found_queue_size);
+ EXPECT_EQ(found_queue_size->intValue(), 64);
}
// This test verifies that the DHCP server handles config-backend-pull command
status->set("reload", Element::create(reload.total_seconds()));
}
- // todo: number of service threads.
+ if (MultiThreadingMgr::instance().getMode()) {
+ status->set("thread-pool-size", Element::create(
+ long(MultiThreadingMgr::instance().getThreadPoolSize())));
+ status->set("packet-queue-size", Element::create(
+ long(MultiThreadingMgr::instance().getPacketQueueSize())));
+ }
return (createAnswer(0, status));
}
ASSERT_TRUE(found_reload);
EXPECT_LE(found_reload->intValue(), 5);
EXPECT_GE(found_reload->intValue(), 0);
+
+ MultiThreadingMgr::instance().setMode(true);
+ MultiThreadingMgr::instance().setThreadPoolSize(4);
+ MultiThreadingMgr::instance().setPacketQueueSize(64);
+ sendUnixCommand("{ \"command\": \"status-get\" }", response_txt);
+ ASSERT_NO_THROW(response = Element::fromJSON(response_txt));
+ ASSERT_TRUE(response);
+ ASSERT_EQ(Element::map, response->getType());
+ EXPECT_EQ(2, response->size());
+ result = response->get("result");
+ ASSERT_TRUE(result);
+ ASSERT_EQ(Element::integer, result->getType());
+ EXPECT_EQ(0, result->intValue());
+ arguments = response->get("arguments");
+ ASSERT_EQ(Element::map, arguments->getType());
+
+ // The returned pid should be the pid of our process.
+ found_pid = arguments->get("pid");
+ ASSERT_TRUE(found_pid);
+ EXPECT_EQ(static_cast<int64_t>(getpid()), found_pid->intValue());
+
+ // It is hard to check the actual uptime (and reload) as it is based
+ // on current time. Let's just make sure it is within a reasonable
+ // range.
+ found_uptime = arguments->get("uptime");
+ ASSERT_TRUE(found_uptime);
+ EXPECT_LE(found_uptime->intValue(), 5);
+ EXPECT_GE(found_uptime->intValue(), 0);
+
+ found_reload = arguments->get("reload");
+ ASSERT_TRUE(found_reload);
+ EXPECT_LE(found_reload->intValue(), 5);
+ EXPECT_GE(found_reload->intValue(), 0);
+
+ auto found_thread_count = arguments->get("thread-pool-size");
+ ASSERT_TRUE(found_thread_count);
+ EXPECT_EQ(found_thread_count->intValue(), 4);
+
+ auto found_queue_size = arguments->get("packet-queue-size");
+ ASSERT_TRUE(found_queue_size);
+ EXPECT_EQ(found_queue_size->intValue(), 64);
}
// This test verifies that the DHCP server handles server-tag-get command