Adds iterable HP map parameters
[libcds.git] / test / stress / map / insdelfind / map_insdelfind.cpp
index 830356e898311db3ec831f00b5ffd462555f8996..2e5bbe949746c7f18c324c2c09df31303ddf5e50 100644 (file)
@@ -35,6 +35,22 @@ namespace map {
     size_t Map_InsDelFind::s_nMapSize = 500000;
     size_t Map_InsDelFind::s_nThreadCount = 8;
     size_t Map_InsDelFind::s_nPassCount = 100000;
+    size_t Map_InsDelFind::s_nBronsonAVLTreeMapPassCount = 100;
+
+    size_t Map_InsDelFind::s_nHpFeldmanPassCount = 100;
+    size_t Map_InsDelFind::s_nHpEllenBinTreeMapPassCount = 100;
+    size_t Map_InsDelFind::s_nHpMichaelMapPassCount = 100;
+    size_t Map_InsDelFind::s_nHpMichaelIterableMapPassCount = 100;
+    size_t Map_InsDelFind::s_nHpSkipListMapPassCount = 100;
+    size_t Map_InsDelFind::s_nHpSplitListMapPassCount = 100;
+    size_t Map_InsDelFind::s_nHpSplitListIterableMapPassCount = 100;
+
+    size_t Map_InsDelFind::s_nRcuFeldmanPassCount = 100;
+    size_t Map_InsDelFind::s_nRcuEllenBinTreeMapPassCount = 100;
+    size_t Map_InsDelFind::s_nRcuMichaelMapPassCount = 100;
+    size_t Map_InsDelFind::s_nRcuSkipListMapPassCount = 100;
+    size_t Map_InsDelFind::s_nRcuSplitListMapPassCount = 100;
+
     size_t Map_InsDelFind::s_nMaxLoadFactor = 8;
     unsigned int Map_InsDelFind::s_nInsertPercentage = 5;
     unsigned int Map_InsDelFind::s_nDeletePercentage = 5;
@@ -65,7 +81,57 @@ namespace map {
 
         s_nPassCount = cfg.get_size_t( "PassCount", s_nPassCount );
         if ( s_nPassCount == 0 )
-            s_nThreadCount = 1000;
+            s_nPassCount = 1000;
+
+                               s_nHpFeldmanPassCount =
+            cfg.get_size_t("HpFeldmanPassCount", s_nHpFeldmanPassCount);
+        if (s_nHpFeldmanPassCount == 0)
+          s_nHpFeldmanPassCount = 500;
+
+        s_nRcuFeldmanPassCount =
+            cfg.get_size_t("RcuFeldmanPassCount", s_nRcuFeldmanPassCount);
+        if (s_nRcuFeldmanPassCount == 0)
+          s_nRcuFeldmanPassCount = 500;
+
+        s_nHpEllenBinTreeMapPassCount = cfg.get_size_t(
+            "HpEllenBinTreeMapPassCount", s_nHpEllenBinTreeMapPassCount);
+        if (s_nHpEllenBinTreeMapPassCount == 0)
+          s_nHpEllenBinTreeMapPassCount = 500;
+
+                               s_nRcuEllenBinTreeMapPassCount = cfg.get_size_t(
+            "RcuEllenBinTreeMapPassCount", s_nRcuEllenBinTreeMapPassCount);
+        if (s_nRcuEllenBinTreeMapPassCount == 0)
+          s_nRcuEllenBinTreeMapPassCount = 500;
+
+        s_nHpMichaelMapPassCount =
+            cfg.get_size_t("HpMichaelMapPassCount", s_nHpMichaelMapPassCount);
+        if (s_nHpMichaelMapPassCount == 0)
+          s_nHpMichaelMapPassCount = 500;
+
+        s_nRcuMichaelMapPassCount =
+            cfg.get_size_t("RcuMichaelMapPassCount", s_nRcuMichaelMapPassCount);
+        if (s_nRcuMichaelMapPassCount == 0)
+          s_nRcuMichaelMapPassCount = 500;
+
+        s_nHpSkipListMapPassCount =
+            cfg.get_size_t("HpSkipListMapPassCount", s_nHpSkipListMapPassCount);
+        if (s_nHpSkipListMapPassCount == 0)
+          s_nHpSkipListMapPassCount = 500;
+
+                               s_nRcuSkipListMapPassCount =
+            cfg.get_size_t("RcuSkipListMapPassCount", s_nRcuSkipListMapPassCount);
+        if (s_nRcuSkipListMapPassCount == 0)
+          s_nRcuSkipListMapPassCount = 500;
+
+        s_nHpSplitListMapPassCount =
+            cfg.get_size_t("HpSplitListMapPassCount", s_nHpSplitListMapPassCount);
+        if (s_nHpSplitListMapPassCount == 0)
+          s_nHpSplitListMapPassCount = 500;
+
+        s_nRcuSplitListMapPassCount =
+            cfg.get_size_t("RcuSplitListMapPassCount", s_nRcuSplitListMapPassCount);
+        if (s_nRcuSplitListMapPassCount == 0)
+          s_nRcuSplitListMapPassCount = 500;
 
         s_nMaxLoadFactor = cfg.get_size_t( "MaxLoadFactor", s_nMaxLoadFactor );
         if ( s_nMaxLoadFactor == 0 )
@@ -128,9 +194,10 @@ namespace map {
         if ( s_nMaxLoadFactor == 0 )
             s_nMaxLoadFactor = 1;
 
-        std::vector<size_t> lf;
-        for ( size_t n = 1; n <= s_nMaxLoadFactor; n *= 2 )
-            lf.push_back( n );
+        // Only test with max load factor.
+      std::vector<size_t> lf = {s_nMaxLoadFactor};
+//      for (size_t n = 1; n <= s_nMaxLoadFactor; n *= 2)
+//        lf.push_back(n);
 
         return lf;
     }