Flush I/O immediately with std::endl instead of \n
[junction.git] / test / junction_driver.cpp
index 1609297b6bc54dd3ce864577308a9099c08e05a6..c5697ebf19bf0ce504909ec35431fa0e900eb62d 100644 (file)
@@ -16,11 +16,11 @@ const size_t kGCFrequency = 3000;
 const size_t kLeapfrogGCFrequency = 1500;
 
 const size_t kCrudeMapSize = 10000;
-const size_t kCrudePassCount = 40000;
+const size_t kCrudePassCount = 400000;
 const char* kCrudeBenchmarkName = "JunctionMapCrude";
 
 const size_t kGrampaMapSize = 20000;
-const size_t kGrampaPassCount = 30000;
+const size_t kGrampaPassCount = 60000;
 const char* kGrampaBenchmarkName = "JunctionMapGrampa";
 
 const size_t kLinearMapSize = 20000;
@@ -41,7 +41,7 @@ typedef junction::ConcurrentMap_Crude<size_t, size_t> CrudeMap;
 template <typename Map>
 void run_crude_map(size_t map_size, size_t pass_count, const char* bench_name,
     size_t gc_frequency) {
-    std::cout << "[ RUN      ] " << kTestName << "." << bench_name << "\n";
+    std::cout << "[ RUN      ] " << kTestName << "." << bench_name << std::endl;
     auto start_time = std::chrono::system_clock::now();
 
     size_t nInsertedNum = 0;
@@ -82,26 +82,27 @@ void run_crude_map(size_t map_size, size_t pass_count, const char* bench_name,
         }
     }
     junction::DefaultQSBR.update(qsbrContext);
+    junction::DefaultQSBR.destroyContext(qsbrContext );
     auto finish_time = std::chrono::system_clock::now();
     auto dur = finish_time - start_time;
     auto milisecs = std::chrono::duration_cast<std::chrono::milliseconds>(dur);
 
     if (nFindSuccess != nInsertedNum) {
         std::cout << "nFindSuccess=" << nFindSuccess << ", nInsertedNum="
-                  << nInsertedNum << "\n";
+                  << nInsertedNum << std::endl;
         std::cout << "[       FAILED ] " << kTestName << "." << bench_name
-                  << "(" << milisecs.count() << " ms)\n";
+                  << "(" << milisecs.count() << " ms)" << std::endl;
         assert(false && "ConcurrentMap ERROR");
     } else {
         std::cout << "[       OK ] " << kTestName << "." << bench_name
-                  << "(" << milisecs.count() << " ms)\n";
+                  << "(" << milisecs.count() << " ms)" << std::endl;
     }
 }
 
 template <typename Map>
 void run_test(size_t map_size, size_t pass_count, const char* bench_name,
     size_t gc_frequency) {
-    std::cout << "[ RUN      ] " << kTestName << "." << bench_name << "\n";
+    std::cout << "[ RUN      ] " << kTestName << "." << bench_name << std::endl;
     auto start_time = std::chrono::system_clock::now();
 
     size_t nInsertedNum = 0;
@@ -144,30 +145,32 @@ void run_test(size_t map_size, size_t pass_count, const char* bench_name,
             }
         }
     }
+    junction::DefaultQSBR.update(qsbrContext);
+    junction::DefaultQSBR.destroyContext(qsbrContext );
     auto finish_time = std::chrono::system_clock::now();
     auto dur = finish_time - start_time;
     auto milisecs = std::chrono::duration_cast<std::chrono::milliseconds>(dur);
 
     if (nFindSuccess != nInsertedNum) {
         std::cout << "nFindSuccess=" << nFindSuccess << ", nInsertedNum="
-                  << nInsertedNum << "\n";
+                  << nInsertedNum << std::endl;
         std::cout << "[       FAILED ] " << kTestName << "." << bench_name
-                  << "(" << milisecs.count() << " ms)\n";
+                  << "(" << milisecs.count() << " ms)" << std::endl;
         assert(false && "ConcurrentMap ERROR");
     } else {
         std::cout << "[       OK ] " << kTestName << "." << bench_name
-                  << "(" << milisecs.count() << " ms)\n";
+                  << "(" << milisecs.count() << " ms)" << std::endl;
     }
 }
 
 int main() {
+    run_crude_map<CrudeMap>(kCrudeMapSize, kCrudePassCount, kCrudeBenchmarkName,
+        kGCFrequency);
     run_test<LeapfrogMap>(kLeapfrogMapSize, kLeapfrogPassCount,
         kLeapfrogBenchmarkName, kLeapfrogGCFrequency );
     run_test<LinearMap>(kLinearMapSize, kLinearPassCount, kLinearBenchmarkName,
         kGCFrequency);
     run_test<GrampaMap>(kGrampaMapSize, kGrampaPassCount, kGrampaBenchmarkName,
         kGCFrequency);
-    run_crude_map<CrudeMap>(kCrudeMapSize, kCrudePassCount, kCrudeBenchmarkName,
-        kGCFrequency);
     return 0;
 }