Adds RigtorpSPSC test case
[libcds.git] / test / stress / sequential / sequential-misc / rigtorp_mpmc_driver.cpp
index 743a64aa8455dc54a2fa2b1ba0cfbf60be460052..2d46103c1047871c9b38386444ce3ad0dc794587 100644 (file)
@@ -15,10 +15,13 @@ protected:
   static size_t s_nRigtorpMPMCQueueCapacity;
 
   static void SetUpTestCase() {
-    cds_test::config const &cfg = get_config("Misc");
-    GetConfig(RigtorpMPMCQueuePassCount);
-    GetConfig(RigtorpMPMCQueueEnqueueStride);
-    GetConfig(RigtorpMPMCQueueCapacity);
+    cds_test::config const &cfg = get_config("SequentialMisc");
+    GetConfigExpected(RigtorpMPMCQueuePassCount, 10000);
+    GetConfigExpected(RigtorpMPMCQueueEnqueueStride, 1024);
+    GetConfigExpected(RigtorpMPMCQueueCapacity, 2048);
+    if (s_nRigtorpMPMCQueueCapacity <= s_nRigtorpMPMCQueueEnqueueStride) {
+      s_nRigtorpMPMCQueueCapacity = 2 * s_nRigtorpMPMCQueueEnqueueStride;
+    }
   }
 
   void test() {
@@ -27,8 +30,8 @@ protected:
     size_t pop_sum = 0;
 
     while (nNo < s_nRigtorpMPMCQueuePassCount) {
-      size_t curr_push_count =
-          std::min(s_nRigtorpMPMCQueuePassCount - nNo, s_nRigtorpMPMCQueueEnqueueStride);
+      size_t curr_push_count = std::min(s_nRigtorpMPMCQueuePassCount - nNo,
+                                        s_nRigtorpMPMCQueueEnqueueStride);
       for (size_t i = 0; i < curr_push_count; i++) {
         q.push(nNo);
         ++nNo;
@@ -43,10 +46,7 @@ protected:
 
     size_t supposed_sum =
         s_nRigtorpMPMCQueuePassCount * (s_nRigtorpMPMCQueuePassCount - 1) / 2;
-    if (pop_sum != supposed_sum) {
-      std::cout << "Sequential rigtorpMPMC queue pop sum: " << pop_sum
-                << " != " << supposed_sum << "\n";
-    }
+    EXPECT_EQ(pop_sum, supposed_sum);
   }
 };