]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
test: make the LibCephFS.ShutdownRacer test even more thrashy
authorJeff Layton <jlayton@redhat.com>
Wed, 11 Oct 2017 15:16:39 +0000 (11:16 -0400)
committerShylesh Kumar <shylesh.mohan@gmail.com>
Mon, 9 Apr 2018 09:32:26 +0000 (15:02 +0530)
Have each thread do the startup and shutdown in a loop for a specified
number of times.

Tracker: http://tracker.ceph.com/issues/21512
Signed-off-by: Jeff Layton <jlayton@redhat.com>
(cherry picked from commit f877e365a42f8f34af6fc3382593ef09101a50d0)

src/test/libcephfs/test.cc

index 20b9bbfa7c6d403d825b4144196dc8f027b77128..cfd77fa95d1caf125b4a33ef0ee66274d1ab0e90 100644 (file)
@@ -1833,23 +1833,26 @@ TEST(LibCephFS, OperationsOnRoot)
   ceph_shutdown(cmount);
 }
 
-#define NTHREADS 128
-
 static void shutdown_racer_func()
 {
+  const int niter = 32;
   struct ceph_mount_info *cmount;
-
-  ASSERT_EQ(ceph_create(&cmount, NULL), 0);
-  ASSERT_EQ(ceph_conf_read_file(cmount, NULL), 0);
-  ASSERT_EQ(0, ceph_conf_parse_env(cmount, NULL));
-  ASSERT_EQ(ceph_mount(cmount, "/"), 0);
-  ceph_shutdown(cmount);
+  int i;
+
+  for (i = 0; i < niter; ++i) {
+    ASSERT_EQ(ceph_create(&cmount, NULL), 0);
+    ASSERT_EQ(ceph_conf_read_file(cmount, NULL), 0);
+    ASSERT_EQ(0, ceph_conf_parse_env(cmount, NULL));
+    ASSERT_EQ(ceph_mount(cmount, "/"), 0);
+    ceph_shutdown(cmount);
+  }
 }
 
 // See tracker #20988
 TEST(LibCephFS, ShutdownRace)
 {
-  std::thread threads[NTHREADS];
+  const int nthreads = 128;
+  std::thread threads[nthreads];
 
   // Need a bunch of fd's for this test
   struct rlimit rold, rnew;
@@ -1858,10 +1861,10 @@ TEST(LibCephFS, ShutdownRace)
   rnew.rlim_cur = rnew.rlim_max;
   ASSERT_EQ(setrlimit(RLIMIT_NOFILE, &rnew), 0);
 
-  for (int i = 0; i < NTHREADS; ++i)
+  for (int i = 0; i < nthreads; ++i)
     threads[i] = std::thread(shutdown_racer_func);
 
-  for (int i = 0; i < NTHREADS; ++i)
+  for (int i = 0; i < nthreads; ++i)
     threads[i].join();
   ASSERT_EQ(setrlimit(RLIMIT_NOFILE, &rold), 0);
 }