Fixed internal statistics printing for map/set stress test
authorkhizmax <libcds.dev@gmail.com>
Mon, 3 Oct 2016 20:26:48 +0000 (23:26 +0300)
committerkhizmax <libcds.dev@gmail.com>
Mon, 3 Oct 2016 20:26:48 +0000 (23:26 +0300)
projects/Win/vc14/stress-set-insdel_string.vcxproj.filters
test/stress/map/insdel_string/map_insdel_string.h
test/stress/map/map_type.h
test/stress/map/map_type_std.h
test/stress/map/map_type_striped.h
test/stress/set/insdel_string/set_insdel_string.h
test/stress/set/set_type.h
test/stress/set/set_type_std.h
test/stress/set/set_type_striped.h

index 9e1bf0e..4d54e92 100644 (file)
@@ -9,10 +9,6 @@
       <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
       <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
     </Filter>
-    <Filter Include="Resource Files">
-      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
-      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
-    </Filter>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\..\..\test\stress\main.cpp">
index 4948c4e..41cd6a7 100644 (file)
@@ -5,7 +5,7 @@
 
     Source code repo: http://github.com/khizmax/libcds/
     Download: http://sourceforge.net/projects/libcds/files/
-    
+
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
 
@@ -25,7 +25,7 @@
     SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
     CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
     OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.     
+    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
 #include "map_type.h"
@@ -234,8 +234,11 @@ namespace map {
 
             check_before_cleanup( testMap );
 
-            testMap.clear();
+            //testMap.clear();
+            for ( auto const& str: s_arrKeys )
+                testMap.erase( str );
             EXPECT_TRUE( testMap.empty() );
+            EXPECT_EQ( testMap.size(), 0u );
 
             additional_check( testMap );
             print_stat( propout(), testMap );
index d0d03bf..08373a6 100644 (file)
@@ -206,12 +206,20 @@ namespace map {
                 return seed;
             }
         };
-
     };
 
+    struct empty_stat {};
+    static inline cds_test::property_stream& operator <<( cds_test::property_stream& o, empty_stat const& )
+    {
+        return o;
+    }
+
     template <typename Map>
-    static inline void print_stat( cds_test::property_stream&, Map const& /*m*/ )
-    {}
+    static inline void print_stat( cds_test::property_stream& o, Map const& m )
+    {
+        o << m.statistics();
+    }
+
 
     template <typename Map>
     static inline void check_before_cleanup( Map& /*m*/ )
index 30ce916..f7d880c 100644 (file)
@@ -122,8 +122,10 @@ namespace map {
             return false;
         }
 
-        std::ostream& dump( std::ostream& stm ) { return stm; }
-
+        empty_stat statistics() const
+        {
+            return empty_stat();
+        }
 
         // for testing
         static CDS_CONSTEXPR bool const c_bExtractSupported = false;
@@ -219,7 +221,10 @@ namespace map {
             return false;
         }
 
-        std::ostream& dump( std::ostream& stm ) { return stm; }
+        empty_stat statistics() const
+        {
+            return empty_stat();
+        }
 
 
         // for testing
@@ -247,6 +252,7 @@ namespace map {
     };
 }   // namespace map
 
