X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Ftest%2Ftest_workqueue.cc;fp=src%2Fceph%2Fsrc%2Ftest%2Ftest_workqueue.cc;h=e1787fe9034c8a5939ab908759119d3c5a706896;hb=812ff6ca9fcd3e629e49d4328905f33eee8ca3f5;hp=0000000000000000000000000000000000000000;hpb=15280273faafb77777eab341909a3f495cf248d9;p=stor4nfv.git diff --git a/src/ceph/src/test/test_workqueue.cc b/src/ceph/src/test/test_workqueue.cc new file mode 100644 index 0000000..e1787fe --- /dev/null +++ b/src/ceph/src/test/test_workqueue.cc @@ -0,0 +1,55 @@ +#include "gtest/gtest.h" + +#include "common/WorkQueue.h" +#include "common/ceph_argparse.h" + +TEST(WorkQueue, StartStop) +{ + ThreadPool tp(g_ceph_context, "foo", "tp_foo", 10, ""); + + tp.start(); + tp.pause(); + tp.pause_new(); + tp.unpause(); + tp.unpause(); + tp.drain(); + tp.stop(); +} + +TEST(WorkQueue, Resize) +{ + ThreadPool tp(g_ceph_context, "bar", "tp_bar", 2, "osd_peering_wq_threads"); + + tp.start(); + + sleep(1); + ASSERT_EQ(2, tp.get_num_threads()); + + g_conf->set_val("osd peering wq threads", "5"); + g_conf->apply_changes(&cout); + sleep(1); + ASSERT_EQ(5, tp.get_num_threads()); + + g_conf->set_val("osd peering wq threads", "3"); + g_conf->apply_changes(&cout); + sleep(1); + ASSERT_EQ(3, tp.get_num_threads()); + + g_conf->set_val("osd peering wq threads", "0"); + g_conf->apply_changes(&cout); + sleep(1); + ASSERT_EQ(0, tp.get_num_threads()); + + g_conf->set_val("osd peering wq threads", "15"); + g_conf->apply_changes(&cout); + sleep(1); + ASSERT_EQ(15, tp.get_num_threads()); + + g_conf->set_val("osd peering wq threads", "-1"); + g_conf->apply_changes(&cout); + sleep(1); + ASSERT_EQ(15, tp.get_num_threads()); + + sleep(1); + tp.stop(); +}