X-Git-Url: http://plrg.eecs.uci.edu/git/?p=libcds.git;a=blobdiff_plain;f=test%2Fstress%2Fsequential%2Fsequential-misc%2Frigtorp_mpmc_driver.cpp;h=0066f901641e178c53ed95d10c102fbd1358d2a1;hp=743a64aa8455dc54a2fa2b1ba0cfbf60be460052;hb=6ec1165b0c929f8b4c7d4f7a0ff79a4126b4947e;hpb=a09deddad8c64f9663fdfccbab67a43cf214543f;ds=inline diff --git a/test/stress/sequential/sequential-misc/rigtorp_mpmc_driver.cpp b/test/stress/sequential/sequential-misc/rigtorp_mpmc_driver.cpp index 743a64aa..0066f901 100644 --- a/test/stress/sequential/sequential-misc/rigtorp_mpmc_driver.cpp +++ b/test/stress/sequential/sequential-misc/rigtorp_mpmc_driver.cpp @@ -15,38 +15,39 @@ 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() { - rigtorp::MPMCQueue q(s_nRigtorpMPMCQueueCapacity); + std::unique_ptr> q( + new rigtorp::MPMCQueue(s_nRigtorpMPMCQueueCapacity)); size_t nNo = 0; 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); + q->push(nNo); ++nNo; } for (size_t i = 0; i < curr_push_count; i++) { size_t res; - q.pop(res); + q->pop(res); pop_sum += res; } } 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); } };