]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: test_dmclock_scheduler: conditionalize tests with boost ctx
authorAbhishek Lekshmanan <abhishek@suse.com>
Wed, 27 Feb 2019 12:34:55 +0000 (13:34 +0100)
committerAbhishek Lekshmanan <abhishek@suse.com>
Tue, 26 Mar 2019 10:19:15 +0000 (11:19 +0100)
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
(cherry picked from commit b6e503d79cc625c1565ca5c5ae60881d16fefc72)

src/test/rgw/test_rgw_dmclock_scheduler.cc

index 4e4177cb0b356802a2287efc21448586252d3cce..7d2ef9b3281a952f979947f18514016e6abf86a3 100644 (file)
@@ -37,58 +37,6 @@ auto capture(std::optional<error_code>& opt_ec,
   };
 }
 
-TEST(Queue, AsyncRequest)
-{
-  boost::asio::io_context context;
-  ClientCounters counters(g_ceph_context);
-  AsyncScheduler queue(g_ceph_context, context, std::ref(counters), nullptr,
-                  [] (client_id client) -> ClientInfo* {
-      static ClientInfo clients[] = {
-        {1, 1, 1}, // admin: satisfy by reservation
-        {0, 1, 1}, // auth: satisfy by priority
-      };
-      return &clients[static_cast<size_t>(client)];
-                 }, AtLimit::Reject
-                 );
-
-  std::optional<error_code> ec1, ec2;
-  std::optional<PhaseType> p1, p2;
-
-  auto now = get_time();
-  queue.async_request(client_id::admin, {}, now, 1, capture(ec1, p1));
-  queue.async_request(client_id::auth, {}, now, 1, capture(ec2, p2));
-  EXPECT_FALSE(ec1);
-  EXPECT_FALSE(ec2);
-
-  EXPECT_EQ(1u, counters(client_id::admin)->get(queue_counters::l_qlen));
-  EXPECT_EQ(1u, counters(client_id::auth)->get(queue_counters::l_qlen));
-
-  context.poll();
-  EXPECT_TRUE(context.stopped());
-
-  ASSERT_TRUE(ec1);
-  EXPECT_EQ(boost::system::errc::success, *ec1);
-  ASSERT_TRUE(p1);
-  EXPECT_EQ(PhaseType::reservation, *p1);
-
-  ASSERT_TRUE(ec2);
-  EXPECT_EQ(boost::system::errc::success, *ec2);
-  ASSERT_TRUE(p2);
-  EXPECT_EQ(PhaseType::priority, *p2);
-
-  EXPECT_EQ(0u, counters(client_id::admin)->get(queue_counters::l_qlen));
-  EXPECT_EQ(1u, counters(client_id::admin)->get(queue_counters::l_res));
-  EXPECT_EQ(0u, counters(client_id::admin)->get(queue_counters::l_prio));
-  EXPECT_EQ(0u, counters(client_id::admin)->get(queue_counters::l_limit));
-  EXPECT_EQ(0u, counters(client_id::admin)->get(queue_counters::l_cancel));
-
-  EXPECT_EQ(0u, counters(client_id::auth)->get(queue_counters::l_qlen));
-  EXPECT_EQ(0u, counters(client_id::auth)->get(queue_counters::l_res));
-  EXPECT_EQ(1u, counters(client_id::auth)->get(queue_counters::l_prio));
-  EXPECT_EQ(0u, counters(client_id::auth)->get(queue_counters::l_limit));
-  EXPECT_EQ(0u, counters(client_id::auth)->get(queue_counters::l_cancel));
-}
-
 TEST(Queue, SyncRequest)
 {
   ClientCounters counters(g_ceph_context);
@@ -128,6 +76,7 @@ TEST(Queue, SyncRequest)
   EXPECT_EQ(0u, counters(client_id::auth)->get(queue_counters::l_cancel));
 }
 
+#ifdef HAVE_BOOST_CONTEXT
 TEST(Queue, RateLimit)
 {
   boost::asio::io_context context;
@@ -189,6 +138,59 @@ TEST(Queue, RateLimit)
   EXPECT_EQ(0u, counters(client_id::auth)->get(queue_counters::l_cancel));
 }
 
+TEST(Queue, AsyncRequest)
+{
+  boost::asio::io_context context;
+  ClientCounters counters(g_ceph_context);
+  AsyncScheduler queue(g_ceph_context, context, std::ref(counters), nullptr,
+                  [] (client_id client) -> ClientInfo* {
+      static ClientInfo clients[] = {
+        {1, 1, 1}, // admin: satisfy by reservation
+        {0, 1, 1}, // auth: satisfy by priority
+      };
+      return &clients[static_cast<size_t>(client)];
+                 }, AtLimit::Reject
+                 );
+
+  std::optional<error_code> ec1, ec2;
+  std::optional<PhaseType> p1, p2;
+
+  auto now = get_time();
+  queue.async_request(client_id::admin, {}, now, 1, capture(ec1, p1));
+  queue.async_request(client_id::auth, {}, now, 1, capture(ec2, p2));
+  EXPECT_FALSE(ec1);
+  EXPECT_FALSE(ec2);
+
+  EXPECT_EQ(1u, counters(client_id::admin)->get(queue_counters::l_qlen));
+  EXPECT_EQ(1u, counters(client_id::auth)->get(queue_counters::l_qlen));
+
+  context.poll();
+  EXPECT_TRUE(context.stopped());
+
+  ASSERT_TRUE(ec1);
+  EXPECT_EQ(boost::system::errc::success, *ec1);
+  ASSERT_TRUE(p1);
+  EXPECT_EQ(PhaseType::reservation, *p1);
+
+  ASSERT_TRUE(ec2);
+  EXPECT_EQ(boost::system::errc::success, *ec2);
+  ASSERT_TRUE(p2);
+  EXPECT_EQ(PhaseType::priority, *p2);
+
+  EXPECT_EQ(0u, counters(client_id::admin)->get(queue_counters::l_qlen));
+  EXPECT_EQ(1u, counters(client_id::admin)->get(queue_counters::l_res));
+  EXPECT_EQ(0u, counters(client_id::admin)->get(queue_counters::l_prio));
+  EXPECT_EQ(0u, counters(client_id::admin)->get(queue_counters::l_limit));
+  EXPECT_EQ(0u, counters(client_id::admin)->get(queue_counters::l_cancel));
+
+  EXPECT_EQ(0u, counters(client_id::auth)->get(queue_counters::l_qlen));
+  EXPECT_EQ(0u, counters(client_id::auth)->get(queue_counters::l_res));
+  EXPECT_EQ(1u, counters(client_id::auth)->get(queue_counters::l_prio));
+  EXPECT_EQ(0u, counters(client_id::auth)->get(queue_counters::l_limit));
+  EXPECT_EQ(0u, counters(client_id::auth)->get(queue_counters::l_cancel));
+}
+
+
 TEST(Queue, Cancel)
 {
   boost::asio::io_context context;
@@ -395,8 +397,6 @@ TEST(Queue, CrossExecutorRequest)
   EXPECT_EQ(PhaseType::priority, *p2);
 }
 
-#ifdef HAVE_BOOST_CONTEXT
-
 TEST(Queue, SpawnAsyncRequest)
 {
   boost::asio::io_context context;