+
 #define CDSSTRESS_StdMap_case( fixture, test_case, std_map_type, key_type, value_type ) \
     TEST_F( fixture, std_map_type ) \
     { \
index 44773db..6d0d01f 100644 (file)
@@ -5,7 +5,7 @@
 
     Source code repo: http://github.com/khizmax/libcds/
     Download: http://sourceforge.net/projects/libcds/files/
-    
+
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
 
@@ -25,7 +25,7 @@
     SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
     CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
     OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.     
+    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
 #ifndef CDSUNIT_MAP_TYPE_STRIPED_H
@@ -83,6 +83,11 @@ namespace map {
                 : base_class( cfg.s_nMapSize / cfg.s_nLoadFactor / 16, *(new(&m_placeHolder) resizing_policy_t( cfg.s_nLoadFactor )) )
             {}
 
+            empty_stat statistics() const
+            {
+                return empty_stat();
+            }
+
             // for testing
             static CDS_CONSTEXPR bool const c_bExtractSupported = false;
             static CDS_CONSTEXPR bool const c_bLoadFactorDepended = true;
@@ -111,6 +116,11 @@ namespace map {
                 : base_class( 0, *(new(&m_placeHolder) resizing_policy_t( cfg.s_nMaxLoadFactor * 1024 )) )
             {}
 
+            empty_stat statistics() const
+            {
+                return empty_stat();
+            }
+
             // for testing
             static CDS_CONSTEXPR bool const c_bExtractSupported = false;
             static CDS_CONSTEXPR bool const c_bLoadFactorDepended = false;
@@ -189,6 +199,11 @@ namespace map {
                 : base_class( cfg.s_nMapSize / cfg.s_nLoadFactor / 16, *(new(&m_placeHolder) resizing_policy_t( cfg.s_nLoadFactor )))
             {}
 
+            empty_stat statistics() const
+            {
+                return empty_stat();
+            }
+
             // for testing
             static CDS_CONSTEXPR bool const c_bExtractSupported = false;
             static CDS_CONSTEXPR bool const c_bLoadFactorDepended = true;
@@ -217,6 +232,11 @@ namespace map {
                 : base_class( 0, *(new(&m_placeHolder) resizing_policy_t( cfg.s_nMaxLoadFactor * 1024 )) )
             {}
 
+            empty_stat statistics() const
+            {
+                return empty_stat();
+            }
+
             // for testing
             static CDS_CONSTEXPR bool const c_bExtractSupported = false;
             static CDS_CONSTEXPR bool const c_bLoadFactorDepended = false;
index 28e75ee..f0e11a1 100644 (file)
@@ -385,8 +385,11 @@ namespace set {
                 << std::make_pair( "delete_failed", nDeleteFailed )
                 << std::make_pair( "final_set_size", testSet.size() );
 
-            testSet.clear();
+            //testSet.clear();
+            for (auto const& str: m_arrString )
+                testSet.erase( str );
             EXPECT_TRUE( testSet.empty() );
+            EXPECT_EQ( testSet.size(), 0u );
 
             additional_check( testSet );
             print_stat( propout(), testSet );
@@ -462,8 +465,11 @@ namespace set {
                 << std::make_pair( "extract_failed", nExtractFailed )
                 << std::make_pair( "final_set_size", testSet.size() );
 
-            testSet.clear();
+            //testSet.clear();
+            for ( auto const& str : m_arrString )
+                testSet.erase( str );
             EXPECT_TRUE( testSet.empty() );
+            EXPECT_EQ( testSet.size(), 0u );
 
             additional_check( testSet );
             print_stat( propout(), testSet );
index 2925cf0..cbf62c2 100644 (file)
@@ -289,9 +289,17 @@ namespace set {
     // print_stat
     // *************************************************
 
+    struct empty_stat {};
+    static inline cds_test::property_stream& operator <<( cds_test::property_stream& o, empty_stat const& )
+    {
+        return o;
+    }
+
     template <typename Set>
-    static inline void print_stat( cds_test::property_stream&, Set const& /*s*/ )
-    {}
+    static inline void print_stat( cds_test::property_stream& o, Set const& s )
+    {
+        o << s.statistics();
+    }
 
 
     //*******************************************************
index 1c24f98..68b55b4 100644 (file)
@@ -5,7 +5,7 @@
 
     Source code repo: http://github.com/khizmax/libcds/
     Download: http://sourceforge.net/projects/libcds/files/
-    
+
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
 
@@ -25,7 +25,7 @@
     SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
     CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
     OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.     
+    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
 #ifndef CDSUNIT_SET_TYPE_STD_H
@@ -130,7 +130,10 @@ namespace set {
             return false;
         }
 
-        std::ostream& dump( std::ostream& stm ) { return stm; }
+        empty_stat statistics() const
+        {
+            return empty_stat();
+        }
 
         // for testing
         static CDS_CONSTEXPR bool const c_bExtractSupported = false;
@@ -215,7 +218,10 @@ namespace set {
             return false;
         }
 
-        std::ostream& dump( std::ostream& stm ) { return stm; }
+        empty_stat statistics() const
+        {
+            return empty_stat();
+        }
 
         // for testing
         static CDS_CONSTEXPR bool const c_bExtractSupported = false;
index 97a3955..2da0665 100644 (file)
@@ -5,7 +5,7 @@
 
     Source code repo: http://github.com/khizmax/libcds/
     Download: http://sourceforge.net/projects/libcds/files/
-    
+
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
 
@@ -25,7 +25,7 @@
     SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
     CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
     OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.     
+    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
 #ifndef CDSUNIT_SET_TYPE_STRIPED_H
@@ -92,6 +92,11 @@ namespace set {
                 : base_class( cfg.s_nSetSize / cfg.s_nLoadFactor / 16, *(new(&m_placeHolder) resizing_policy_t( cfg.s_nLoadFactor )) )
             {}
 
+            empty_stat statistics() const
+            {
+                return empty_stat();
+            }
+
             /*
             template <typename Q, typename Less>
             bool erase_with( Q const& v, Less pred )
@@ -128,6 +133,11 @@ namespace set {
                 : base_class( cfg.s_nSetSize / cfg.s_nLoadFactor / 16, *(new(&m_placeHolder) resizing_policy_t( 1, cfg.s_nLoadFactor )) )
             {}
 
+            empty_stat statistics() const
+            {
+                return empty_stat();
+            }
+
             /*
             template <typename Q, typename Less>
             bool erase_with( Q const& v, Less pred )
@@ -165,6 +175,11 @@ namespace set {
                 : base_class( 0, *(new(&m_placeHolder) resizing_policy_t( cfg.s_nMaxLoadFactor * 1024 )) )
             {}
 
+            empty_stat statistics() const
+            {
+                return empty_stat();
+            }
+
             // for testing
             static CDS_CONSTEXPR bool const c_bExtractSupported = false;
             static CDS_CONSTEXPR bool const c_bLoadFactorDepended = false;
@@ -193,6 +208,11 @@ namespace set {
                 : base_class( 0, *(new(&m_placeHolder) resizing_policy_t( 1024, cfg.s_nLoadFactor )))
             {}
 
+            empty_stat statistics() const
+            {
+                return empty_stat();
+            }
+
             // for testing
             static CDS_CONSTEXPR bool const c_bExtractSupported = false;
             static CDS_CONSTEXPR bool const c_bLoadFactorDepended = true;
@@ -352,6 +372,11 @@ namespace set {
                 : base_class( cfg.s_nSetSize / cfg.s_nLoadFactor / 16, *(new(&m_placeHolder) resizing_policy_t( cfg.s_nLoadFactor )) )
             {}
 
+            empty_stat statistics() const
+            {
+                return empty_stat();
+            }
+
             /*
             template <typename Q, typename Less>
             bool erase_with( Q const& v, Less pred )
@@ -387,6 +412,11 @@ namespace set {
                 : base_class( cfg.s_nSetSize / cfg.s_nLoadFactor / 16, *(new(&m_placeHolder) resizing_policy_t( 1, cfg.s_nLoadFactor )))
             {}
 
+            empty_stat statistics() const
+            {
+                return empty_stat();
+            }
+
             // for testing
             static CDS_CONSTEXPR bool const c_bExtractSupported = false;
             static CDS_CONSTEXPR bool const c_bLoadFactorDepended = true;
@@ -415,6 +445,11 @@ namespace set {
                 : base_class( 0, *(new(&m_placeHolder) resizing_policy_t( cfg.s_nMaxLoadFactor * 1024 )) )
             {}
 
+            empty_stat statistics() const
+            {
+                return empty_stat();
+            }
+
             // for testing
             static CDS_CONSTEXPR bool const c_bExtractSupported = false;
             static CDS_CONSTEXPR bool const c_bLoadFactorDepended = false;
@@ -442,6 +477,11 @@ namespace set {
                 : base_class( 0, *(new(&m_placeHolder) resizing_policy_t( 1024, cfg.s_nLoadFactor )))
             {}
 
+            empty_stat statistics() const
+            {
+                return empty_stat();
+            }
+
             // for testing
             static CDS_CONSTEXPR bool const c_bExtractSupported = false;
             static CDS_CONSTEXPR bool const c_bLoadFactorDepended = true;