Moved queue unit tests to gtest framework
authorkhizmax <libcds.dev@gmail.com>
Fri, 5 Feb 2016 21:38:17 +0000 (00:38 +0300)
committerkhizmax <libcds.dev@gmail.com>
Fri, 5 Feb 2016 21:38:17 +0000 (00:38 +0300)
45 files changed:
projects/Win/vc14/cds.sln
projects/Win/vc14/gtest-queue.vcxproj
projects/Win/vc14/gtest-queue.vcxproj.filters
projects/Win/vc14/hdr-test-queue.vcxproj [deleted file]
projects/Win/vc14/hdr-test-queue.vcxproj.filters [deleted file]
projects/source.test-hdr.mk
projects/source.test-hdr.offsetof.mk
test/unit/queue/CMakeLists.txt
test/unit/queue/intrusive_tsigas_queue.cpp [new file with mode: 0644]
test/unit/queue/intrusive_vyukov_queue.cpp [new file with mode: 0644]
test/unit/queue/test_intrusive_bounded_queue.h [new file with mode: 0644]
test/unit/queue/tsigas_queue.cpp
tests/test-hdr/queue/hdr_basketqueue_dhp.cpp [deleted file]
tests/test-hdr/queue/hdr_basketqueue_hp.cpp [deleted file]
tests/test-hdr/queue/hdr_fcqueue.cpp [deleted file]
tests/test-hdr/queue/hdr_fcqueue.h [deleted file]
tests/test-hdr/queue/hdr_intrusive_basketqueue_dhp.cpp [deleted file]
tests/test-hdr/queue/hdr_intrusive_basketqueue_hp.cpp [deleted file]
tests/test-hdr/queue/hdr_intrusive_fcqueue.cpp [deleted file]
tests/test-hdr/queue/hdr_intrusive_moirqueue_dhp.cpp [deleted file]
tests/test-hdr/queue/hdr_intrusive_moirqueue_hp.cpp [deleted file]
tests/test-hdr/queue/hdr_intrusive_msqueue.h [deleted file]
tests/test-hdr/queue/hdr_intrusive_msqueue_dhp.cpp [deleted file]
tests/test-hdr/queue/hdr_intrusive_msqueue_hp.cpp [deleted file]
tests/test-hdr/queue/hdr_intrusive_optimisticqueue_dhp.cpp [deleted file]
tests/test-hdr/queue/hdr_intrusive_optimisticqueue_hp.cpp [deleted file]
tests/test-hdr/queue/hdr_intrusive_segmented_queue.h [deleted file]
tests/test-hdr/queue/hdr_intrusive_segmented_queue_dhp.cpp [deleted file]
tests/test-hdr/queue/hdr_intrusive_segmented_queue_hp.cpp [deleted file]
tests/test-hdr/queue/hdr_intrusive_tsigas_cycle_queue.cpp [deleted file]
tests/test-hdr/queue/hdr_intrusive_vyukovmpmc_cycle_queue.cpp [deleted file]
tests/test-hdr/queue/hdr_moirqueue_dhp.cpp [deleted file]
tests/test-hdr/queue/hdr_moirqueue_hp.cpp [deleted file]
tests/test-hdr/queue/hdr_msqueue_dhp.cpp [deleted file]
tests/test-hdr/queue/hdr_msqueue_hp.cpp [deleted file]
tests/test-hdr/queue/hdr_optimistic_dhp.cpp [deleted file]
tests/test-hdr/queue/hdr_optimistic_hp.cpp [deleted file]
tests/test-hdr/queue/hdr_queue.h [deleted file]
tests/test-hdr/queue/hdr_queue_register.cpp [deleted file]
tests/test-hdr/queue/hdr_rwqueue.cpp [deleted file]
tests/test-hdr/queue/hdr_segmented_queue.h [deleted file]
tests/test-hdr/queue/hdr_segmented_queue_dhp.cpp [deleted file]
tests/test-hdr/queue/hdr_segmented_queue_hp.cpp [deleted file]
tests/test-hdr/queue/hdr_tsigas_cycle_queue.cpp [deleted file]
tests/test-hdr/queue/hdr_vyukov_mpmc_cyclic.cpp [deleted file]

index b400e54a05e209ac52360e8f1f312d91e8db5478..48067e57192fa14e4aa94a6b4cb2f7f5f90777af 100644 (file)
@@ -129,12 +129,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unit-set-insdel", "unit-set
                {408FE9BC-44F0-4E6A-89FA-D6F952584239} = {408FE9BC-44F0-4E6A-89FA-D6F952584239}\r
        EndProjectSection\r
 EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hdr-test-queue", "hdr-test-queue.vcxproj", "{33664E63-8D24-4FF4-A744-9782EB711509}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-               {61179F2F-07E1-490D-B64D-D85A90B6EF81} = {61179F2F-07E1-490D-B64D-D85A90B6EF81}\r
-               {408FE9BC-44F0-4E6A-89FA-D6F952584239} = {408FE9BC-44F0-4E6A-89FA-D6F952584239}\r
-       EndProjectSection\r
-EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hdr-test-set", "hdr-test-set.vcxproj", "{E5E9DB4A-7816-45D4-A116-6BBBA0EE8EE7}"\r
        ProjectSection(ProjectDependencies) = postProject\r
                {61179F2F-07E1-490D-B64D-D85A90B6EF81} = {61179F2F-07E1-490D-B64D-D85A90B6EF81}\r
@@ -363,18 +357,6 @@ Global
                {BA23811C-D4CB-4836-B2F3-6791BD6FFCD1}.Release|Win32.Build.0 = Release|Win32\r
                {BA23811C-D4CB-4836-B2F3-6791BD6FFCD1}.Release|x64.ActiveCfg = Release|x64\r
                {BA23811C-D4CB-4836-B2F3-6791BD6FFCD1}.Release|x64.Build.0 = Release|x64\r
-               {33664E63-8D24-4FF4-A744-9782EB711509}.Debug|Win32.ActiveCfg = Debug|Win32\r
-               {33664E63-8D24-4FF4-A744-9782EB711509}.Debug|Win32.Build.0 = Debug|Win32\r
-               {33664E63-8D24-4FF4-A744-9782EB711509}.Debug|x64.ActiveCfg = Debug|x64\r
-               {33664E63-8D24-4FF4-A744-9782EB711509}.Debug|x64.Build.0 = Debug|x64\r
-               {33664E63-8D24-4FF4-A744-9782EB711509}.DebugVLD|Win32.ActiveCfg = DebugVLD|Win32\r
-               {33664E63-8D24-4FF4-A744-9782EB711509}.DebugVLD|Win32.Build.0 = DebugVLD|Win32\r
-               {33664E63-8D24-4FF4-A744-9782EB711509}.DebugVLD|x64.ActiveCfg = DebugVLD|x64\r
-               {33664E63-8D24-4FF4-A744-9782EB711509}.DebugVLD|x64.Build.0 = DebugVLD|x64\r
-               {33664E63-8D24-4FF4-A744-9782EB711509}.Release|Win32.ActiveCfg = Release|Win32\r
-               {33664E63-8D24-4FF4-A744-9782EB711509}.Release|Win32.Build.0 = Release|Win32\r
-               {33664E63-8D24-4FF4-A744-9782EB711509}.Release|x64.ActiveCfg = Release|x64\r
-               {33664E63-8D24-4FF4-A744-9782EB711509}.Release|x64.Build.0 = Release|x64\r
                {E5E9DB4A-7816-45D4-A116-6BBBA0EE8EE7}.Debug|Win32.ActiveCfg = Debug|Win32\r
                {E5E9DB4A-7816-45D4-A116-6BBBA0EE8EE7}.Debug|Win32.Build.0 = Debug|Win32\r
                {E5E9DB4A-7816-45D4-A116-6BBBA0EE8EE7}.Debug|x64.ActiveCfg = Debug|x64\r
@@ -526,7 +508,6 @@ Global
                {CA25BDBF-B354-4597-B6D2-220ABBB0D2F4} = {6BB7A27F-FC59-4267-B6FA-D034176D1459}\r
                {AF7B2253-2E6D-4992-94D9-4B3699C54929} = {A64449B7-90FB-4E2B-A686-9EFC0E298644}\r
                {BA23811C-D4CB-4836-B2F3-6791BD6FFCD1} = {A64449B7-90FB-4E2B-A686-9EFC0E298644}\r
-               {33664E63-8D24-4FF4-A744-9782EB711509} = {B8C24D26-A3BF-4DA6-B64C-142CBA4BFE75}\r
                {E5E9DB4A-7816-45D4-A116-6BBBA0EE8EE7} = {B8C24D26-A3BF-4DA6-B64C-142CBA4BFE75}\r
                {A38E5597-6916-4480-A343-C9846EF544E4} = {B8C24D26-A3BF-4DA6-B64C-142CBA4BFE75}\r
                {6F834EAD-7B94-4979-A0F1-A662E3D30145} = {B8C24D26-A3BF-4DA6-B64C-142CBA4BFE75}\r
index 713f1c8acb27aab8722e2c4769f12bb192524269..d3c69d22bb8911533f702eb1c2c354411de791c9 100644 (file)
@@ -42,6 +42,8 @@
     <ClCompile Include="..\..\..\test\unit\queue\intrusive_optqueue_hp.cpp" />\r
     <ClCompile Include="..\..\..\test\unit\queue\intrusive_segmented_queue_dhp.cpp" />\r
     <ClCompile Include="..\..\..\test\unit\queue\intrusive_segmented_queue_hp.cpp" />\r
+    <ClCompile Include="..\..\..\test\unit\queue\intrusive_tsigas_queue.cpp" />\r
+    <ClCompile Include="..\..\..\test\unit\queue\intrusive_vyukov_queue.cpp" />\r
     <ClCompile Include="..\..\..\test\unit\queue\moirqueue_dhp.cpp" />\r
     <ClCompile Include="..\..\..\test\unit\queue\moirqueue_hp.cpp" />\r
     <ClCompile Include="..\..\..\test\unit\queue\msqueue_dhp.cpp" />\r
@@ -59,6 +61,7 @@
   <ItemGroup>\r
     <ClInclude Include="..\..\..\test\unit\queue\test_bounded_queue.h" />\r
     <ClInclude Include="..\..\..\test\unit\queue\test_generic_queue.h" />\r
+    <ClInclude Include="..\..\..\test\unit\queue\test_intrusive_bounded_queue.h" />\r
     <ClInclude Include="..\..\..\test\unit\queue\test_intrusive_msqueue.h" />\r
     <ClInclude Include="..\..\..\test\unit\queue\test_intrusive_segmented_queue.h" />\r
     <ClInclude Include="..\..\..\test\unit\queue\test_segmented_queue.h" />\r
index 723ac426e7b431aee900e66ff9363ef04980385a..133fc42cbdffa8d323ef2b11afcd8b4f225643cd 100644 (file)
     <ClCompile Include="..\..\..\test\unit\queue\intrusive_segmented_queue_dhp.cpp">\r
       <Filter>Source Files</Filter>\r
     </ClCompile>\r
+    <ClCompile Include="..\..\..\test\unit\queue\intrusive_vyukov_queue.cpp">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="..\..\..\test\unit\queue\intrusive_tsigas_queue.cpp">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <ClInclude Include="..\..\..\test\unit\queue\test_generic_queue.h">\r
     <ClInclude Include="..\..\..\test\unit\queue\test_intrusive_segmented_queue.h">\r
       <Filter>Header Files</Filter>\r
     </ClInclude>\r
+    <ClInclude Include="..\..\..\test\unit\queue\test_intrusive_bounded_queue.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
   </ItemGroup>\r
 </Project>
\ No newline at end of file
diff --git a/projects/Win/vc14/hdr-test-queue.vcxproj b/projects/Win/vc14/hdr-test-queue.vcxproj
deleted file mode 100644 (file)
index b604c0b..0000000
+++ /dev/null
@@ -1,370 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
-  <ItemGroup Label="ProjectConfigurations">\r
-    <ProjectConfiguration Include="DebugVLD|Win32">\r
-      <Configuration>DebugVLD</Configuration>\r
-      <Platform>Win32</Platform>\r
-    </ProjectConfiguration>\r
-    <ProjectConfiguration Include="DebugVLD|x64">\r
-      <Configuration>DebugVLD</Configuration>\r
-      <Platform>x64</Platform>\r
-    </ProjectConfiguration>\r
-    <ProjectConfiguration Include="Debug|Win32">\r
-      <Configuration>Debug</Configuration>\r
-      <Platform>Win32</Platform>\r
-    </ProjectConfiguration>\r
-    <ProjectConfiguration Include="Debug|x64">\r
-      <Configuration>Debug</Configuration>\r
-      <Platform>x64</Platform>\r
-    </ProjectConfiguration>\r
-    <ProjectConfiguration Include="Release|Win32">\r
-      <Configuration>Release</Configuration>\r
-      <Platform>Win32</Platform>\r
-    </ProjectConfiguration>\r
-    <ProjectConfiguration Include="Release|x64">\r
-      <Configuration>Release</Configuration>\r
-      <Platform>x64</Platform>\r
-    </ProjectConfiguration>\r
-  </ItemGroup>\r
-  <PropertyGroup Label="Globals">\r
-    <ProjectGuid>{33664E63-8D24-4FF4-A744-9782EB711509}</ProjectGuid>\r
-    <RootNamespace>hdrtestqueue</RootNamespace>\r
-    <Keyword>Win32Proj</Keyword>\r
-    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>\r
-  </PropertyGroup>\r
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugVLD|Win32'" Label="Configuration">\r
-    <ConfigurationType>Application</ConfigurationType>\r
-    <CharacterSet>MultiByte</CharacterSet>\r
-    <PlatformToolset>v140</PlatformToolset>\r
-  </PropertyGroup>\r
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
-    <ConfigurationType>Application</ConfigurationType>\r
-    <CharacterSet>MultiByte</CharacterSet>\r
-    <WholeProgramOptimization>true</WholeProgramOptimization>\r
-    <PlatformToolset>v140</PlatformToolset>\r
-  </PropertyGroup>\r
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
-    <ConfigurationType>Application</ConfigurationType>\r
-    <CharacterSet>MultiByte</CharacterSet>\r
-    <PlatformToolset>v140</PlatformToolset>\r
-  </PropertyGroup>\r
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugVLD|x64'" Label="Configuration">\r
-    <ConfigurationType>Application</ConfigurationType>\r
-    <CharacterSet>MultiByte</CharacterSet>\r
-    <PlatformToolset>v140</PlatformToolset>\r
-  </PropertyGroup>\r
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
-    <ConfigurationType>Application</ConfigurationType>\r
-    <CharacterSet>MultiByte</CharacterSet>\r
-    <WholeProgramOptimization>true</WholeProgramOptimization>\r
-    <PlatformToolset>v140</PlatformToolset>\r
-  </PropertyGroup>\r
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
-    <ConfigurationType>Application</ConfigurationType>\r
-    <CharacterSet>MultiByte</CharacterSet>\r
-    <PlatformToolset>v140</PlatformToolset>\r
-  </PropertyGroup>\r
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
-  <ImportGroup Label="ExtensionSettings">\r
-  </ImportGroup>\r
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugVLD|Win32'" Label="PropertySheets">\r
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
-  </ImportGroup>\r
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
-  </ImportGroup>\r
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
-  </ImportGroup>\r
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugVLD|x64'" Label="PropertySheets">\r
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
-  </ImportGroup>\r
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
-  </ImportGroup>\r
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
-  </ImportGroup>\r
-  <PropertyGroup Label="UserMacros" />\r
-  <PropertyGroup>\r
-    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)..\..\..\bin\vc.$(PlatformToolset)\$(Platform)\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)..\..\..\obj\vc.$(PlatformToolset)\$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>\r
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)..\..\..\bin\vc.$(PlatformToolset)\$(Platform)\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)..\..\..\obj\vc.$(PlatformToolset)\$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>\r
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)..\..\..\bin\vc.$(PlatformToolset)\$(Platform)-release\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)..\..\..\obj\vc.$(PlatformToolset)\$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>\r
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)..\..\..\bin\vc.$(PlatformToolset)\$(Platform)-release\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)..\..\..\obj\vc.$(PlatformToolset)\$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>\r
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='DebugVLD|Win32'">$(SolutionDir)..\..\..\bin\vc.$(PlatformToolset)\$(Platform)\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='DebugVLD|Win32'">$(SolutionDir)..\..\..\obj\vc.$(PlatformToolset)\$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>\r
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='DebugVLD|Win32'">false</LinkIncremental>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='DebugVLD|x64'">$(SolutionDir)..\..\..\bin\vc.$(PlatformToolset)\$(Platform)\</OutDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='DebugVLD|x64'">$(SolutionDir)..\..\..\obj\vc.$(PlatformToolset)\$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>\r
-    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='DebugVLD|x64'">false</LinkIncremental>\r
-    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='DebugVLD|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
-    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='DebugVLD|Win32'" />\r
-    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='DebugVLD|Win32'" />\r
-    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='DebugVLD|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
-    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='DebugVLD|x64'" />\r
-    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='DebugVLD|x64'" />\r
-    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
-    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
-    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />\r
-    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
-    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />\r
-    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />\r
-    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>\r
-    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
-    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />\r
-    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>\r
-    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />\r
-    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />\r
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)_d</TargetName>\r
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectName)_d</TargetName>\r
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='DebugVLD|Win32'">$(ProjectName)_d</TargetName>\r
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='DebugVLD|x64'">$(ProjectName)_d</TargetName>\r
-  </PropertyGroup>\r
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
-    <ClCompile>\r
-      <AdditionalOptions>/bigobj /Zc:inline %(AdditionalOptions)</AdditionalOptions>\r
-      <Optimization>Disabled</Optimization>\r
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\test-hdr;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
-      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <MinimalRebuild>true</MinimalRebuild>\r
-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
-      <PrecompiledHeader>\r
-      </PrecompiledHeader>\r
-      <WarningLevel>Level3</WarningLevel>\r
-      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
-      <CallingConvention>Cdecl</CallingConvention>\r
-      <DisableSpecificWarnings>4520</DisableSpecificWarnings>\r
-    </ClCompile>\r
-    <Link>\r
-      <AdditionalDependencies>unit-prerequisites_d.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
-      <OutputFile>$(TargetPath)</OutputFile>\r
-      <AdditionalLibraryDirectories>$(BOOST_PATH)/stage32/lib;$(BOOST_PATH)/stage/lib;$(BOOST_PATH)/bin;$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
-      <GenerateDebugInformation>true</GenerateDebugInformation>\r
-      <SubSystem>Console</SubSystem>\r
-      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
-      <DataExecutionPrevention>\r
-      </DataExecutionPrevention>\r
-      <TargetMachine>MachineX86</TargetMachine>\r
-      <ForceFileOutput>MultiplyDefinedSymbolOnly</ForceFileOutput>\r
-    </Link>\r
-  </ItemDefinitionGroup>\r
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
-    <Midl>\r
-      <TargetEnvironment>X64</TargetEnvironment>\r
-    </Midl>\r
-    <ClCompile>\r
-      <AdditionalOptions>/bigobj /Zc:inline %(AdditionalOptions)</AdditionalOptions>\r
-      <Optimization>Disabled</Optimization>\r
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\test-hdr;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
-      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <MinimalRebuild>true</MinimalRebuild>\r
-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
-      <PrecompiledHeader>\r
-      </PrecompiledHeader>\r
-      <WarningLevel>Level3</WarningLevel>\r
-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
-      <CallingConvention>Cdecl</CallingConvention>\r
-      <DisableSpecificWarnings>4520</DisableSpecificWarnings>\r
-    </ClCompile>\r
-    <Link>\r
-      <AdditionalDependencies>unit-prerequisites_d.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
-      <OutputFile>$(TargetPath)</OutputFile>\r
-      <AdditionalLibraryDirectories>$(BOOST_PATH)/stage64/lib;$(BOOST_PATH)/bin;$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
-      <GenerateDebugInformation>true</GenerateDebugInformation>\r
-      <SubSystem>Console</SubSystem>\r
-      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
-      <DataExecutionPrevention>\r
-      </DataExecutionPrevention>\r
-      <TargetMachine>MachineX64</TargetMachine>\r
-      <ForceFileOutput>MultiplyDefinedSymbolOnly</ForceFileOutput>\r
-    </Link>\r
-  </ItemDefinitionGroup>\r
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
-    <ClCompile>\r
-      <AdditionalOptions>/bigobj /Zc:inline %(AdditionalOptions)</AdditionalOptions>\r
-      <Optimization>Full</Optimization>\r
-      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\r
-      <IntrinsicFunctions>true</IntrinsicFunctions>\r
-      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
-      <OmitFramePointers>false</OmitFramePointers>\r
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\test-hdr;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
-      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0500;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <StringPooling>true</StringPooling>\r
-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
-      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>\r
-      <PrecompiledHeader>\r
-      </PrecompiledHeader>\r
-      <WarningLevel>Level3</WarningLevel>\r
-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
-      <CallingConvention>Cdecl</CallingConvention>\r
-      <EnablePREfast>false</EnablePREfast>\r
-      <DisableSpecificWarnings>4520</DisableSpecificWarnings>\r
-    </ClCompile>\r
-    <Link>\r
-      <AdditionalDependencies>unit-prerequisites.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
-      <OutputFile>$(TargetPath)</OutputFile>\r
-      <AdditionalLibraryDirectories>$(BOOST_PATH)/stage32/lib;$(BOOST_PATH)/stage/lib;$(BOOST_PATH)/bin;$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
-      <GenerateDebugInformation>true</GenerateDebugInformation>\r
-      <SubSystem>Console</SubSystem>\r
-      <OptimizeReferences>true</OptimizeReferences>\r
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
-      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
-      <DataExecutionPrevention>\r
-      </DataExecutionPrevention>\r
-      <TargetMachine>MachineX86</TargetMachine>\r
-      <Profile>true</Profile>\r
-      <ForceFileOutput>MultiplyDefinedSymbolOnly</ForceFileOutput>\r
-    </Link>\r
-  </ItemDefinitionGroup>\r
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
-    <Midl>\r
-      <TargetEnvironment>X64</TargetEnvironment>\r
-    </Midl>\r
-    <ClCompile>\r
-      <AdditionalOptions>/bigobj /Zc:inline %(AdditionalOptions)</AdditionalOptions>\r
-      <Optimization>Full</Optimization>\r
-      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\r
-      <IntrinsicFunctions>true</IntrinsicFunctions>\r
-      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
-      <OmitFramePointers>false</OmitFramePointers>\r
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\test-hdr;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
-      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0501;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <StringPooling>true</StringPooling>\r
-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
-      <PrecompiledHeader>\r
-      </PrecompiledHeader>\r
-      <WarningLevel>Level3</WarningLevel>\r
-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
-      <CallingConvention>Cdecl</CallingConvention>\r
-      <EnablePREfast>false</EnablePREfast>\r
-      <DisableSpecificWarnings>4520</DisableSpecificWarnings>\r
-    </ClCompile>\r
-    <Link>\r
-      <AdditionalDependencies>unit-prerequisites.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
-      <OutputFile>$(TargetPath)</OutputFile>\r
-      <AdditionalLibraryDirectories>$(BOOST_PATH)/stage64/lib;$(BOOST_PATH)/bin;$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
-      <GenerateDebugInformation>true</GenerateDebugInformation>\r
-      <SubSystem>Console</SubSystem>\r
-      <OptimizeReferences>true</OptimizeReferences>\r
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
-      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>\r
-      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
-      <DataExecutionPrevention>\r
-      </DataExecutionPrevention>\r
-      <TargetMachine>MachineX64</TargetMachine>\r
-      <Profile>true</Profile>\r
-      <ForceFileOutput>MultiplyDefinedSymbolOnly</ForceFileOutput>\r
-    </Link>\r
-  </ItemDefinitionGroup>\r
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugVLD|Win32'">\r
-    <ClCompile>\r
-      <AdditionalOptions>/bigobj /Zc:inline %(AdditionalOptions)</AdditionalOptions>\r
-      <Optimization>Disabled</Optimization>\r
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\test-hdr;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
-      <PreprocessorDefinitions>CDS_USE_VLD;WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <MinimalRebuild>true</MinimalRebuild>\r
-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
-      <PrecompiledHeader>\r
-      </PrecompiledHeader>\r
-      <WarningLevel>Level3</WarningLevel>\r
-      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
-      <CallingConvention>Cdecl</CallingConvention>\r
-      <DisableSpecificWarnings>4520</DisableSpecificWarnings>\r
-    </ClCompile>\r
-    <Link>\r
-      <AdditionalDependencies>unit-prerequisites_d.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
-      <OutputFile>$(TargetPath)</OutputFile>\r
-      <AdditionalLibraryDirectories>$(BOOST_PATH)/stage32/lib;$(BOOST_PATH)/stage/lib;$(BOOST_PATH)/bin;$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
-      <GenerateDebugInformation>true</GenerateDebugInformation>\r
-      <SubSystem>Console</SubSystem>\r
-      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
-      <DataExecutionPrevention>\r
-      </DataExecutionPrevention>\r
-      <TargetMachine>MachineX86</TargetMachine>\r
-      <ForceFileOutput>MultiplyDefinedSymbolOnly</ForceFileOutput>\r
-    </Link>\r
-  </ItemDefinitionGroup>\r
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugVLD|x64'">\r
-    <Midl>\r
-      <TargetEnvironment>X64</TargetEnvironment>\r
-    </Midl>\r
-    <ClCompile>\r
-      <AdditionalOptions>/bigobj /Zc:inline %(AdditionalOptions)</AdditionalOptions>\r
-      <Optimization>Disabled</Optimization>\r
-      <AdditionalIncludeDirectories>$(SolutionDir)..\..\..;$(SolutionDir)..\..\..\tests\test-hdr;$(SolutionDir)..\..\..\tests;$(BOOST_PATH);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
-      <PreprocessorDefinitions>CDS_USE_VLD;WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;_SCL_SECURE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <MinimalRebuild>true</MinimalRebuild>\r
-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
-      <PrecompiledHeader>\r
-      </PrecompiledHeader>\r
-      <WarningLevel>Level3</WarningLevel>\r
-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
-      <CallingConvention>Cdecl</CallingConvention>\r
-      <DisableSpecificWarnings>4520</DisableSpecificWarnings>\r
-    </ClCompile>\r
-    <Link>\r
-      <AdditionalDependencies>unit-prerequisites_d.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
-      <OutputFile>$(TargetPath)</OutputFile>\r
-      <AdditionalLibraryDirectories>$(BOOST_PATH)/stage64/lib;$(BOOST_PATH)/bin;$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
-      <GenerateDebugInformation>true</GenerateDebugInformation>\r
-      <SubSystem>Console</SubSystem>\r
-      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
-      <DataExecutionPrevention>\r
-      </DataExecutionPrevention>\r
-      <TargetMachine>MachineX64</TargetMachine>\r
-      <ForceFileOutput>MultiplyDefinedSymbolOnly</ForceFileOutput>\r
-    </Link>\r
-  </ItemDefinitionGroup>\r
-  <ItemGroup>\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_basketqueue_dhp.cpp" />\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_basketqueue_hp.cpp" />\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_intrusive_basketqueue_dhp.cpp" />\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_intrusive_fcqueue.cpp" />\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_intrusive_basketqueue_hp.cpp" />\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_intrusive_moirqueue_dhp.cpp" />\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_intrusive_moirqueue_hp.cpp" />\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_intrusive_msqueue_dhp.cpp" />\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_intrusive_msqueue_hp.cpp" />\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_intrusive_optimisticqueue_dhp.cpp" />\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_intrusive_optimisticqueue_hp.cpp" />\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_intrusive_segmented_queue_dhp.cpp" />\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_intrusive_segmented_queue_hp.cpp" />\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_intrusive_tsigas_cycle_queue.cpp" />\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_intrusive_vyukovmpmc_cycle_queue.cpp" />\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_moirqueue_dhp.cpp" />\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_moirqueue_hp.cpp" />\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_msqueue_dhp.cpp" />\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_msqueue_hp.cpp" />\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_optimistic_dhp.cpp" />\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_optimistic_hp.cpp" />\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_queue_register.cpp" />\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_rwqueue.cpp" />\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_segmented_queue_dhp.cpp" />\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_segmented_queue_hp.cpp" />\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_tsigas_cycle_queue.cpp" />\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_vyukov_mpmc_cyclic.cpp" />\r
-  </ItemGroup>\r
-  <ItemGroup>\r
-    <ClInclude Include="..\..\..\tests\test-hdr\queue\hdr_intrusive_msqueue.h" />\r
-    <ClInclude Include="..\..\..\tests\test-hdr\queue\hdr_intrusive_segmented_queue.h" />\r
-    <ClInclude Include="..\..\..\tests\test-hdr\queue\hdr_queue.h" />\r
-    <ClInclude Include="..\..\..\tests\test-hdr\queue\hdr_segmented_queue.h" />\r
-  </ItemGroup>\r
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
-  <ImportGroup Label="ExtensionTargets">\r
-  </ImportGroup>\r
-</Project>
\ No newline at end of file
diff --git a/projects/Win/vc14/hdr-test-queue.vcxproj.filters b/projects/Win/vc14/hdr-test-queue.vcxproj.filters
deleted file mode 100644 (file)
index c99471b..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
-  <ItemGroup>\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_intrusive_basketqueue_hp.cpp">\r
-      <Filter>intrusive</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_intrusive_fcqueue.cpp">\r
-      <Filter>intrusive</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_intrusive_moirqueue_hp.cpp">\r
-      <Filter>intrusive</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_intrusive_msqueue_hp.cpp">\r
-      <Filter>intrusive</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_intrusive_optimisticqueue_hp.cpp">\r
-      <Filter>intrusive</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_intrusive_segmented_queue_hp.cpp">\r
-      <Filter>intrusive</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_intrusive_tsigas_cycle_queue.cpp">\r
-      <Filter>intrusive</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_intrusive_vyukovmpmc_cycle_queue.cpp">\r
-      <Filter>intrusive</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_rwqueue.cpp">\r
-      <Filter>container</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_segmented_queue_hp.cpp">\r
-      <Filter>container</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_vyukov_mpmc_cyclic.cpp">\r
-      <Filter>container</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_intrusive_moirqueue_dhp.cpp">\r
-      <Filter>intrusive</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_intrusive_msqueue_dhp.cpp">\r
-      <Filter>intrusive</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_moirqueue_dhp.cpp">\r
-      <Filter>container</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_moirqueue_hp.cpp">\r
-      <Filter>container</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_msqueue_dhp.cpp">\r
-      <Filter>container</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_msqueue_hp.cpp">\r
-      <Filter>container</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_queue_register.cpp" />\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_intrusive_basketqueue_dhp.cpp">\r
-      <Filter>intrusive</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_basketqueue_dhp.cpp">\r
-      <Filter>container</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_basketqueue_hp.cpp">\r
-      <Filter>container</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_intrusive_optimisticqueue_dhp.cpp">\r
-      <Filter>intrusive</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_optimistic_dhp.cpp">\r
-      <Filter>container</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_optimistic_hp.cpp">\r
-      <Filter>container</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_intrusive_segmented_queue_dhp.cpp">\r
-      <Filter>intrusive</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_segmented_queue_dhp.cpp">\r
-      <Filter>container</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="..\..\..\tests\test-hdr\queue\hdr_tsigas_cycle_queue.cpp">\r
-      <Filter>container</Filter>\r
-    </ClCompile>\r
-  </ItemGroup>\r
-  <ItemGroup>\r
-    <ClInclude Include="..\..\..\tests\test-hdr\queue\hdr_intrusive_msqueue.h">\r
-      <Filter>intrusive</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="..\..\..\tests\test-hdr\queue\hdr_intrusive_segmented_queue.h">\r
-      <Filter>intrusive</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="..\..\..\tests\test-hdr\queue\hdr_segmented_queue.h">\r
-      <Filter>container</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="..\..\..\tests\test-hdr\queue\hdr_queue.h">\r
-      <Filter>container</Filter>\r
-    </ClInclude>\r
-  </ItemGroup>\r
-  <ItemGroup>\r
-    <Filter Include="intrusive">\r
-      <UniqueIdentifier>{68aaf08b-6544-4d6a-b912-0935954efdf2}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="container">\r
-      <UniqueIdentifier>{a466b6f6-2b88-4c6e-84df-1f9d53122909}</UniqueIdentifier>\r
-    </Filter>\r
-  </ItemGroup>\r
-</Project>
\ No newline at end of file
index 012f946066ff338765ab93d5400646b2caedb057..c6a5f39954737d01edae782cf5e4dea325f4b776 100644 (file)
@@ -100,28 +100,6 @@ CDS_TESTHDR_LIST := \
     tests/test-hdr/list/hdr_michael_kv_rcu_shb.cpp \
     tests/test-hdr/list/hdr_michael_kv_rcu_sht.cpp
 
-CDS_TESTHDR_QUEUE := \
-    tests/test-hdr/queue/hdr_queue_register.cpp \
-    tests/test-hdr/queue/hdr_intrusive_fcqueue.cpp \
-    tests/test-hdr/queue/hdr_intrusive_segmented_queue_hp.cpp \
-    tests/test-hdr/queue/hdr_intrusive_segmented_queue_dhp.cpp \
-    tests/test-hdr/queue/hdr_intrusive_tsigas_cycle_queue.cpp \
-    tests/test-hdr/queue/hdr_intrusive_vyukovmpmc_cycle_queue.cpp \
-    tests/test-hdr/queue/hdr_basketqueue_hp.cpp \
-    tests/test-hdr/queue/hdr_basketqueue_dhp.cpp \
-    tests/test-hdr/queue/hdr_fcqueue.cpp \
-    tests/test-hdr/queue/hdr_moirqueue_hp.cpp \
-    tests/test-hdr/queue/hdr_moirqueue_dhp.cpp \
-    tests/test-hdr/queue/hdr_msqueue_hp.cpp \
-    tests/test-hdr/queue/hdr_msqueue_dhp.cpp \
-    tests/test-hdr/queue/hdr_optimistic_hp.cpp \
-    tests/test-hdr/queue/hdr_optimistic_dhp.cpp \
-    tests/test-hdr/queue/hdr_rwqueue.cpp \
-    tests/test-hdr/queue/hdr_segmented_queue_hp.cpp \
-    tests/test-hdr/queue/hdr_segmented_queue_dhp.cpp \
-    tests/test-hdr/queue/hdr_tsigas_cycle_queue.cpp \
-    tests/test-hdr/queue/hdr_vyukov_mpmc_cyclic.cpp
-
 CDS_TESTHDR_SET := \
     tests/test-hdr/set/hdr_intrusive_feldman_hashset_hp.cpp \
     tests/test-hdr/set/hdr_intrusive_feldman_hashset_dhp.cpp \
@@ -273,7 +251,6 @@ CDS_TESTHDR_MISC := \
     tests/test-hdr/misc/thread_init_fini.cpp
 
 CDS_TESTHDR_SOURCES := \
-    $(CDS_TESTHDR_QUEUE) \
     $(CDS_TESTHDR_MAP) \
     $(CDS_TESTHDR_LIST) \
     $(CDS_TESTHDR_SET) \
index 2a6eb52363259cb8075336bfab39411ff8c44fd4..37f0c3a9122f99c5e8d793e7d83c2c0e1828b115 100644 (file)
@@ -1,5 +1,3 @@
-CDS_TESTHDR_OFFSETOF_DEQUE := \
-
 CDS_TESTHDR_OFFSETOF_MAP := \
     tests/test-hdr/map/hdr_cuckoo_map.cpp 
 
@@ -67,22 +65,6 @@ CDS_TESTHDR_OFFSETOF_LIST := \
     tests/test-hdr/list/hdr_intrusive_michael_list_rcu_shb.cpp \
     tests/test-hdr/list/hdr_intrusive_michael_list_rcu_sht.cpp
 
-CDS_TESTHDR_OFFSETOF_QUEUE := \
-    tests/test-hdr/queue/hdr_intrusive_basketqueue_hp.cpp \
-    tests/test-hdr/queue/hdr_intrusive_basketqueue_dhp.cpp \
-    tests/test-hdr/queue/hdr_intrusive_moirqueue_hp.cpp \
-    tests/test-hdr/queue/hdr_intrusive_moirqueue_dhp.cpp \
-    tests/test-hdr/queue/hdr_intrusive_msqueue_hp.cpp \
-    tests/test-hdr/queue/hdr_intrusive_msqueue_dhp.cpp \
-    tests/test-hdr/queue/hdr_intrusive_optimisticqueue_hp.cpp \
-    tests/test-hdr/queue/hdr_intrusive_optimisticqueue_dhp.cpp
-
-CDS_TESTHDR_OFFSETOF_STACK := \
-    tests/test-hdr/stack/hdr_intrusive_treiber_stack_hp.cpp \
-    tests/test-hdr/stack/hdr_intrusive_treiber_stack_dhp.cpp \
-    tests/test-hdr/stack/hdr_intrusive_elimination_stack_hp.cpp \
-    tests/test-hdr/stack/hdr_intrusive_elimination_stack_dhp.cpp 
-
 CDS_TESTHDR_OFFSETOF_TREE := \
     tests/test-hdr/tree/hdr_intrusive_ellen_bintree_hp_member.cpp \
     tests/test-hdr/tree/hdr_intrusive_ellen_bintree_dhp_member.cpp \
@@ -93,9 +75,6 @@ CDS_TESTHDR_OFFSETOF_TREE := \
     tests/test-hdr/tree/hdr_intrusive_ellen_bintree_rcu_sht_member.cpp
 
 CDS_TESTHDR_OFFSETOF_SOURCES := \
-       $(CDS_TESTHDR_OFFSETOF_QUEUE) \
-       $(CDS_TESTHDR_OFFSETOF_STACK) \
-       $(CDS_TESTHDR_OFFSETOF_DEQUE) \
        $(CDS_TESTHDR_OFFSETOF_MAP) \
        $(CDS_TESTHDR_OFFSETOF_SET) \
        $(CDS_TESTHDR_OFFSETOF_LIST) \
index 62f6c2c09e187e0b6034bea5599d176113ff7d18..00310999aa1d301b521e880ef3707343de3b74fd 100644 (file)
@@ -27,6 +27,8 @@ set(CDSGTEST_QUEUE_SOURCES
     intrusive_optqueue_dhp.cpp
     intrusive_segmented_queue_hp.cpp
     intrusive_segmented_queue_dhp.cpp
+    intrusive_tsigas_queue.cpp
+    intrusive_vyukov_queue.cpp
 )
 
 include_directories(
diff --git a/test/unit/queue/intrusive_tsigas_queue.cpp b/test/unit/queue/intrusive_tsigas_queue.cpp
new file mode 100644 (file)
index 0000000..526d836
--- /dev/null
@@ -0,0 +1,112 @@
+/*
+    This file is a part of libcds - Concurrent Data Structures library
+
+    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
+
+    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:
+
+    * Redistributions of source code must retain the above copyright notice, this
+      list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+    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.     
+*/
+
+#include <cds/intrusive/tsigas_cycle_queue.h>
+#include "test_intrusive_bounded_queue.h"
+
+namespace {
+
+    class IntrusiveTsigasQueue : public cds_test::intrusive_bounded_queue
+    {
+    protected:
+        struct disposer {
+            void operator()( item * p )
+            {
+                ++p->nDisposeCount;
+            }
+        };
+    };
+
+    static const size_t c_Capacity = 64;
+    static const size_t c_RealCapacity = c_Capacity - 2;
+
+    TEST_F( IntrusiveTsigasQueue, defaulted )
+    {
+        cds::intrusive::TsigasCycleQueue< item > q( c_Capacity );
+        ASSERT_EQ( q.capacity(), c_RealCapacity );
+        test( q );
+    }
+
+    TEST_F( IntrusiveTsigasQueue, disposer )
+    {
+        struct traits : public cds::intrusive::tsigas_queue::traits
+        {
+            typedef IntrusiveTsigasQueue::disposer disposer;
+            typedef cds::atomicity::item_counter item_counter;
+        };
+
+        cds::intrusive::TsigasCycleQueue< item, traits > q( c_Capacity );
+        ASSERT_EQ( q.capacity(), c_RealCapacity );
+        test( q );
+    }
+
+    TEST_F( IntrusiveTsigasQueue, static_buffer )
+    {
+        struct traits : public cds::intrusive::tsigas_queue::traits
+        {
+            typedef cds::opt::v::static_buffer< int, c_Capacity > buffer;
+            typedef IntrusiveTsigasQueue::disposer disposer;
+        };
+
+        cds::intrusive::TsigasCycleQueue< item, traits > q;
+        ASSERT_EQ( q.capacity(), c_RealCapacity );
+        test( q );
+    }
+
+    TEST_F( IntrusiveTsigasQueue, dynamic_buffer )
+    {
+        typedef typename cds::intrusive::tsigas_queue::make_traits<
+            cds::opt::buffer< cds::opt::v::dynamic_buffer< int >>
+            ,cds::opt::item_counter< cds::atomicity::item_counter >
+            ,cds::opt::back_off< cds::backoff::pause >
+            ,cds::intrusive::opt::disposer< disposer >
+        >::type traits;
+
+        cds::intrusive::TsigasCycleQueue< item, traits > q( c_Capacity );
+        ASSERT_EQ( q.capacity(), c_RealCapacity );
+        test( q );
+    }
+
+    TEST_F( IntrusiveTsigasQueue, padding )
+    {
+        struct traits : public cds::intrusive::tsigas_queue::traits
+        {
+            typedef cds::opt::v::static_buffer< int, c_Capacity > buffer;
+            typedef IntrusiveTsigasQueue::disposer disposer;
+            enum { padding = 16 | cds::opt::padding_tiny_data_only };
+        };
+
+        cds::intrusive::TsigasCycleQueue< item, traits > q;
+        ASSERT_EQ( q.capacity(), c_RealCapacity );
+        test( q );
+    }
+
+
+} // namespace
diff --git a/test/unit/queue/intrusive_vyukov_queue.cpp b/test/unit/queue/intrusive_vyukov_queue.cpp
new file mode 100644 (file)
index 0000000..9820404
--- /dev/null
@@ -0,0 +1,112 @@
+/*
+    This file is a part of libcds - Concurrent Data Structures library
+
+    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
+
+    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:
+
+    * Redistributions of source code must retain the above copyright notice, this
+      list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+    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.     
+*/
+
+#include <cds/intrusive/vyukov_mpmc_cycle_queue.h>
+#include "test_intrusive_bounded_queue.h"
+
+namespace {
+
+    class IntrusiveVyukovQueue : public cds_test::intrusive_bounded_queue
+    {
+    protected:
+        struct disposer {
+            void operator()( item * p )
+            {
+                ++p->nDisposeCount;
+            }
+        };
+    };
+
+    static const size_t c_Capacity = 64;
+    static const size_t c_RealCapacity = c_Capacity;
+
+    TEST_F( IntrusiveVyukovQueue, defaulted )
+    {
+        cds::intrusive::VyukovMPMCCycleQueue< item > q( c_Capacity );
+        ASSERT_EQ( q.capacity(), c_RealCapacity );
+        test( q );
+    }
+
+    TEST_F( IntrusiveVyukovQueue, disposer )
+    {
+        struct traits : public cds::intrusive::vyukov_queue::traits
+        {
+            typedef IntrusiveVyukovQueue::disposer disposer;
+            typedef cds::atomicity::item_counter item_counter;
+        };
+
+        cds::intrusive::VyukovMPMCCycleQueue< item, traits > q( c_Capacity );
+        ASSERT_EQ( q.capacity(), c_RealCapacity );
+        test( q );
+    }
+
+    TEST_F( IntrusiveVyukovQueue, static_buffer )
+    {
+        struct traits : public cds::intrusive::vyukov_queue::traits
+        {
+            typedef cds::opt::v::static_buffer< int, c_Capacity > buffer;
+            typedef IntrusiveVyukovQueue::disposer disposer;
+        };
+
+        cds::intrusive::VyukovMPMCCycleQueue< item, traits > q;
+        ASSERT_EQ( q.capacity(), c_RealCapacity );
+        test( q );
+    }
+
+    TEST_F( IntrusiveVyukovQueue, dynamic_buffer )
+    {
+        typedef typename cds::intrusive::vyukov_queue::make_traits<
+            cds::opt::buffer< cds::opt::v::dynamic_buffer< int >>
+            ,cds::opt::item_counter< cds::atomicity::item_counter >
+            ,cds::opt::back_off< cds::backoff::pause >
+            ,cds::intrusive::opt::disposer< disposer >
+        >::type traits;
+
+        cds::intrusive::VyukovMPMCCycleQueue< item, traits > q( c_Capacity );
+        ASSERT_EQ( q.capacity(), c_RealCapacity );
+        test( q );
+    }
+
+    TEST_F( IntrusiveVyukovQueue, padding )
+    {
+        struct traits : public cds::intrusive::vyukov_queue::traits
+        {
+            typedef cds::opt::v::static_buffer< int, c_Capacity > buffer;
+            typedef IntrusiveVyukovQueue::disposer disposer;
+            enum { padding = 16 | cds::opt::padding_tiny_data_only };
+        };
+
+        cds::intrusive::VyukovMPMCCycleQueue< item, traits > q;
+        ASSERT_EQ( q.capacity(), c_RealCapacity );
+        test( q );
+    }
+
+
+} // namespace
diff --git a/test/unit/queue/test_intrusive_bounded_queue.h b/test/unit/queue/test_intrusive_bounded_queue.h
new file mode 100644 (file)
index 0000000..3c445f8
--- /dev/null
@@ -0,0 +1,151 @@
+/*
+    This file is a part of libcds - Concurrent Data Structures library
+
+    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
+
+    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:
+
+    * Redistributions of source code must retain the above copyright notice, this
+      list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+    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.     
+*/
+
+#ifndef CDSUNIT_QUEUE_TEST_INTRUSIVE_BOUNDED_QUEUE_H
+#define CDSUNIT_QUEUE_TEST_INTRUSIVE_BOUNDED_QUEUE_H
+
+#include <cds_test/check_size.h>
+#include <vector>
+\r
+namespace cds_test {\r
+\r
+    class intrusive_bounded_queue : public ::testing::Test\r
+    {\r
+    protected:\r
+        struct item {
+            int nVal;
+            int nDisposeCount;
+
+            item()
+                : nDisposeCount( 0 )
+            {}
+        };
+\r
+    protected:\r
+        template <typename Queue>\r
+        void test( Queue& q )\r
+        {\r
+            typedef typename Queue::value_type value_type;
+            value_type it;
+
+            const size_t nSize = q.capacity();
+
+            ASSERT_TRUE( q.empty() );
+            ASSERT_CONTAINER_SIZE( q, 0 );
+
+            std::vector< value_type > arr;
+            arr.resize( nSize );
+            for ( size_t i = 0; i < nSize; ++i )
+                arr[i].nVal = static_cast<int>(i);
+
+            // push
+            for ( auto& i : arr ) {
+                if ( i.nVal & 1 ) {
+                    ASSERT_TRUE( q.push( i ));
+                }
+                else {
+                    ASSERT_TRUE( q.enqueue( i ));
+                }
+                ASSERT_CONTAINER_SIZE( q, i.nVal + 1 );
+                ASSERT_FALSE( q.empty() );
+            }
+
+            ASSERT_CONTAINER_SIZE( q, q.capacity() );
+
+            // pop
+            int val = 0;
+            while ( !q.empty() ) {
+                value_type * v;
+                if ( val & 1 )
+                    v = q.pop();
+                else
+                    v = q.dequeue();
+
+                ASSERT_TRUE( v != nullptr );
+                ASSERT_EQ( v->nVal, val );
+                ++val;
+                ASSERT_CONTAINER_SIZE( q, nSize - static_cast<size_t>( val ));
+            }
+            ASSERT_EQ( val, static_cast<int>( nSize ));
+
+            ASSERT_TRUE( q.empty() );
+            ASSERT_CONTAINER_SIZE( q, 0 );
+
+            // pop from empty queue
+            {
+                value_type * v = q.pop();
+                ASSERT_TRUE( v == nullptr );
+                ASSERT_TRUE( q.empty() );
+                ASSERT_CONTAINER_SIZE( q, 0 );
+            }
+
+            // clear
+            for ( auto& i : arr ) {
+                ASSERT_TRUE( q.push( i ) );
+            }
+            ASSERT_FALSE( q.empty() );
+            ASSERT_CONTAINER_SIZE( q, q.capacity() );
+            q.clear();
+            ASSERT_TRUE( q.empty() );
+            ASSERT_CONTAINER_SIZE( q, 0 );
+
+            if ( std::is_same<typename Queue::disposer, cds::intrusive::opt::v::empty_disposer>::value ) {
+                // no disposer
+                for ( auto& i : arr ) {
+                    ASSERT_EQ( i.nDisposeCount, 0 );
+                }
+            }
+            else {
+                // check the disposer has been called
+                for ( auto& i : arr ) {
+                    ASSERT_EQ( i.nDisposeCount, 1 );
+                }
+            }
+
+            // clear with disposer
+            for ( auto& i : arr ) {
+                ASSERT_TRUE( q.push( i ) );
+                i.nDisposeCount = 0;
+            }
+            ASSERT_FALSE( q.empty() );
+            ASSERT_CONTAINER_SIZE( q, q.capacity() );
+            q.clear( []( value_type * p ) { p->nDisposeCount = p->nVal + 1; } );
+            ASSERT_TRUE( q.empty() );
+            ASSERT_CONTAINER_SIZE( q, 0 );
+            // check the disposer has not been called
+            for ( auto& i : arr ) {
+                ASSERT_EQ( i.nDisposeCount, i.nVal + 1 );
+            }
+        }\r
+    };\r
+\r
+} // namespace cds_test\r
+
+#endif // CDSUNIT_QUEUE_TEST_INTRUSIVE_BOUNDED_QUEUE_H
index f82e2d5c060745c06c51bc6038a03a64c7df3c2d..6ab9b689199fe5eb3603150f378cb0e10aa9cbd8 100644 (file)
@@ -102,7 +102,7 @@ namespace {
         struct traits : public cds::container::tsigas_queue::traits
         {
             typedef cds::opt::v::dynamic_buffer<int> buffer;
-            enum { alignment = 16 };
+            enum { padding = 16 };
         };
         typedef cds::container::TsigasCycleQueue< int, traits > test_queue;
 
diff --git a/tests/test-hdr/queue/hdr_basketqueue_dhp.cpp b/tests/test-hdr/queue/hdr_basketqueue_dhp.cpp
deleted file mode 100644 (file)
index 597cee1..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
-    This file is a part of libcds - Concurrent Data Structures library
-
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
-
-    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:
-
-    * Redistributions of source code must retain the above copyright notice, this
-      list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    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.     
-*/
-
-#include <cds/gc/dhp.h>
-#include <cds/container/basket_queue.h>
-
-#include "queue/hdr_queue.h"
-
-namespace queue {
-
-    void HdrTestQueue::BasketQueue_DHP()
-    {
-        typedef cds::container::BasketQueue< cds::gc::DHP, int > queue_type;
-        test_no_ic< queue_type >();
-    }
-
-    void HdrTestQueue::BasketQueue_DHP_Counted()
-    {
-        struct traits : public cds::container::basket_queue::traits
-        {
-            typedef cds::atomicity::item_counter item_counter;
-        };
-        typedef cds::container::BasketQueue< cds::gc::DHP, int, traits > queue_type;
-        test_ic< queue_type >();
-    }
-
-    void HdrTestQueue::BasketQueue_DHP_relax()
-    {
-        struct traits : public
-            cds::container::basket_queue::make_traits <
-                cds::opt::memory_model< cds::opt::v::relaxed_ordering>
-            > ::type
-        {};
-        typedef cds::container::BasketQueue< cds::gc::DHP, int, traits > queue_type;
-        test_no_ic< queue_type >();
-    }
-
-    void HdrTestQueue::BasketQueue_DHP_Counted_relax()
-    {
-        typedef cds::container::BasketQueue< cds::gc::DHP, int,
-            typename cds::container::basket_queue::make_traits <
-                cds::opt::item_counter< cds::atomicity::item_counter >
-                ,cds::opt::memory_model< cds::opt::v::relaxed_ordering>
-            >::type
-        > queue_type;
-        test_ic< queue_type >();
-    }
-
-    void HdrTestQueue::BasketQueue_DHP_seqcst()
-    {
-        struct traits : public cds::container::basket_queue::traits
-        {
-            typedef cds::opt::v::sequential_consistent memory_model;
-        };
-        typedef cds::container::BasketQueue< cds::gc::DHP, int, traits > queue_type;
-        test_no_ic< queue_type >();
-    }
-
-    void HdrTestQueue::BasketQueue_DHP_Counted_seqcst()
-    {
-        typedef cds::container::BasketQueue < cds::gc::DHP, int,
-            typename cds::container::basket_queue::make_traits <
-                cds::opt::item_counter< cds::atomicity::item_counter >
-                ,cds::opt::memory_model< cds::opt::v::sequential_consistent>
-            >::type
-        > queue_type;
-        test_ic< queue_type >();
-    }
-
-    void HdrTestQueue::BasketQueue_DHP_relax_align()
-    {
-        typedef cds::container::BasketQueue < cds::gc::DHP, int,
-            typename cds::container::basket_queue::make_traits <
-                cds::opt::memory_model< cds::opt::v::relaxed_ordering>
-                ,cds::opt::padding< 16 >
-            >::type
-        > queue_type;
-        test_no_ic< queue_type >();
-    }
-
-    void HdrTestQueue::BasketQueue_DHP_Counted_relax_align()
-    {
-        struct traits : public cds::container::basket_queue::traits
-        {
-            typedef cds::atomicity::item_counter item_counter;
-            typedef cds::opt::v::relaxed_ordering memory_model;
-            enum { padding = 32 };
-        };
-        typedef cds::container::BasketQueue < cds::gc::DHP, int, traits > queue_type;
-        test_ic< queue_type >();
-    }
-
-    void HdrTestQueue::BasketQueue_DHP_seqcst_align()
-    {
-        typedef cds::container::BasketQueue < cds::gc::DHP, int,
-            typename cds::container::basket_queue::make_traits <
-                cds::opt::memory_model< cds::opt::v::sequential_consistent>
-                , cds::opt::padding< cds::opt::no_special_padding >
-            > ::type
-        > queue_type;
-        test_no_ic< queue_type >();
-    }
-
-    void HdrTestQueue::BasketQueue_DHP_Counted_seqcst_align()
-    {
-        typedef cds::container::BasketQueue < cds::gc::DHP, int,
-            typename cds::container::basket_queue::make_traits <
-                cds::opt::item_counter< cds::atomicity::item_counter >
-                ,cds::opt::memory_model< cds::opt::v::sequential_consistent>
-                ,cds::opt::padding< cds::opt::cache_line_padding >
-            > ::type
-        > queue_type;
-        test_ic< queue_type >();
-    }
-
-}   // namespace queue
diff --git a/tests/test-hdr/queue/hdr_basketqueue_hp.cpp b/tests/test-hdr/queue/hdr_basketqueue_hp.cpp
deleted file mode 100644 (file)
index d2f062a..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
-    This file is a part of libcds - Concurrent Data Structures library
-
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
-
-    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:
-
-    * Redistributions of source code must retain the above copyright notice, this
-      list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    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.     
-*/
-
-#include <cds/gc/hp.h>
-#include <cds/container/basket_queue.h>
-
-#include "queue/hdr_queue.h"
-
-namespace queue {
-
-    void HdrTestQueue::BasketQueue_HP()
-    {
-        typedef cds::container::BasketQueue< cds::gc::HP, int > queue_type;
-        test_no_ic< queue_type >();
-    }
-
-    void HdrTestQueue::BasketQueue_HP_Counted()
-    {
-        struct traits : public cds::container::basket_queue::traits
-        {
-            typedef cds::atomicity::item_counter item_counter;
-        };
-        typedef cds::container::BasketQueue< cds::gc::HP, int, traits > queue_type;
-        test_ic< queue_type >();
-    }
-
-    void HdrTestQueue::BasketQueue_HP_relax()
-    {
-        struct traits : public
-            cds::container::basket_queue::make_traits <
-                cds::opt::memory_model< cds::opt::v::relaxed_ordering>
-            > ::type
-        {};
-        typedef cds::container::BasketQueue< cds::gc::HP, int, traits > queue_type;
-        test_no_ic< queue_type >();
-    }
-
-    void HdrTestQueue::BasketQueue_HP_Counted_relax()
-    {
-        typedef cds::container::BasketQueue< cds::gc::HP, int,
-            typename cds::container::basket_queue::make_traits <
-                cds::opt::item_counter< cds::atomicity::item_counter >
-                ,cds::opt::memory_model< cds::opt::v::relaxed_ordering>
-            >::type
-        > queue_type;
-        test_ic< queue_type >();
-    }
-
-    void HdrTestQueue::BasketQueue_HP_seqcst()
-    {
-        struct traits : public cds::container::basket_queue::traits
-        {
-            typedef cds::opt::v::sequential_consistent memory_model;
-        };
-        typedef cds::container::BasketQueue< cds::gc::HP, int, traits > queue_type;
-        test_no_ic< queue_type >();
-    }
-
-    void HdrTestQueue::BasketQueue_HP_Counted_seqcst()
-    {
-        typedef cds::container::BasketQueue < cds::gc::HP, int,
-            typename cds::container::basket_queue::make_traits <
-                cds::opt::item_counter< cds::atomicity::item_counter >
-                ,cds::opt::memory_model< cds::opt::v::sequential_consistent>
-            >::type
-        > queue_type;
-        test_ic< queue_type >();
-    }
-
-    void HdrTestQueue::BasketQueue_HP_relax_align()
-    {
-        typedef cds::container::BasketQueue < cds::gc::HP, int,
-            typename cds::container::basket_queue::make_traits <
-                cds::opt::memory_model< cds::opt::v::relaxed_ordering>
-                ,cds::opt::padding< 16 >
-            >::type
-        > queue_type;
-        test_no_ic< queue_type >();
-    }
-
-    void HdrTestQueue::BasketQueue_HP_Counted_relax_align()
-    {
-        struct traits : public cds::container::basket_queue::traits
-        {
-            typedef cds::atomicity::item_counter item_counter;
-            typedef cds::opt::v::relaxed_ordering memory_model;
-            enum { padding = 32 };
-        };
-        typedef cds::container::BasketQueue < cds::gc::HP, int, traits > queue_type;
-        test_ic< queue_type >();
-    }
-
-    void HdrTestQueue::BasketQueue_HP_seqcst_align()
-    {
-        typedef cds::container::BasketQueue < cds::gc::HP, int,
-            typename cds::container::basket_queue::make_traits <
-                cds::opt::memory_model< cds::opt::v::sequential_consistent>
-                , cds::opt::padding< cds::opt::no_special_padding >
-            > ::type
-        > queue_type;
-        test_no_ic< queue_type >();
-    }
-
-    void HdrTestQueue::BasketQueue_HP_Counted_seqcst_align()
-    {
-        typedef cds::container::BasketQueue < cds::gc::HP, int,
-            typename cds::container::basket_queue::make_traits <
-                cds::opt::item_counter< cds::atomicity::item_counter >
-                ,cds::opt::memory_model< cds::opt::v::sequential_consistent>
-                ,cds::opt::padding< cds::opt::cache_line_padding >
-            > ::type
-        > queue_type;
-        test_ic< queue_type >();
-    }
-
-}   // namespace queue
diff --git a/tests/test-hdr/queue/hdr_fcqueue.cpp b/tests/test-hdr/queue/hdr_fcqueue.cpp
deleted file mode 100644 (file)
index f93e54e..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
-    This file is a part of libcds - Concurrent Data Structures library
-
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
-
-    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:
-
-    * Redistributions of source code must retain the above copyright notice, this
-      list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    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.     
-*/
-
-#include <cds/container/fcqueue.h>
-#include "queue/hdr_fcqueue.h"
-
-#include <list>
-
-namespace queue {
-
-    void HdrFCQueue::FCQueue_deque()
-    {
-        typedef cds::container::FCQueue<int> queue_type;
-        testFCQueue<queue_type>();
-    }
-
-    void HdrFCQueue::FCQueue_deque_elimination()
-    {
-        typedef cds::container::FCQueue<int, std::queue< int, std::deque<int> >,
-            cds::container::fcqueue::make_traits<
-                cds::opt::enable_elimination< true >
-            >::type
-        > queue_type;
-        testFCQueue<queue_type>();
-    }
-
-    void HdrFCQueue::FCQueue_deque_mutex()
-    {
-        typedef cds::container::FCQueue<int, std::queue< int, std::deque<int> >,
-            cds::container::fcqueue::make_traits<
-                cds::opt::lock_type< std::mutex >
-            >::type
-        > queue_type;
-        testFCQueue<queue_type>();
-    }
-
-    void HdrFCQueue::FCQueue_deque_stat()
-    {
-        typedef cds::container::FCQueue<int, std::queue< int, std::deque<int> >,
-            cds::container::fcqueue::make_traits<
-                cds::opt::stat< cds::container::fcqueue::stat<> >
-            >::type
-        > queue_type;
-        testFCQueue<queue_type>();
-    }
-
-    //
-    void HdrFCQueue::FCQueue_list()
-    {
-        typedef cds::container::FCQueue<int, std::queue< int, std::list<int> > > queue_type;
-        testFCQueue<queue_type>();
-    }
-
-    void HdrFCQueue::FCQueue_list_elimination()
-    {
-        typedef cds::container::FCQueue<int, std::queue< int, std::list<int> >,
-            cds::container::fcqueue::make_traits<
-                cds::opt::enable_elimination< true >
-            >::type
-        > queue_type;
-        testFCQueue<queue_type>();
-    }
-
-    void HdrFCQueue::FCQueue_list_mutex()
-    {
-        typedef cds::container::FCQueue<int, std::queue<int, std::list<int> >,
-            cds::container::fcqueue::make_traits<
-                cds::opt::lock_type< std::mutex >
-            >::type
-        > queue_type;
-        testFCQueue<queue_type>();
-    }
-
-    void HdrFCQueue::FCQueue_list_stat()
-    {
-        struct queue_traits : public cds::container::fcqueue::traits
-        {
-            typedef cds::container::fcqueue::stat<> stat;
-        };
-        typedef cds::container::FCQueue<int, std::queue< int, std::list<int> >, queue_traits > queue_type;
-        testFCQueue<queue_type>();
-    }
-
-} // namespace queue
diff --git a/tests/test-hdr/queue/hdr_fcqueue.h b/tests/test-hdr/queue/hdr_fcqueue.h
deleted file mode 100644 (file)
index cd15a21..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
-    This file is a part of libcds - Concurrent Data Structures library
-
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
-
-    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:
-
-    * Redistributions of source code must retain the above copyright notice, this
-      list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    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.     
-*/
-
-#ifndef CDSTEST_HDR_FCQUEUE_H
-#define CDSTEST_HDR_FCQUEUE_H
-
-#include "cppunit/cppunit_proxy.h"
-#include <cds/details/defs.h>
-
-namespace queue {
-
-    //
-    // Test queue operation in single thread mode
-    //
-    class HdrFCQueue: public CppUnitMini::TestCase
-    {
-    protected:
-        template <class Queue>
-        void testNoItemCounter()
-        {
-            Queue   q;
-            test_with( q );
-            test_emplace( q );
-        }
-
-        template <class Queue>
-        void test_with( Queue& q )
-        {
-            int     it;
-            int     nPrev;
-
-            for ( size_t i = 0; i < 3; ++i ) {
-                CPPUNIT_ASSERT( q.empty() );
-#ifndef _DEBUG
-                CPPUNIT_ASSERT( q.size() == 0 );
-#endif
-                CPPUNIT_ASSERT( q.enqueue( 1 ) );
-                CPPUNIT_ASSERT( !q.empty() );
-                CPPUNIT_ASSERT( q.push( 10 ) );
-                CPPUNIT_ASSERT( !q.empty() );
-#ifndef _DEBUG
-                CPPUNIT_ASSERT( q.size() == 0 )     ;   // no queue's item counter!
-#endif
-
-                it = -1;
-                CPPUNIT_ASSERT( q.pop( it ) );
-                CPPUNIT_ASSERT( it == 1 );
-                CPPUNIT_ASSERT( !q.empty() );
-                CPPUNIT_ASSERT( q.dequeue( it ) );
-                CPPUNIT_ASSERT( it == 10 );
-#ifndef _DEBUG
-                CPPUNIT_ASSERT( q.size() == 0 );
-#endif
-                CPPUNIT_ASSERT( q.empty() );
-                it += 2009;
-                nPrev = it;
-                CPPUNIT_ASSERT( !q.dequeue( it ) );
-                CPPUNIT_ASSERT( it == nPrev )       ;   // it must not be changed!
-            }
-        }
-
-        template <class Queue>
-        void test_emplace( Queue& q )
-        {
-            int     it;
-            for ( size_t i = 0; i < 3; ++i ) {
-                CPPUNIT_ASSERT( q.emplace( static_cast<int>( i * 42 )) );
-                CPPUNIT_ASSERT( !q.empty() );
-                it = -1;
-                CPPUNIT_ASSERT( q.pop( it ));
-                CPPUNIT_ASSERT( it == static_cast<int>( i * 42 ));
-                CPPUNIT_ASSERT( q.empty() );
-            }
-        }
-
-        template <class Queue>
-        void testWithItemCounter()
-        {
-            Queue   q;
-            test_ic_with( q );
-            test_emplace_ic( q );
-        }
-
-        template <class Queue>
-        void testFCQueue()
-        {
-            Queue   q;
-            test_ic_with( q );
-        }
-
-        template <class Queue>
-        void test_ic_with( Queue& q )
-        {
-            int     it;
-            int     nPrev;
-
-            for ( size_t i = 0; i < 3; ++i ) {
-                CPPUNIT_ASSERT( q.empty() );
-                CPPUNIT_ASSERT( q.size() == 0 );
-                CPPUNIT_ASSERT( q.enqueue( 1 ) );
-                CPPUNIT_ASSERT( q.size() == 1 );
-                CPPUNIT_ASSERT( !q.empty() );
-                CPPUNIT_ASSERT( q.push( 10 ) );
-                CPPUNIT_ASSERT( !q.empty() );
-                CPPUNIT_ASSERT( q.size() == 2 );
-
-                it = -1;
-                CPPUNIT_ASSERT( q.pop( it ) );
-                CPPUNIT_ASSERT( it == 1 );
-                CPPUNIT_ASSERT( !q.empty() );
-                CPPUNIT_ASSERT( q.size() == 1 );
-                CPPUNIT_ASSERT( q.dequeue( it ) );
-                CPPUNIT_ASSERT( it == 10 );
-                CPPUNIT_ASSERT( q.size() == 0 );
-                CPPUNIT_ASSERT( q.empty() );
-                CPPUNIT_ASSERT( q.size() == 0 );
-                it += 2009;
-                nPrev = it;
-                CPPUNIT_ASSERT( !q.dequeue( it ) );
-                CPPUNIT_ASSERT( it == nPrev )       ;   // it must not be changed!
-
-                CPPUNIT_ASSERT( q.empty() );
-                CPPUNIT_ASSERT( q.size() == 0 );
-            }
-        }
-
-        template <class Queue>
-        void test_emplace_ic( Queue& q )
-        {
-            int     it = 0;
-            for ( size_t i = 0; i < 3; ++i ) {
-                CPPUNIT_ASSERT( q.emplace( (int) i * 10 ) );
-                CPPUNIT_ASSERT( !q.empty() );
-                CPPUNIT_ASSERT( q.size() == 1 );
-                CPPUNIT_ASSERT( q.pop( it ));
-                CPPUNIT_ASSERT( it == (int) i * 10 );
-                CPPUNIT_ASSERT( q.empty() );
-                CPPUNIT_ASSERT( q.size() == 0 );
-            }
-        }
-
-    public:
-        void FCQueue_deque();
-        void FCQueue_deque_elimination();
-        void FCQueue_deque_mutex();
-        void FCQueue_deque_stat();
-        void FCQueue_list();
-        void FCQueue_list_elimination();
-        void FCQueue_list_mutex();
-        void FCQueue_list_stat();
-
-        CPPUNIT_TEST_SUITE(HdrFCQueue)
-            CPPUNIT_TEST(FCQueue_deque)
-            CPPUNIT_TEST(FCQueue_deque_elimination)
-            CPPUNIT_TEST(FCQueue_deque_mutex)
-            CPPUNIT_TEST(FCQueue_deque_stat)
-            CPPUNIT_TEST(FCQueue_list)
-            CPPUNIT_TEST(FCQueue_list_elimination)
-            CPPUNIT_TEST(FCQueue_list_mutex)
-            CPPUNIT_TEST(FCQueue_list_stat)
-        CPPUNIT_TEST_SUITE_END();
-
-    };
-} // namespace queue
-
-#endif // #ifndef CDSTEST_HDR_FCQUEUE_H
diff --git a/tests/test-hdr/queue/hdr_intrusive_basketqueue_dhp.cpp b/tests/test-hdr/queue/hdr_intrusive_basketqueue_dhp.cpp
deleted file mode 100644 (file)
index 4c99c10..0000000
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
-    This file is a part of libcds - Concurrent Data Structures library
-
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
-
-    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:
-
-    * Redistributions of source code must retain the above copyright notice, this
-      list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    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.     
-*/
-
-#include "hdr_intrusive_msqueue.h"
-#include <cds/gc/dhp.h>
-#include <cds/intrusive/basket_queue.h>
-
-namespace queue {
-
-#define TEST(X) void IntrusiveQueueHeaderTest::test_##X() { test_basket<X>(); }
-
-    namespace {
-        typedef IntrusiveQueueHeaderTest::base_hook_item < ci::basket_queue::node<cds::gc::DHP> > base_hook_item;
-        typedef IntrusiveQueueHeaderTest::member_hook_item < ci::basket_queue::node<cds::gc::DHP> > member_hook_item;
-
-        // DHP base hook
-        struct traits_BasketQueue_disposer : public
-            ci::basket_queue::make_traits < ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer > >::type
-        {
-            typedef ci::basket_queue::base_hook< ci::opt::gc < cds::gc::DHP > > hook;
-        };
-        typedef ci::BasketQueue< cds::gc::DHP, base_hook_item, traits_BasketQueue_disposer > BasketQueue_DHP_base;
-
-        // DHP member hook
-        struct traits_BasketQueue_member : public traits_BasketQueue_disposer
-        {
-            typedef ci::basket_queue::member_hook< offsetof( member_hook_item, hMember ), ci::opt::gc < cds::gc::DHP > > hook;
-        };
-        typedef ci::BasketQueue< cds::gc::DHP, member_hook_item, traits_BasketQueue_member >BasketQueue_DHP_member;
-
-        /// DHP base hook + item counter
-        typedef ci::BasketQueue< cds::gc::DHP, base_hook_item,
-            typename ci::basket_queue::make_traits<
-                ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,ci::opt::hook<
-                    ci::basket_queue::base_hook< ci::opt::gc<cds::gc::DHP> >
-                >
-                ,co::item_counter< cds::atomicity::item_counter >
-                ,co::memory_model< co::v::relaxed_ordering >
-            >::type
-        > BasketQueue_DHP_base_ic;
-
-        // DHP member hook + item counter
-        typedef ci::BasketQueue< cds::gc::DHP, member_hook_item,
-            typename ci::basket_queue::make_traits<
-                ci::opt::hook<
-                    ci::basket_queue::member_hook<
-                        offsetof( member_hook_item, hMember),
-                        ci::opt::gc<cds::gc::DHP>
-                    >
-                >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,co::item_counter< cds::atomicity::item_counter >
-            >::type
-       > BasketQueue_DHP_member_ic;
-
-        // DHP base hook + stat
-        typedef ci::BasketQueue< cds::gc::DHP, base_hook_item,
-            typename ci::basket_queue::make_traits<
-                ci::opt::hook<
-                    ci::basket_queue::base_hook< ci::opt::gc<cds::gc::DHP> >
-                >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,co::stat< ci::basket_queue::stat<> >
-            >::type
-        > BasketQueue_DHP_base_stat;
-
-        // DHP member hook + stat
-        typedef ci::BasketQueue< cds::gc::DHP, member_hook_item,
-            typename ci::basket_queue::make_traits<
-                ci::opt::hook<
-                    ci::basket_queue::member_hook<
-                        offsetof(member_hook_item, hMember),
-                        ci::opt::gc<cds::gc::DHP>
-                    >
-                >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,co::stat< ci::basket_queue::stat<> >
-            >::type
-        > BasketQueue_DHP_member_stat;
-
-        // DHP base hook + padding
-        typedef ci::BasketQueue< cds::gc::DHP, base_hook_item,
-            typename ci::basket_queue::make_traits<
-                ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,ci::opt::hook<
-                    ci::basket_queue::base_hook< ci::opt::gc<cds::gc::DHP> >
-                >
-                ,co::padding< 32 >
-            >::type
-        > BasketQueue_DHP_base_align;
-
-        // DHP member hook + padding
-        typedef ci::BasketQueue< cds::gc::DHP, member_hook_item,
-            typename ci::basket_queue::make_traits<
-                ci::opt::hook<
-                    ci::basket_queue::member_hook<
-                        offsetof(member_hook_item, hMember),
-                        ci::opt::gc<cds::gc::DHP>
-                    >
-                >
-                ,co::padding< 32 >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            >::type
-        > BasketQueue_DHP_member_align;
-
-        // DHP base hook + no padding
-        typedef ci::BasketQueue< cds::gc::DHP, base_hook_item,
-            typename ci::basket_queue::make_traits<
-                ci::opt::hook<
-                    ci::basket_queue::base_hook< ci::opt::gc<cds::gc::DHP> >
-                >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,co::padding< co::no_special_padding >
-            >::type
-        > BasketQueue_DHP_base_noalign;
-
-        // DHP member hook + no padding
-        typedef ci::BasketQueue< cds::gc::DHP, member_hook_item,
-            typename ci::basket_queue::make_traits<
-                ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,ci::opt::hook<
-                    ci::basket_queue::member_hook<
-                        offsetof(member_hook_item, hMember),
-                        ci::opt::gc<cds::gc::DHP>
-                    >
-                >
-                ,co::padding< co::no_special_padding >
-            >::type
-        > BasketQueue_DHP_member_noalign;
-
-
-        // DHP base hook + cache padding
-        typedef ci::BasketQueue< cds::gc::DHP, base_hook_item,
-            typename ci::basket_queue::make_traits<
-                ci::opt::hook<
-                    ci::basket_queue::base_hook< ci::opt::gc<cds::gc::DHP> >
-                >
-                ,co::padding< co::cache_line_padding >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            >::type
-        > BasketQueue_DHP_base_cachealign;
-
-        // DHP member hook + cache padding
-        typedef ci::BasketQueue< cds::gc::DHP, member_hook_item,
-            typename ci::basket_queue::make_traits<
-                ci::opt::hook<
-                    ci::basket_queue::member_hook<
-                        offsetof(member_hook_item, hMember),
-                        ci::opt::gc<cds::gc::DHP>
-                    >
-                >
-                ,co::padding< co::cache_line_padding >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            >::type
-        > BasketQueue_DHP_member_cachealign;
-    } // namespace
-
-    TEST(BasketQueue_DHP_base)
-    TEST(BasketQueue_DHP_member)
-    TEST(BasketQueue_DHP_base_ic)
-    TEST(BasketQueue_DHP_member_ic)
-    TEST(BasketQueue_DHP_base_stat)
-    TEST(BasketQueue_DHP_member_stat)
-    TEST(BasketQueue_DHP_base_align)
-    TEST(BasketQueue_DHP_member_align)
-    TEST(BasketQueue_DHP_base_noalign)
-    TEST(BasketQueue_DHP_member_noalign)
-    TEST(BasketQueue_DHP_base_cachealign)
-    TEST(BasketQueue_DHP_member_cachealign)
-}
diff --git a/tests/test-hdr/queue/hdr_intrusive_basketqueue_hp.cpp b/tests/test-hdr/queue/hdr_intrusive_basketqueue_hp.cpp
deleted file mode 100644 (file)
index 1028f2d..0000000
+++ /dev/null
@@ -1,227 +0,0 @@
-/*
-    This file is a part of libcds - Concurrent Data Structures library
-
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
-
-    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:
-
-    * Redistributions of source code must retain the above copyright notice, this
-      list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    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.     
-*/
-
-#include "hdr_intrusive_msqueue.h"
-#include <cds/gc/hp.h>
-#include <cds/intrusive/basket_queue.h>
-
-namespace queue {
-
-#define TEST(X) void IntrusiveQueueHeaderTest::test_##X() { test_basket<X>(); }
-
-    namespace {
-        typedef IntrusiveQueueHeaderTest::base_hook_item< ci::basket_queue::node<cds::gc::HP> > base_hook_item;
-        typedef IntrusiveQueueHeaderTest::member_hook_item< ci::basket_queue::node<cds::gc::HP> > member_hook_item;
-
-        struct traits_BasketQueue_HP_default : public ci::basket_queue::traits
-        {
-            typedef IntrusiveQueueHeaderTest::faked_disposer disposer;
-        };
-        typedef ci::BasketQueue< cds::gc::HP, base_hook_item, traits_BasketQueue_HP_default > BasketQueue_HP_default;
-
-        /// HP + item counter
-        struct traits_BasketQueue_HP_default_ic : public traits_BasketQueue_HP_default
-        {
-            typedef cds::atomicity::item_counter item_counter;
-            typedef co::v::sequential_consistent memory_model;
-        };
-        typedef ci::BasketQueue< cds::gc::HP, base_hook_item, traits_BasketQueue_HP_default_ic > BasketQueue_HP_default_ic;
-
-        /// HP + stat
-        typedef ci::BasketQueue< cds::gc::HP, base_hook_item,
-            typename ci::basket_queue::make_traits<
-                ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,co::stat< ci::basket_queue::stat<> >
-            >::type
-        > BasketQueue_HP_default_stat;
-
-        // HP base hook
-        struct traits_BasketQueue_HP_base : public ci::basket_queue::traits
-        {
-            typedef IntrusiveQueueHeaderTest::faked_disposer disposer;
-            typedef ci::basket_queue::base_hook< ci::opt::gc<cds::gc::HP> > hook;
-        };
-        typedef ci::BasketQueue< cds::gc::HP, base_hook_item, traits_BasketQueue_HP_base > BasketQueue_HP_base;
-
-        // HP member hook
-        struct traits_BasketQueue_HP_member : public traits_BasketQueue_HP_base
-        {
-            typedef ci::basket_queue::member_hook <
-                offsetof( member_hook_item, hMember ),
-                ci::opt::gc < cds::gc::HP >
-            > hook;
-
-        };
-        typedef ci::BasketQueue< cds::gc::HP, member_hook_item, traits_BasketQueue_HP_member > BasketQueue_HP_member;
-
-        /// HP base hook + item counter
-        typedef ci::BasketQueue< cds::gc::HP, base_hook_item,
-            typename ci::basket_queue::make_traits<
-                ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,ci::opt::hook<
-                    ci::basket_queue::base_hook< ci::opt::gc<cds::gc::HP> >
-                >
-                ,co::item_counter< cds::atomicity::item_counter >
-                ,co::memory_model< co::v::relaxed_ordering >
-            >::type
-        > BasketQueue_HP_base_ic;
-
-        // HP member hook + item counter
-        typedef ci::BasketQueue< cds::gc::HP, member_hook_item,
-            typename ci::basket_queue::make_traits<
-                ci::opt::hook<
-                    ci::basket_queue::member_hook<
-                        offsetof( member_hook_item, hMember),
-                        ci::opt::gc<cds::gc::HP>
-                    >
-                >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,co::item_counter< cds::atomicity::item_counter >
-            >::type
-       > BasketQueue_HP_member_ic;
-
-        // HP base hook + stat
-        typedef ci::BasketQueue< cds::gc::HP, base_hook_item,
-            typename ci::basket_queue::make_traits<
-                ci::opt::hook<
-                    ci::basket_queue::base_hook< ci::opt::gc<cds::gc::HP> >
-                >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,co::stat< ci::basket_queue::stat<> >
-            >::type
-        > BasketQueue_HP_base_stat;
-
-        // HP member hook + stat
-        typedef ci::BasketQueue< cds::gc::HP, member_hook_item,
-            typename ci::basket_queue::make_traits<
-                ci::opt::hook<
-                    ci::basket_queue::member_hook<
-                        offsetof(member_hook_item, hMember),
-                        ci::opt::gc<cds::gc::HP>
-                    >
-                >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,co::stat< ci::basket_queue::stat<> >
-            >::type
-        > BasketQueue_HP_member_stat;
-
-        // HP base hook + padding
-        typedef ci::BasketQueue< cds::gc::HP, base_hook_item,
-            typename ci::basket_queue::make_traits<
-                ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,ci::opt::hook<
-                    ci::basket_queue::base_hook< ci::opt::gc<cds::gc::HP> >
-                >
-                ,co::padding< 32 >
-            >::type
-        > BasketQueue_HP_base_align;
-
-        // HP member hook + padding
-        typedef ci::BasketQueue< cds::gc::HP, member_hook_item,
-            typename ci::basket_queue::make_traits<
-                ci::opt::hook<
-                    ci::basket_queue::member_hook<
-                        offsetof(member_hook_item, hMember),
-                        ci::opt::gc<cds::gc::HP>
-                    >
-                >
-                ,co::padding< 32 >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            >::type
-        > BasketQueue_HP_member_align;
-
-        // HP base hook + no padding
-        typedef ci::BasketQueue< cds::gc::HP, base_hook_item,
-            typename ci::basket_queue::make_traits<
-                ci::opt::hook<
-                    ci::basket_queue::base_hook< ci::opt::gc<cds::gc::HP> >
-                >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,co::padding< co::no_special_padding >
-            >::type
-        > BasketQueue_HP_base_noalign;
-
-        // HP member hook + no padding
-        typedef ci::BasketQueue< cds::gc::HP, member_hook_item,
-            typename ci::basket_queue::make_traits<
-                ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,ci::opt::hook<
-                    ci::basket_queue::member_hook<
-                        offsetof(member_hook_item, hMember),
-                        ci::opt::gc<cds::gc::HP>
-                    >
-                >
-                ,co::padding< co::no_special_padding >
-            >::type
-        > BasketQueue_HP_member_noalign;
-
-
-        // HP base hook + cache padding
-        typedef ci::BasketQueue< cds::gc::HP, base_hook_item,
-            typename ci::basket_queue::make_traits<
-                ci::opt::hook<
-                    ci::basket_queue::base_hook< ci::opt::gc<cds::gc::HP> >
-                >
-                ,co::padding< co::cache_line_padding >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            >::type
-        > BasketQueue_HP_base_cachealign;
-
-        // HP member hook + cache padding
-        typedef ci::BasketQueue< cds::gc::HP, member_hook_item,
-            typename ci::basket_queue::make_traits<
-                ci::opt::hook<
-                    ci::basket_queue::member_hook<
-                        offsetof(member_hook_item, hMember),
-                        ci::opt::gc<cds::gc::HP>
-                    >
-                >
-                ,co::padding< co::cache_line_padding >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            >::type
-        > BasketQueue_HP_member_cachealign;
-    } // namespace
-
-    TEST(BasketQueue_HP_default)
-    TEST(BasketQueue_HP_default_ic)
-    TEST(BasketQueue_HP_default_stat)
-    TEST(BasketQueue_HP_base)
-    TEST(BasketQueue_HP_member)
-    TEST(BasketQueue_HP_base_ic)
-    TEST(BasketQueue_HP_member_ic)
-    TEST(BasketQueue_HP_base_stat)
-    TEST(BasketQueue_HP_member_stat)
-    TEST(BasketQueue_HP_base_align)
-    TEST(BasketQueue_HP_member_align)
-    TEST(BasketQueue_HP_base_noalign)
-    TEST(BasketQueue_HP_member_noalign)
-    TEST(BasketQueue_HP_base_cachealign)
-    TEST(BasketQueue_HP_member_cachealign)
-}
diff --git a/tests/test-hdr/queue/hdr_intrusive_fcqueue.cpp b/tests/test-hdr/queue/hdr_intrusive_fcqueue.cpp
deleted file mode 100644 (file)
index 7ec8c5f..0000000
+++ /dev/null
@@ -1,327 +0,0 @@
-/*
-    This file is a part of libcds - Concurrent Data Structures library
-
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
-
-    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:
-
-    * Redistributions of source code must retain the above copyright notice, this
-      list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    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.     
-*/
-
-#include "cppunit/cppunit_proxy.h"
-#include <cds/intrusive/fcqueue.h>
-
-namespace queue {
-
-    class TestIntrusiveFCQueue: public CppUnitMini::TestCase
-    {
-        template <typename Hook>
-        struct base_hook_item: public Hook
-        {
-            int nVal;
-            int nDisposeCount;
-
-            base_hook_item()
-                : nDisposeCount(0)
-            {}
-        };
-
-        template <typename Hook>
-        struct member_hook_item
-        {
-            int nVal;
-            int nDisposeCount;
-            Hook hMember;
-
-            member_hook_item()
-                : nDisposeCount(0)
-            {}
-        };
-
-        struct disposer
-        {
-            template <typename T>
-            void operator ()( T * p )
-            {
-                ++p->nDisposeCount;
-            }
-        };
-
-        template <typename Queue>
-        void test()
-        {
-            Queue q;
-            test_with(q);
-        }
-
-        template <class Queue>
-        void test_with( Queue& q )
-        {
-            typedef typename Queue::value_type value_type;
-            value_type v1, v2, v3;
-            CPPUNIT_ASSERT( q.empty() );
-
-            v1.nVal = 1;
-            v2.nVal = 2;
-            v3.nVal = 3;
-            CPPUNIT_ASSERT( q.push(v1));
-            CPPUNIT_ASSERT( !q.empty() );
-            CPPUNIT_ASSERT( q.push(v2));
-            CPPUNIT_ASSERT( !q.empty() );
-            CPPUNIT_ASSERT( q.push(v3));
-            CPPUNIT_ASSERT( !q.empty() );
-
-            CPPUNIT_CHECK( v1.nDisposeCount == 0 );
-            CPPUNIT_CHECK( v2.nDisposeCount == 0 );
-            CPPUNIT_CHECK( v3.nDisposeCount == 0 );
-
-            value_type * pv;
-            pv = q.pop();
-            CPPUNIT_ASSERT( pv != nullptr );
-            CPPUNIT_ASSERT( pv->nVal == 1 );
-            CPPUNIT_ASSERT( !q.empty() );
-            CPPUNIT_CHECK( v1.nDisposeCount == 0 );
-            CPPUNIT_CHECK( v2.nDisposeCount == 0 );
-            CPPUNIT_CHECK( v3.nDisposeCount == 0 );
-
-            pv = q.pop();
-            CPPUNIT_ASSERT( pv != nullptr );
-            CPPUNIT_ASSERT( pv->nVal == 2 );
-            CPPUNIT_ASSERT( !q.empty() );
-            CPPUNIT_CHECK( v1.nDisposeCount == 0 );
-            CPPUNIT_CHECK( v2.nDisposeCount == 0 );
-            CPPUNIT_CHECK( v3.nDisposeCount == 0 );
-
-            pv = q.dequeue();
-            CPPUNIT_ASSERT( pv != nullptr );
-            CPPUNIT_ASSERT( pv->nVal == 3 );
-            CPPUNIT_ASSERT( q.empty() );
-            CPPUNIT_CHECK( v1.nDisposeCount == 0 );
-            CPPUNIT_CHECK( v2.nDisposeCount == 0 );
-            CPPUNIT_CHECK( v3.nDisposeCount == 0 );
-
-            pv = q.dequeue();
-            CPPUNIT_ASSERT( pv == nullptr );
-            CPPUNIT_CHECK( v1.nDisposeCount == 0 );
-            CPPUNIT_CHECK( v2.nDisposeCount == 0 );
-            CPPUNIT_CHECK( v3.nDisposeCount == 0 );
-
-            CPPUNIT_ASSERT( q.enqueue(v1));
-            CPPUNIT_ASSERT( !q.empty() );
-            CPPUNIT_ASSERT( q.enqueue(v2));
-            CPPUNIT_ASSERT( !q.empty() );
-            CPPUNIT_ASSERT( q.enqueue(v3));
-            CPPUNIT_ASSERT( !q.empty() );
-
-            CPPUNIT_CHECK( v1.nDisposeCount == 0 );
-            CPPUNIT_CHECK( v2.nDisposeCount == 0 );
-            CPPUNIT_CHECK( v3.nDisposeCount == 0 );
-            q.clear( true );    // call disposer
-            CPPUNIT_CHECK( q.empty() );
-            CPPUNIT_CHECK( v1.nDisposeCount == 1 );
-            CPPUNIT_CHECK( v2.nDisposeCount == 1 );
-            CPPUNIT_CHECK( v3.nDisposeCount == 1 );
-
-            CPPUNIT_ASSERT( q.push(v1));
-            CPPUNIT_ASSERT( !q.empty() );
-            CPPUNIT_ASSERT( q.push(v2));
-            CPPUNIT_ASSERT( !q.empty() );
-            CPPUNIT_ASSERT( q.push(v3));
-            CPPUNIT_ASSERT( !q.empty() );
-            q.clear( false );   // no disposer called
-            CPPUNIT_CHECK( q.empty() );
-            CPPUNIT_CHECK( v1.nDisposeCount == 1 );
-            CPPUNIT_CHECK( v2.nDisposeCount == 1 );
-            CPPUNIT_CHECK( v3.nDisposeCount == 1 );
-        }
-
-        void FCQueue_base();
-        void FCQueue_base_stat();
-        void FCQueue_base_elimination();
-        void FCQueue_base_elimination_mutex();
-        void FCQueue_base_seqcst();
-        void FCQueue_member();
-        void FCQueue_member_stat();
-        void FCQueue_member_elimination();
-        void FCQueue_member_elimination_mutex();
-        void FCQueue_member_seqcst();
-
-        CPPUNIT_TEST_SUITE(TestIntrusiveFCQueue)
-            CPPUNIT_TEST(FCQueue_base)
-            CPPUNIT_TEST(FCQueue_base_stat)
-            CPPUNIT_TEST(FCQueue_base_elimination)
-            CPPUNIT_TEST(FCQueue_base_elimination_mutex)
-            CPPUNIT_TEST(FCQueue_base_seqcst)
-            CPPUNIT_TEST(FCQueue_member)
-            CPPUNIT_TEST(FCQueue_member_stat)
-            CPPUNIT_TEST(FCQueue_member_elimination)
-            CPPUNIT_TEST(FCQueue_member_elimination_mutex)
-            CPPUNIT_TEST(FCQueue_member_seqcst)
-        CPPUNIT_TEST_SUITE_END()
-    };
-
-
-    void TestIntrusiveFCQueue::FCQueue_base()
-    {
-        typedef base_hook_item< boost::intrusive::list_base_hook<> > value_type;
-        typedef cds::intrusive::FCQueue< value_type, boost::intrusive::list< value_type >,
-            cds::intrusive::fcqueue::make_traits<
-                cds::intrusive::opt::disposer< disposer >
-            >::type
-        > queue_type;
-
-        test<queue_type>();
-    }
-
-    void TestIntrusiveFCQueue::FCQueue_base_stat()
-    {
-        typedef base_hook_item< boost::intrusive::list_base_hook<> > value_type;
-        struct queue_traits : public cds::intrusive::fcqueue::traits
-        {
-            typedef TestIntrusiveFCQueue::disposer disposer;
-            typedef cds::intrusive::fcqueue::stat<> stat;
-        };
-        typedef cds::intrusive::FCQueue< value_type, boost::intrusive::list< value_type >, queue_traits > queue_type;
-
-        test<queue_type>();
-    }
-
-    void TestIntrusiveFCQueue::FCQueue_base_elimination()
-    {
-        typedef base_hook_item< boost::intrusive::list_base_hook<> > value_type;
-        struct queue_traits : public
-            cds::intrusive::fcqueue::make_traits <
-                cds::intrusive::opt::disposer< disposer >
-                ,cds::opt::enable_elimination < true >
-            > ::type
-        {};
-        typedef cds::intrusive::FCQueue< value_type, boost::intrusive::list< value_type >, queue_traits > queue_type;
-
-        test<queue_type>();
-    }
-
-    void TestIntrusiveFCQueue::FCQueue_base_elimination_mutex()
-    {
-        typedef base_hook_item< boost::intrusive::list_base_hook<> > value_type;
-        typedef cds::intrusive::FCQueue< value_type, boost::intrusive::list< value_type >,
-            cds::intrusive::fcqueue::make_traits<
-                cds::intrusive::opt::disposer< disposer >
-                ,cds::opt::enable_elimination< true >
-                ,cds::opt::lock_type< std::mutex >
-            >::type
-        > queue_type;
-
-        test<queue_type>();
-    }
-
-    void TestIntrusiveFCQueue::FCQueue_base_seqcst()
-    {
-        typedef base_hook_item< boost::intrusive::list_base_hook<> > value_type;
-        typedef cds::intrusive::FCQueue< value_type, boost::intrusive::list< value_type >,
-            cds::intrusive::fcqueue::make_traits<
-                cds::intrusive::opt::disposer< disposer >
-                ,cds::opt::memory_model< cds::opt::v::sequential_consistent >
-            >::type
-        > queue_type;
-
-        test<queue_type>();
-    }
-
-    void TestIntrusiveFCQueue::FCQueue_member()
-    {
-        typedef member_hook_item< boost::intrusive::list_member_hook<> > value_type;
-        typedef boost::intrusive::member_hook<value_type, boost::intrusive::list_member_hook<>, &value_type::hMember> member_option;
-
-        typedef cds::intrusive::FCQueue< value_type, boost::intrusive::list< value_type, member_option >,
-            cds::intrusive::fcqueue::make_traits<
-                cds::intrusive::opt::disposer< disposer >
-            >::type
-        > queue_type;
-
-        test<queue_type>();
-    }
-
-    void TestIntrusiveFCQueue::FCQueue_member_stat()
-    {
-        typedef member_hook_item< boost::intrusive::list_member_hook<> > value_type;
-        typedef boost::intrusive::member_hook<value_type, boost::intrusive::list_member_hook<>, &value_type::hMember> member_option;
-
-        typedef cds::intrusive::FCQueue< value_type, boost::intrusive::list< value_type, member_option >,
-            cds::intrusive::fcqueue::make_traits<
-                cds::intrusive::opt::disposer< disposer >
-                ,cds::opt::stat< cds::intrusive::fcqueue::stat<> >
-            >::type
-        > queue_type;
-
-        test<queue_type>();
-    }
-
-    void TestIntrusiveFCQueue::FCQueue_member_elimination()
-    {
-        typedef member_hook_item< boost::intrusive::list_member_hook<> > value_type;
-        typedef boost::intrusive::member_hook<value_type, boost::intrusive::list_member_hook<>, &value_type::hMember> member_option;
-
-        typedef cds::intrusive::FCQueue< value_type, boost::intrusive::list< value_type, member_option >,
-            cds::intrusive::fcqueue::make_traits<
-                cds::intrusive::opt::disposer< disposer >
-                ,cds::opt::enable_elimination< true >
-            >::type
-        > queue_type;
-
-        test<queue_type>();
-    }
-
-    void TestIntrusiveFCQueue::FCQueue_member_elimination_mutex()
-    {
-        typedef member_hook_item< boost::intrusive::list_member_hook<> > value_type;
-        typedef boost::intrusive::member_hook<value_type, boost::intrusive::list_member_hook<>, &value_type::hMember> member_option;
-
-        typedef cds::intrusive::FCQueue< value_type, boost::intrusive::list< value_type, member_option >,
-            cds::intrusive::fcqueue::make_traits<
-                cds::intrusive::opt::disposer< disposer >
-                ,cds::opt::enable_elimination< true >
-                ,cds::opt::lock_type< std::mutex >
-            >::type
-        > queue_type;
-
-        test<queue_type>();
-    }
-
-    void TestIntrusiveFCQueue::FCQueue_member_seqcst()
-    {
-        typedef member_hook_item< boost::intrusive::list_member_hook<> > value_type;
-        typedef boost::intrusive::member_hook<value_type, boost::intrusive::list_member_hook<>, &value_type::hMember> member_option;
-
-        typedef cds::intrusive::FCQueue< value_type, boost::intrusive::list< value_type, member_option >,
-            cds::intrusive::fcqueue::make_traits<
-                cds::intrusive::opt::disposer< disposer >
-                ,cds::opt::memory_model< cds::opt::v::sequential_consistent >
-            >::type
-        > queue_type;
-
-        test<queue_type>();
-    }
-
-} // namespace queue
-
-CPPUNIT_TEST_SUITE_REGISTRATION(queue::TestIntrusiveFCQueue);
diff --git a/tests/test-hdr/queue/hdr_intrusive_moirqueue_dhp.cpp b/tests/test-hdr/queue/hdr_intrusive_moirqueue_dhp.cpp
deleted file mode 100644 (file)
index 5095d83..0000000
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
-    This file is a part of libcds - Concurrent Data Structures library
-
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
-
-    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:
-
-    * Redistributions of source code must retain the above copyright notice, this
-      list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    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.     
-*/
-
-#include "hdr_intrusive_msqueue.h"
-#include <cds/intrusive/moir_queue.h>
-#include <cds/gc/dhp.h>
-
-namespace queue {
-
-#define TEST(X)     void IntrusiveQueueHeaderTest::test_##X() { test<X>(); }
-
-    namespace {
-        typedef IntrusiveQueueHeaderTest::base_hook_item< ci::msqueue::node<cds::gc::DHP > > base_item_type;
-        typedef IntrusiveQueueHeaderTest::member_hook_item< ci::msqueue::node<cds::gc::DHP > > member_item_type;
-
-        // DHP base hook
-        typedef ci::MoirQueue< cds::gc::DHP, base_item_type,
-            typename ci::msqueue::make_traits<
-            ci::opt::hook<
-            ci::msqueue::base_hook< ci::opt::gc<cds::gc::DHP> >
-            >
-            , ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            >::type
-        > MoirQueue_DHP_base;
-
-        // DHP member hook
-        typedef ci::MoirQueue< cds::gc::DHP, member_item_type,
-            typename ci::msqueue::make_traits<
-            ci::opt::hook<
-            ci::msqueue::member_hook<
-            offsetof( member_item_type, hMember ),
-            ci::opt::gc<cds::gc::DHP>
-            >
-            >
-            , ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            >::type
-        > MoirQueue_DHP_member;
-
-        /// DHP base hook + item counter
-        typedef ci::MoirQueue< cds::gc::DHP, base_item_type,
-            typename ci::msqueue::make_traits<
-            ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            , ci::opt::hook<
-            ci::msqueue::base_hook< ci::opt::gc<cds::gc::DHP> >
-            >
-            , co::item_counter< cds::atomicity::item_counter >
-            , co::memory_model< co::v::relaxed_ordering >
-            >::type
-        > MoirQueue_DHP_base_ic;
-
-        // DHP member hook + item counter
-        typedef ci::MoirQueue< cds::gc::DHP, member_item_type,
-            typename ci::msqueue::make_traits<
-            ci::opt::hook<
-            ci::msqueue::member_hook<
-            offsetof( member_item_type, hMember ),
-            ci::opt::gc<cds::gc::DHP>
-            >
-            >
-            , ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            , co::item_counter< cds::atomicity::item_counter >
-            >::type
-        > MoirQueue_DHP_member_ic;
-
-        // DHP base hook + stat
-        typedef ci::MoirQueue< cds::gc::DHP, base_item_type,
-            typename ci::msqueue::make_traits<
-            ci::opt::hook<
-            ci::msqueue::base_hook< ci::opt::gc<cds::gc::DHP> >
-            >
-            , ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            , co::stat< ci::msqueue::stat<> >
-            >::type
-        > MoirQueue_DHP_base_stat;
-
-        // DHP member hook + stat
-        typedef ci::MoirQueue< cds::gc::DHP, member_item_type,
-            typename ci::msqueue::make_traits<
-            ci::opt::hook<
-            ci::msqueue::member_hook<
-            offsetof( member_item_type, hMember ),
-            ci::opt::gc<cds::gc::DHP>
-            >
-            >
-            , ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            , co::stat< ci::msqueue::stat<> >
-            >::type
-        > MoirQueue_DHP_member_stat;
-
-        // DHP base hook + padding
-        typedef ci::MoirQueue< cds::gc::DHP, base_item_type,
-            typename ci::msqueue::make_traits<
-            ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            , ci::opt::hook<
-            ci::msqueue::base_hook< ci::opt::gc<cds::gc::DHP> >
-            >
-            , co::padding< 32 >
-            >::type
-        > MoirQueue_DHP_base_align;
-
-        // DHP member hook + padding
-        typedef ci::MoirQueue< cds::gc::DHP, member_item_type,
-            typename ci::msqueue::make_traits<
-            ci::opt::hook<
-            ci::msqueue::member_hook<
-            offsetof( member_item_type, hMember ),
-            ci::opt::gc<cds::gc::DHP>
-            >
-            >
-            , co::padding< 32 >
-            , ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            >::type
-        > MoirQueue_DHP_member_align;
-
-        // DHP base hook + no padding
-        struct traits_MoirQueue_DHP_base_noalign : public ci::msqueue::traits {
-            typedef ci::msqueue::base_hook< ci::opt::gc<cds::gc::DHP> > hook;
-            typedef IntrusiveQueueHeaderTest::faked_disposer disposer;
-            enum { padding = co::no_special_padding };
-        };
-        typedef ci::MoirQueue< cds::gc::DHP, base_item_type, traits_MoirQueue_DHP_base_noalign > MoirQueue_DHP_base_noalign;
-
-        // DHP member hook + no padding
-        struct traits_MoirQueue_DHP_member_noalign : public ci::msqueue::traits {
-            typedef ci::msqueue::member_hook <
-                offsetof( member_item_type, hMember ),
-                ci::opt::gc < cds::gc::DHP >
-            > hook;
-            typedef IntrusiveQueueHeaderTest::faked_disposer disposer;
-            enum { padding = co::no_special_padding };
-        };
-        typedef ci::MoirQueue< cds::gc::DHP, member_item_type, traits_MoirQueue_DHP_member_noalign > MoirQueue_DHP_member_noalign;
-
-
-        // DHP base hook + cache padding
-        struct traits_MoirQueue_DHP_base_cachealign : public traits_MoirQueue_DHP_base_noalign
-        {
-            enum { padding = co::cache_line_padding };
-        };
-        typedef ci::MoirQueue< cds::gc::DHP, base_item_type, traits_MoirQueue_DHP_base_cachealign > MoirQueue_DHP_base_cachealign;
-
-        // DHP member hook + cache padding
-        struct traits_MoirQueue_DHP_member_cachealign : public traits_MoirQueue_DHP_member_noalign
-        {
-            enum { padding = co::cache_line_padding };
-        };
-        typedef ci::MoirQueue< cds::gc::DHP, member_item_type, traits_MoirQueue_DHP_member_cachealign > MoirQueue_DHP_member_cachealign;
-    }   // namespace
-
-    TEST(MoirQueue_DHP_base)
-    TEST(MoirQueue_DHP_member)
-    TEST(MoirQueue_DHP_base_ic)
-    TEST(MoirQueue_DHP_member_ic)
-    TEST(MoirQueue_DHP_base_stat)
-    TEST(MoirQueue_DHP_member_stat)
-    TEST(MoirQueue_DHP_base_align)
-    TEST(MoirQueue_DHP_member_align)
-    TEST(MoirQueue_DHP_base_noalign)
-    TEST(MoirQueue_DHP_member_noalign)
-    TEST(MoirQueue_DHP_base_cachealign)
-    TEST(MoirQueue_DHP_member_cachealign)
-
-} // namespace queue
diff --git a/tests/test-hdr/queue/hdr_intrusive_moirqueue_hp.cpp b/tests/test-hdr/queue/hdr_intrusive_moirqueue_hp.cpp
deleted file mode 100644 (file)
index a79cde5..0000000
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
-    This file is a part of libcds - Concurrent Data Structures library
-
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
-
-    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:
-
-    * Redistributions of source code must retain the above copyright notice, this
-      list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    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.     
-*/
-
-#include "hdr_intrusive_msqueue.h"
-#include <cds/intrusive/moir_queue.h>
-#include <cds/gc/hp.h>
-
-namespace queue {
-
-#define TEST(X) void IntrusiveQueueHeaderTest::test_##X() { test<X>(); }
-
-    namespace {
-        typedef IntrusiveQueueHeaderTest::base_hook_item< ci::msqueue::node<cds::gc::HP > > base_item_type;
-        typedef IntrusiveQueueHeaderTest::member_hook_item< ci::msqueue::node<cds::gc::HP > > member_item_type;
-
-        typedef ci::MoirQueue< cds::gc::HP, base_item_type,
-            typename ci::msqueue::make_traits<
-                ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            >::type
-        > MoirQueue_HP_default;
-
-        /// HP + item counter
-        typedef ci::MoirQueue< cds::gc::HP, base_item_type,
-            typename ci::msqueue::make_traits<
-                ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,co::item_counter< cds::atomicity::item_counter >
-                ,co::memory_model< co::v::sequential_consistent >
-            >::type
-        > MoirQueue_HP_default_ic;
-
-        /// HP + stat
-        typedef ci::MoirQueue< cds::gc::HP, base_item_type,
-            typename ci::msqueue::make_traits<
-                ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,co::stat< ci::msqueue::stat<> >
-            >::type
-        > MoirQueue_HP_default_stat;
-
-        // HP base hook
-        typedef ci::MoirQueue< cds::gc::HP, base_item_type,
-            typename ci::msqueue::make_traits<
-                ci::opt::hook<
-                    ci::msqueue::base_hook< ci::opt::gc<cds::gc::HP> >
-                >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            >::type
-        > MoirQueue_HP_base;
-
-        // HP member hook
-        typedef ci::MoirQueue< cds::gc::HP, member_item_type,
-            typename ci::msqueue::make_traits<
-                ci::opt::hook<
-                    ci::msqueue::member_hook<
-                        offsetof( member_item_type, hMember ),
-                        ci::opt::gc<cds::gc::HP>
-                    >
-                >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            >::type
-        > MoirQueue_HP_member;
-
-        /// HP base hook + item counter
-        typedef ci::MoirQueue< cds::gc::HP, base_item_type,
-            typename ci::msqueue::make_traits<
-                ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,ci::opt::hook<
-                    ci::msqueue::base_hook< ci::opt::gc<cds::gc::HP> >
-                >
-                ,co::item_counter< cds::atomicity::item_counter >
-                ,co::memory_model< co::v::relaxed_ordering >
-            >::type
-        > MoirQueue_HP_base_ic;
-
-        // HP member hook + item counter
-        typedef ci::MoirQueue< cds::gc::HP, member_item_type,
-            typename ci::msqueue::make_traits<
-                ci::opt::hook<
-                    ci::msqueue::member_hook<
-                        offsetof( member_item_type, hMember ),
-                        ci::opt::gc<cds::gc::HP>
-                    >
-                >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,co::item_counter< cds::atomicity::item_counter >
-            >::type
-       > MoirQueue_HP_member_ic;
-
-        // HP base hook + stat
-        typedef ci::MoirQueue< cds::gc::HP, base_item_type,
-            typename ci::msqueue::make_traits<
-                ci::opt::hook<
-                    ci::msqueue::base_hook< ci::opt::gc<cds::gc::HP> >
-                >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,co::stat< ci::msqueue::stat<> >
-            >::type
-        > MoirQueue_HP_base_stat;
-
-        // HP member hook + stat
-        typedef ci::MoirQueue< cds::gc::HP, member_item_type,
-            typename ci::msqueue::make_traits<
-                ci::opt::hook<
-                    ci::msqueue::member_hook<
-                        offsetof( member_item_type, hMember ),
-                        ci::opt::gc<cds::gc::HP>
-                    >
-                >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,co::stat< ci::msqueue::stat<> >
-            >::type
-        > MoirQueue_HP_member_stat;
-
-        // HP base hook + padding
-        typedef ci::MoirQueue< cds::gc::HP, base_item_type,
-            typename ci::msqueue::make_traits<
-                ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,ci::opt::hook<
-                    ci::msqueue::base_hook< ci::opt::gc<cds::gc::HP> >
-                >
-                ,co::padding< 32 >
-            >::type
-        > MoirQueue_HP_base_align;
-
-        // HP member hook + padding
-        typedef ci::MoirQueue< cds::gc::HP, member_item_type,
-            typename ci::msqueue::make_traits<
-                ci::opt::hook<
-                    ci::msqueue::member_hook<
-                        offsetof( member_item_type, hMember ),
-                        ci::opt::gc<cds::gc::HP>
-                    >
-                >
-                ,co::padding< 32 >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            >::type
-        > MoirQueue_HP_member_align;
-
-        // HP base hook + no padding
-        struct traits_MoirQueue_HP_base_noalign : public ci::msqueue::traits {
-            typedef ci::msqueue::base_hook< ci::opt::gc<cds::gc::HP> > hook;
-            typedef IntrusiveQueueHeaderTest::faked_disposer disposer;
-            enum { padding = co::no_special_padding };
-        };
-        typedef ci::MoirQueue< cds::gc::HP, base_item_type, traits_MoirQueue_HP_base_noalign > MoirQueue_HP_base_noalign;
-
-        // HP member hook + no padding
-        struct traits_MoirQueue_HP_member_noalign : public ci::msqueue::traits {
-            typedef ci::msqueue::member_hook <
-                offsetof( member_item_type, hMember ),
-                ci::opt::gc < cds::gc::HP >
-            > hook;
-            typedef IntrusiveQueueHeaderTest::faked_disposer disposer;
-            enum { padding = co::no_special_padding };
-        };
-        typedef ci::MoirQueue< cds::gc::HP, member_item_type, traits_MoirQueue_HP_member_noalign > MoirQueue_HP_member_noalign;
-
-
-        // HP base hook + cache padding
-        struct traits_MoirQueue_HP_base_cachealign : public traits_MoirQueue_HP_base_noalign
-        {
-            enum { padding = co::cache_line_padding };
-        };
-        typedef ci::MoirQueue< cds::gc::HP, base_item_type, traits_MoirQueue_HP_base_cachealign > MoirQueue_HP_base_cachealign;
-
-        // HP member hook + cache padding
-        struct traits_MoirQueue_HP_member_cachealign : public traits_MoirQueue_HP_member_noalign
-        {
-            enum { padding = co::cache_line_padding };
-        };
-        typedef ci::MoirQueue< cds::gc::HP, member_item_type, traits_MoirQueue_HP_member_cachealign > MoirQueue_HP_member_cachealign;
-    }
-
-    TEST(MoirQueue_HP_default)
-    TEST(MoirQueue_HP_default_ic)
-    TEST(MoirQueue_HP_default_stat)
-    TEST(MoirQueue_HP_base)
-    TEST(MoirQueue_HP_member)
-    TEST(MoirQueue_HP_base_ic)
-    TEST(MoirQueue_HP_member_ic)
-    TEST(MoirQueue_HP_base_stat)
-    TEST(MoirQueue_HP_member_stat)
-    TEST(MoirQueue_HP_base_align)
-    TEST(MoirQueue_HP_member_align)
-    TEST(MoirQueue_HP_base_noalign)
-    TEST(MoirQueue_HP_member_noalign)
-    TEST(MoirQueue_HP_base_cachealign)
-    TEST(MoirQueue_HP_member_cachealign)
-}
diff --git a/tests/test-hdr/queue/hdr_intrusive_msqueue.h b/tests/test-hdr/queue/hdr_intrusive_msqueue.h
deleted file mode 100644 (file)
index 24b4a98..0000000
+++ /dev/null
@@ -1,551 +0,0 @@
-/*
-    This file is a part of libcds - Concurrent Data Structures library
-
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
-
-    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:
-
-    * Redistributions of source code must retain the above copyright notice, this
-      list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    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.     
-*/
-
-#ifndef CDSTEST_HDR_INTRSUSIVE_MSQUEUE_H
-#define CDSTEST_HDR_INTRSUSIVE_MSQUEUE_H
-
-#include "cppunit/cppunit_proxy.h"
-#include <cds/intrusive/details/base.h>
-
-namespace queue {
-    namespace ci = cds::intrusive;
-    namespace co = cds::opt;
-
-    class IntrusiveQueueHeaderTest: public CppUnitMini::TestCase
-    {
-    public:
-
-        template <typename Base>
-        struct base_hook_item : public Base
-        {
-            int nVal;
-            int nDisposeCount;
-
-            base_hook_item()
-                : nDisposeCount( 0 )
-            {}
-        };
-
-        template <typename Member>
-        struct member_hook_item
-        {
-            int nVal;
-            int nDisposeCount;
-            Member hMember;
-
-            member_hook_item()
-                : nDisposeCount( 0 )
-            {}
-        };
-
-        struct faked_disposer
-        {
-            template <typename T>
-            void operator ()( T * p )
-            {
-                ++p->nDisposeCount;
-            }
-        };
-
-
-        // Test for MSQueue and derivatives
-        template <class Queue>
-        void test()
-        {
-            typedef typename Queue::value_type value_type;
-            value_type v1, v2, v3;
-
-            {
-                Queue q;
-                CPPUNIT_ASSERT( q.empty() );
-
-                v1.nVal = 1;
-                v2.nVal = 2;
-                v3.nVal = 3;
-                CPPUNIT_ASSERT( q.push(v1));
-                CPPUNIT_ASSERT( !q.empty() );
-                CPPUNIT_ASSERT( q.push(v2));
-                CPPUNIT_ASSERT( !q.empty() );
-                CPPUNIT_ASSERT( q.push(v3));
-                CPPUNIT_ASSERT( !q.empty() );
-
-                CPPUNIT_CHECK( v1.nDisposeCount == 0 );
-                CPPUNIT_CHECK( v2.nDisposeCount == 0 );
-                CPPUNIT_CHECK( v3.nDisposeCount == 0 );
-
-                value_type * pv;
-                pv = q.pop();
-                Queue::gc::scan();
-                CPPUNIT_ASSERT( pv != nullptr );
-                CPPUNIT_ASSERT( pv->nVal == 1 );
-                CPPUNIT_ASSERT( !q.empty() );
-                CPPUNIT_CHECK( v1.nDisposeCount == 0 );
-                CPPUNIT_CHECK( v2.nDisposeCount == 0 );
-                CPPUNIT_CHECK( v3.nDisposeCount == 0 );
-
-                pv = q.pop();
-                Queue::gc::scan();
-                CPPUNIT_ASSERT( pv != nullptr );
-                CPPUNIT_ASSERT( pv->nVal == 2 );
-                CPPUNIT_ASSERT( !q.empty() );
-                CPPUNIT_CHECK( v1.nDisposeCount == 1 );
-                CPPUNIT_CHECK( v2.nDisposeCount == 0 );
-                CPPUNIT_CHECK( v3.nDisposeCount == 0 );
-
-                pv = q.pop();
-                Queue::gc::scan();
-                CPPUNIT_ASSERT( pv != nullptr );
-                CPPUNIT_ASSERT( pv->nVal == 3 );
-                CPPUNIT_ASSERT( q.empty() );
-                CPPUNIT_CHECK( v1.nDisposeCount == 1 );
-                CPPUNIT_CHECK( v2.nDisposeCount == 1 );
-                CPPUNIT_CHECK( v3.nDisposeCount == 0 );
-
-                pv = q.pop();
-                CPPUNIT_ASSERT( pv == nullptr );
-                CPPUNIT_CHECK( v1.nDisposeCount == 1 );
-                CPPUNIT_CHECK( v2.nDisposeCount == 1 );
-                CPPUNIT_CHECK( v3.nDisposeCount == 0 );
-            }
-
-            Queue::gc::scan();
-            CPPUNIT_CHECK( v1.nDisposeCount == 1 );
-            CPPUNIT_CHECK( v2.nDisposeCount == 1 );
-            CPPUNIT_CHECK( v3.nDisposeCount == 1 );
-        }
-
-        // Test for BasketQueue and derivatives
-        template <class Queue>
-        void test_basket()
-        {
-            typedef typename Queue::value_type value_type;
-            value_type v1, v2, v3, v4;
-
-            {
-                Queue q;
-                CPPUNIT_ASSERT( q.empty() );
-
-                v1.nVal = 1;
-                v2.nVal = 2;
-                v3.nVal = 3;
-                v4.nVal = 4;
-                CPPUNIT_ASSERT( q.push(v1));
-                CPPUNIT_ASSERT( !q.empty() );
-                CPPUNIT_ASSERT( q.push(v2));
-                CPPUNIT_ASSERT( !q.empty() );
-                CPPUNIT_ASSERT( q.push(v3));
-                CPPUNIT_ASSERT( !q.empty() );
-                CPPUNIT_ASSERT( q.push(v4));
-                CPPUNIT_ASSERT( !q.empty() );
-
-                CPPUNIT_CHECK( v1.nDisposeCount == 0 );
-                CPPUNIT_CHECK( v2.nDisposeCount == 0 );
-                CPPUNIT_CHECK( v3.nDisposeCount == 0 );
-                CPPUNIT_CHECK( v4.nDisposeCount == 0 );
-
-                value_type * pv;
-                pv = q.pop();
-                Queue::gc::scan();
-                CPPUNIT_ASSERT( pv != nullptr );
-                CPPUNIT_ASSERT( pv->nVal == 1 );
-                CPPUNIT_ASSERT( !q.empty() );
-                CPPUNIT_CHECK( v1.nDisposeCount == 0 );
-                CPPUNIT_CHECK( v2.nDisposeCount == 0 );
-                CPPUNIT_CHECK( v3.nDisposeCount == 0 );
-                CPPUNIT_CHECK( v4.nDisposeCount == 0 );
-
-                pv = q.pop();
-                Queue::gc::scan();
-                CPPUNIT_ASSERT( pv != nullptr );
-                CPPUNIT_ASSERT( pv->nVal == 2 );
-                CPPUNIT_ASSERT( !q.empty() );
-                CPPUNIT_CHECK( v1.nDisposeCount == 0 );
-                CPPUNIT_CHECK( v2.nDisposeCount == 0 );
-                CPPUNIT_CHECK( v3.nDisposeCount == 0 );
-                CPPUNIT_CHECK( v4.nDisposeCount == 0 );
-
-                pv = q.pop();
-                Queue::gc::scan();
-                CPPUNIT_ASSERT( pv != nullptr );
-                CPPUNIT_ASSERT( pv->nVal == 3 );
-                CPPUNIT_ASSERT( !q.empty() );
-                CPPUNIT_CHECK( v1.nDisposeCount == 0 );
-                CPPUNIT_CHECK( v2.nDisposeCount == 0 );
-                CPPUNIT_CHECK( v3.nDisposeCount == 0 );
-                CPPUNIT_CHECK( v4.nDisposeCount == 0 );
-
-                pv = q.pop();
-                Queue::gc::scan();
-                CPPUNIT_ASSERT( pv != nullptr );
-                CPPUNIT_ASSERT( pv->nVal == 4 );
-                CPPUNIT_ASSERT( q.empty() );
-                CPPUNIT_CHECK( v1.nDisposeCount == 1 );
-                CPPUNIT_CHECK( v2.nDisposeCount == 1 );
-                CPPUNIT_CHECK( v3.nDisposeCount == 1 );
-                CPPUNIT_CHECK( v4.nDisposeCount == 0 );
-
-                pv = q.pop();
-                Queue::gc::scan();
-                CPPUNIT_CHECK( pv == nullptr );
-                CPPUNIT_CHECK( v1.nDisposeCount == 1 );
-                CPPUNIT_CHECK( v2.nDisposeCount == 1 );
-                CPPUNIT_CHECK( v3.nDisposeCount == 1 );
-                CPPUNIT_CHECK( v4.nDisposeCount == 0 );
-            }
-
-            Queue::gc::scan();
-            CPPUNIT_CHECK( v1.nDisposeCount == 1 );
-            CPPUNIT_CHECK( v2.nDisposeCount == 1 );
-            CPPUNIT_CHECK( v3.nDisposeCount == 1 );
-            CPPUNIT_CHECK( v4.nDisposeCount == 1 );
-        }
-
-        // Test for a queue in what dequeued item should be manually disposed
-        template <class Queue>
-        void test2()
-        {
-            typedef typename Queue::value_type value_type;
-            value_type v1, v2, v3;
-            Queue q;
-            CPPUNIT_ASSERT( q.empty() );
-
-            v1.nVal = 1;
-            v2.nVal = 2;
-            v3.nVal = 3;
-            CPPUNIT_ASSERT( q.push(v1));
-            CPPUNIT_ASSERT( !q.empty() );
-            CPPUNIT_ASSERT( q.push(v2));
-            CPPUNIT_ASSERT( !q.empty() );
-            CPPUNIT_ASSERT( q.push(v3));
-            CPPUNIT_ASSERT( !q.empty() );
-
-            CPPUNIT_CHECK( v1.nDisposeCount == 0 );
-            CPPUNIT_CHECK( v2.nDisposeCount == 0 );
-            CPPUNIT_CHECK( v3.nDisposeCount == 0 );
-
-            value_type * pv;
-            pv = q.pop();
-            CPPUNIT_ASSERT( pv != nullptr );
-            CPPUNIT_ASSERT( pv->nVal == 1 );
-            CPPUNIT_ASSERT( !q.empty() );
-            CPPUNIT_CHECK( v1.nDisposeCount == 0 );
-            CPPUNIT_CHECK( v2.nDisposeCount == 0 );
-            CPPUNIT_CHECK( v3.nDisposeCount == 0 );
-
-            pv = q.pop();
-            CPPUNIT_ASSERT( pv != nullptr );
-            CPPUNIT_ASSERT( pv->nVal == 2 );
-            CPPUNIT_ASSERT( !q.empty() );
-            CPPUNIT_CHECK( v1.nDisposeCount == 0 );
-            CPPUNIT_CHECK( v2.nDisposeCount == 0 );
-            CPPUNIT_CHECK( v3.nDisposeCount == 0 );
-
-            pv = q.pop();
-            CPPUNIT_ASSERT( pv != nullptr );
-            CPPUNIT_ASSERT( pv->nVal == 3 );
-            CPPUNIT_ASSERT( q.empty() );
-            CPPUNIT_CHECK( v1.nDisposeCount == 0 );
-            CPPUNIT_CHECK( v2.nDisposeCount == 0 );
-            CPPUNIT_CHECK( v3.nDisposeCount == 0 );
-
-            pv = q.pop();
-            CPPUNIT_ASSERT( pv == nullptr );
-            CPPUNIT_CHECK( v1.nDisposeCount == 0 );
-            CPPUNIT_CHECK( v2.nDisposeCount == 0 );
-            CPPUNIT_CHECK( v3.nDisposeCount == 0 );
-
-            CPPUNIT_ASSERT( q.push(v1));
-            CPPUNIT_ASSERT( !q.empty() );
-            CPPUNIT_ASSERT( q.push(v2));
-            CPPUNIT_ASSERT( !q.empty() );
-            CPPUNIT_ASSERT( q.push(v3));
-            CPPUNIT_ASSERT( !q.empty() );
-
-            CPPUNIT_CHECK( v1.nDisposeCount == 0 );
-            CPPUNIT_CHECK( v2.nDisposeCount == 0 );
-            CPPUNIT_CHECK( v3.nDisposeCount == 0 );
-            q.clear();
-            CPPUNIT_CHECK( q.empty() );
-            CPPUNIT_CHECK( v1.nDisposeCount == 1 );
-            CPPUNIT_CHECK( v2.nDisposeCount == 1 );
-            CPPUNIT_CHECK( v3.nDisposeCount == 1 );
-        }
-
-
-        void test_MSQueue_HP_default();
-        void test_MSQueue_HP_default_ic();
-        void test_MSQueue_HP_default_stat();
-        void test_MSQueue_HP_base();
-        void test_MSQueue_HP_member();
-        void test_MSQueue_HP_base_ic();
-        void test_MSQueue_HP_member_ic();
-        void test_MSQueue_HP_base_stat();
-        void test_MSQueue_HP_member_stat();
-        void test_MSQueue_HP_base_align();
-        void test_MSQueue_HP_member_align();
-        void test_MSQueue_HP_base_noalign();
-        void test_MSQueue_HP_member_noalign();
-        void test_MSQueue_HP_base_cachealign();
-        void test_MSQueue_HP_member_cachealign();
-        void test_MSQueue_DHP_base();
-        void test_MSQueue_DHP_member();
-        void test_MSQueue_DHP_base_ic();
-        void test_MSQueue_DHP_member_ic();
-        void test_MSQueue_DHP_base_stat();
-        void test_MSQueue_DHP_member_stat();
-        void test_MSQueue_DHP_base_align();
-        void test_MSQueue_DHP_member_align();
-        void test_MSQueue_DHP_base_noalign();
-        void test_MSQueue_DHP_member_noalign();
-        void test_MSQueue_DHP_base_cachealign();
-        void test_MSQueue_DHP_member_cachealign();
-
-        void test_MoirQueue_HP_default();
-        void test_MoirQueue_HP_default_ic();
-        void test_MoirQueue_HP_default_stat();
-        void test_MoirQueue_HP_base();
-        void test_MoirQueue_HP_member();
-        void test_MoirQueue_HP_base_ic();
-        void test_MoirQueue_HP_member_ic();
-        void test_MoirQueue_HP_base_stat();
-        void test_MoirQueue_HP_member_stat();
-        void test_MoirQueue_HP_base_align();
-        void test_MoirQueue_HP_member_align();
-        void test_MoirQueue_HP_base_noalign();
-        void test_MoirQueue_HP_member_noalign();
-        void test_MoirQueue_HP_base_cachealign();
-        void test_MoirQueue_HP_member_cachealign();
-        void test_MoirQueue_DHP_base();
-        void test_MoirQueue_DHP_member();
-        void test_MoirQueue_DHP_base_ic();
-        void test_MoirQueue_DHP_member_ic();
-        void test_MoirQueue_DHP_base_stat();
-        void test_MoirQueue_DHP_member_stat();
-        void test_MoirQueue_DHP_base_align();
-        void test_MoirQueue_DHP_member_align();
-        void test_MoirQueue_DHP_base_noalign();
-        void test_MoirQueue_DHP_member_noalign();
-        void test_MoirQueue_DHP_base_cachealign();
-        void test_MoirQueue_DHP_member_cachealign();
-
-        void test_OptimisticQueue_HP_default();
-        void test_OptimisticQueue_HP_default_ic();
-        void test_OptimisticQueue_HP_default_stat();
-        void test_OptimisticQueue_HP_base();
-        void test_OptimisticQueue_HP_member();
-        void test_OptimisticQueue_HP_base_ic();
-        void test_OptimisticQueue_HP_member_ic();
-        void test_OptimisticQueue_HP_base_stat();
-        void test_OptimisticQueue_HP_member_stat();
-        void test_OptimisticQueue_HP_base_align();
-        void test_OptimisticQueue_HP_member_align();
-        void test_OptimisticQueue_HP_base_noalign();
-        void test_OptimisticQueue_HP_member_noalign();
-        void test_OptimisticQueue_HP_base_cachealign();
-        void test_OptimisticQueue_HP_member_cachealign();
-        void test_OptimisticQueue_DHP_base();
-        void test_OptimisticQueue_DHP_member();
-        void test_OptimisticQueue_DHP_base_ic();
-        void test_OptimisticQueue_DHP_member_ic();
-        void test_OptimisticQueue_DHP_base_stat();
-        void test_OptimisticQueue_DHP_member_stat();
-        void test_OptimisticQueue_DHP_base_align();
-        void test_OptimisticQueue_DHP_member_align();
-        void test_OptimisticQueue_DHP_base_noalign();
-        void test_OptimisticQueue_DHP_member_noalign();
-        void test_OptimisticQueue_DHP_base_cachealign();
-        void test_OptimisticQueue_DHP_member_cachealign();
-
-        void test_BasketQueue_HP_default();
-        void test_BasketQueue_HP_default_ic();
-        void test_BasketQueue_HP_default_stat();
-        void test_BasketQueue_HP_base();
-        void test_BasketQueue_HP_member();
-        void test_BasketQueue_HP_base_ic();
-        void test_BasketQueue_HP_member_ic();
-        void test_BasketQueue_HP_base_stat();
-        void test_BasketQueue_HP_member_stat();
-        void test_BasketQueue_HP_base_align();
-        void test_BasketQueue_HP_member_align();
-        void test_BasketQueue_HP_base_noalign();
-        void test_BasketQueue_HP_member_noalign();
-        void test_BasketQueue_HP_base_cachealign();
-        void test_BasketQueue_HP_member_cachealign();
-        void test_BasketQueue_DHP_base();
-        void test_BasketQueue_DHP_member();
-        void test_BasketQueue_DHP_base_ic();
-        void test_BasketQueue_DHP_member_ic();
-        void test_BasketQueue_DHP_base_stat();
-        void test_BasketQueue_DHP_member_stat();
-        void test_BasketQueue_DHP_base_align();
-        void test_BasketQueue_DHP_member_align();
-        void test_BasketQueue_DHP_base_noalign();
-        void test_BasketQueue_DHP_member_noalign();
-        void test_BasketQueue_DHP_base_cachealign();
-        void test_BasketQueue_DHP_member_cachealign();
-
-        void test_TsigasCycleQueue_static();
-        void test_TsigasCycleQueue_static_ic();
-        void test_TsigasCycleQueue_dyn();
-        void test_TsigasCycleQueue_dyn_ic();
-
-        void test_VyukovMPMCCycleQueue_static();
-        void test_VyukovMPMCCycleQueue_static_ic();
-        void test_VyukovMPMCCycleQueue_dyn();
-        void test_VyukovMPMCCycleQueue_dyn_ic();
-
-        CPPUNIT_TEST_SUITE(IntrusiveQueueHeaderTest)
-            CPPUNIT_TEST(test_MSQueue_HP_default)
-            CPPUNIT_TEST(test_MSQueue_HP_default_ic)
-            CPPUNIT_TEST(test_MSQueue_HP_default_stat)
-            CPPUNIT_TEST(test_MSQueue_HP_base)
-            CPPUNIT_TEST(test_MSQueue_HP_member)
-            CPPUNIT_TEST(test_MSQueue_HP_base_ic)
-            CPPUNIT_TEST(test_MSQueue_HP_member_ic)
-            CPPUNIT_TEST(test_MSQueue_HP_base_stat)
-            CPPUNIT_TEST(test_MSQueue_HP_member_stat)
-            CPPUNIT_TEST(test_MSQueue_HP_base_align)
-            CPPUNIT_TEST(test_MSQueue_HP_member_align)
-            CPPUNIT_TEST(test_MSQueue_HP_base_noalign)
-            CPPUNIT_TEST(test_MSQueue_HP_member_noalign)
-            CPPUNIT_TEST(test_MSQueue_HP_base_cachealign)
-            CPPUNIT_TEST(test_MSQueue_HP_member_cachealign)
-            CPPUNIT_TEST(test_MSQueue_DHP_base)
-            CPPUNIT_TEST(test_MSQueue_DHP_member)
-            CPPUNIT_TEST(test_MSQueue_DHP_base_ic)
-            CPPUNIT_TEST(test_MSQueue_DHP_member_ic)
-            CPPUNIT_TEST(test_MSQueue_DHP_base_stat)
-            CPPUNIT_TEST(test_MSQueue_DHP_member_stat)
-            CPPUNIT_TEST(test_MSQueue_DHP_base_align)
-            CPPUNIT_TEST(test_MSQueue_DHP_member_align)
-            CPPUNIT_TEST(test_MSQueue_DHP_base_noalign)
-            CPPUNIT_TEST(test_MSQueue_DHP_member_noalign)
-            CPPUNIT_TEST(test_MSQueue_DHP_base_cachealign)
-            CPPUNIT_TEST(test_MSQueue_DHP_member_cachealign)
-
-            CPPUNIT_TEST(test_MoirQueue_HP_default)
-            CPPUNIT_TEST(test_MoirQueue_HP_default_ic)
-            CPPUNIT_TEST(test_MoirQueue_HP_default_stat)
-            CPPUNIT_TEST(test_MoirQueue_HP_base)
-            CPPUNIT_TEST(test_MoirQueue_HP_member)
-            CPPUNIT_TEST(test_MoirQueue_HP_base_ic)
-            CPPUNIT_TEST(test_MoirQueue_HP_member_ic)
-            CPPUNIT_TEST(test_MoirQueue_HP_base_stat)
-            CPPUNIT_TEST(test_MoirQueue_HP_member_stat)
-            CPPUNIT_TEST(test_MoirQueue_HP_base_align)
-            CPPUNIT_TEST(test_MoirQueue_HP_member_align)
-            CPPUNIT_TEST(test_MoirQueue_HP_base_noalign)
-            CPPUNIT_TEST(test_MoirQueue_HP_member_noalign)
-            CPPUNIT_TEST(test_MoirQueue_HP_base_cachealign)
-            CPPUNIT_TEST(test_MoirQueue_HP_member_cachealign)
-            CPPUNIT_TEST(test_MoirQueue_DHP_base)
-            CPPUNIT_TEST(test_MoirQueue_DHP_member)
-            CPPUNIT_TEST(test_MoirQueue_DHP_base_ic)
-            CPPUNIT_TEST(test_MoirQueue_DHP_member_ic)
-            CPPUNIT_TEST(test_MoirQueue_DHP_base_stat)
-            CPPUNIT_TEST(test_MoirQueue_DHP_member_stat)
-            CPPUNIT_TEST(test_MoirQueue_DHP_base_align)
-            CPPUNIT_TEST(test_MoirQueue_DHP_member_align)
-            CPPUNIT_TEST(test_MoirQueue_DHP_base_noalign)
-            CPPUNIT_TEST(test_MoirQueue_DHP_member_noalign)
-            CPPUNIT_TEST(test_MoirQueue_DHP_base_cachealign)
-            CPPUNIT_TEST(test_MoirQueue_DHP_member_cachealign)
-
-            CPPUNIT_TEST(test_OptimisticQueue_HP_default)
-            CPPUNIT_TEST(test_OptimisticQueue_HP_default_ic)
-            CPPUNIT_TEST(test_OptimisticQueue_HP_default_stat)
-            CPPUNIT_TEST(test_OptimisticQueue_HP_base)
-            CPPUNIT_TEST(test_OptimisticQueue_HP_member)
-            CPPUNIT_TEST(test_OptimisticQueue_HP_base_ic)
-            CPPUNIT_TEST(test_OptimisticQueue_HP_member_ic)
-            CPPUNIT_TEST(test_OptimisticQueue_HP_base_stat)
-            CPPUNIT_TEST(test_OptimisticQueue_HP_member_stat)
-            CPPUNIT_TEST(test_OptimisticQueue_HP_base_align)
-            CPPUNIT_TEST(test_OptimisticQueue_HP_member_align)
-            CPPUNIT_TEST(test_OptimisticQueue_HP_base_noalign)
-            CPPUNIT_TEST(test_OptimisticQueue_HP_member_noalign)
-            CPPUNIT_TEST(test_OptimisticQueue_HP_base_cachealign)
-            CPPUNIT_TEST(test_OptimisticQueue_HP_member_cachealign)
-            CPPUNIT_TEST(test_OptimisticQueue_DHP_base)
-            CPPUNIT_TEST(test_OptimisticQueue_DHP_member)
-            CPPUNIT_TEST(test_OptimisticQueue_DHP_base_ic)
-            CPPUNIT_TEST(test_OptimisticQueue_DHP_member_ic)
-            CPPUNIT_TEST(test_OptimisticQueue_DHP_base_stat)
-            CPPUNIT_TEST(test_OptimisticQueue_DHP_member_stat)
-            CPPUNIT_TEST(test_OptimisticQueue_DHP_base_align)
-            CPPUNIT_TEST(test_OptimisticQueue_DHP_member_align)
-            CPPUNIT_TEST(test_OptimisticQueue_DHP_base_noalign)
-            CPPUNIT_TEST(test_OptimisticQueue_DHP_member_noalign)
-            CPPUNIT_TEST(test_OptimisticQueue_DHP_base_cachealign)
-            CPPUNIT_TEST(test_OptimisticQueue_DHP_member_cachealign)
-
-            CPPUNIT_TEST(test_BasketQueue_HP_default)
-            CPPUNIT_TEST(test_BasketQueue_HP_default_ic)
-            CPPUNIT_TEST(test_BasketQueue_HP_default_stat)
-            CPPUNIT_TEST(test_BasketQueue_HP_base)
-            CPPUNIT_TEST(test_BasketQueue_HP_member)
-            CPPUNIT_TEST(test_BasketQueue_HP_base_ic)
-            CPPUNIT_TEST(test_BasketQueue_HP_member_ic)
-            CPPUNIT_TEST(test_BasketQueue_HP_base_stat)
-            CPPUNIT_TEST(test_BasketQueue_HP_member_stat)
-            CPPUNIT_TEST(test_BasketQueue_HP_base_align)
-            CPPUNIT_TEST(test_BasketQueue_HP_member_align)
-            CPPUNIT_TEST(test_BasketQueue_HP_base_noalign)
-            CPPUNIT_TEST(test_BasketQueue_HP_member_noalign)
-            CPPUNIT_TEST(test_BasketQueue_HP_base_cachealign)
-            CPPUNIT_TEST(test_BasketQueue_HP_member_cachealign)
-            CPPUNIT_TEST(test_BasketQueue_DHP_base)
-            CPPUNIT_TEST(test_BasketQueue_DHP_member)
-            CPPUNIT_TEST(test_BasketQueue_DHP_base_ic)
-            CPPUNIT_TEST(test_BasketQueue_DHP_member_ic)
-            CPPUNIT_TEST(test_BasketQueue_DHP_base_stat)
-            CPPUNIT_TEST(test_BasketQueue_DHP_member_stat)
-            CPPUNIT_TEST(test_BasketQueue_DHP_base_align)
-            CPPUNIT_TEST(test_BasketQueue_DHP_member_align)
-            CPPUNIT_TEST(test_BasketQueue_DHP_base_noalign)
-            CPPUNIT_TEST(test_BasketQueue_DHP_member_noalign)
-            CPPUNIT_TEST(test_BasketQueue_DHP_base_cachealign)
-            CPPUNIT_TEST(test_BasketQueue_DHP_member_cachealign)
-
-            CPPUNIT_TEST(test_TsigasCycleQueue_static)
-            CPPUNIT_TEST(test_TsigasCycleQueue_static_ic)
-            CPPUNIT_TEST(test_TsigasCycleQueue_dyn)
-            CPPUNIT_TEST(test_TsigasCycleQueue_dyn_ic)
-
-            CPPUNIT_TEST(test_VyukovMPMCCycleQueue_static);
-            CPPUNIT_TEST(test_VyukovMPMCCycleQueue_static_ic);
-            CPPUNIT_TEST(test_VyukovMPMCCycleQueue_dyn);
-            CPPUNIT_TEST(test_VyukovMPMCCycleQueue_dyn_ic);
-
-        CPPUNIT_TEST_SUITE_END()
-    };
-}   // namespace queue
-
-#endif // #ifndef CDSTEST_HDR_INTRSUSIVE_MSQUEUE_H
diff --git a/tests/test-hdr/queue/hdr_intrusive_msqueue_dhp.cpp b/tests/test-hdr/queue/hdr_intrusive_msqueue_dhp.cpp
deleted file mode 100644 (file)
index 748e078..0000000
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
-    This file is a part of libcds - Concurrent Data Structures library
-
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
-
-    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:
-
-    * Redistributions of source code must retain the above copyright notice, this
-      list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    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.     
-*/
-
-#include "hdr_intrusive_msqueue.h"
-#include <cds/intrusive/msqueue.h>
-#include <cds/gc/dhp.h>
-
-namespace queue {
-
-#define TEST(X)     void IntrusiveQueueHeaderTest::test_##X() { test<X>(); }
-
-    namespace {
-        typedef IntrusiveQueueHeaderTest::base_hook_item< ci::msqueue::node<cds::gc::DHP > > base_item_type;
-        typedef IntrusiveQueueHeaderTest::member_hook_item< ci::msqueue::node<cds::gc::DHP > > member_item_type;
-
-        // DHP base hook
-        typedef ci::MSQueue< cds::gc::DHP, base_item_type,
-            typename ci::msqueue::make_traits<
-            ci::opt::hook<
-            ci::msqueue::base_hook< ci::opt::gc<cds::gc::DHP> >
-            >
-            , ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            >::type
-        > MSQueue_DHP_base;
-
-        // DHP member hook
-        typedef ci::MSQueue< cds::gc::DHP, member_item_type,
-            typename ci::msqueue::make_traits<
-            ci::opt::hook<
-            ci::msqueue::member_hook<
-            offsetof( member_item_type, hMember ),
-            ci::opt::gc<cds::gc::DHP>
-            >
-            >
-            , ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            >::type
-        > MSQueue_DHP_member;
-
-        /// DHP base hook + item counter
-        typedef ci::MSQueue< cds::gc::DHP, base_item_type,
-            typename ci::msqueue::make_traits<
-            ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            , ci::opt::hook<
-            ci::msqueue::base_hook< ci::opt::gc<cds::gc::DHP> >
-            >
-            , co::item_counter< cds::atomicity::item_counter >
-            , co::memory_model< co::v::relaxed_ordering >
-            >::type
-        > MSQueue_DHP_base_ic;
-
-        // DHP member hook + item counter
-        typedef ci::MSQueue< cds::gc::DHP, member_item_type,
-            typename ci::msqueue::make_traits<
-            ci::opt::hook<
-            ci::msqueue::member_hook<
-            offsetof( member_item_type, hMember ),
-            ci::opt::gc<cds::gc::DHP>
-            >
-            >
-            , ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            , co::item_counter< cds::atomicity::item_counter >
-            >::type
-        > MSQueue_DHP_member_ic;
-
-        // DHP base hook + stat
-        typedef ci::MSQueue< cds::gc::DHP, base_item_type,
-            typename ci::msqueue::make_traits<
-            ci::opt::hook<
-            ci::msqueue::base_hook< ci::opt::gc<cds::gc::DHP> >
-            >
-            , ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            , co::stat< ci::msqueue::stat<> >
-            >::type
-        > MSQueue_DHP_base_stat;
-
-        // DHP member hook + stat
-        typedef ci::MSQueue< cds::gc::DHP, member_item_type,
-            typename ci::msqueue::make_traits<
-            ci::opt::hook<
-            ci::msqueue::member_hook<
-            offsetof( member_item_type, hMember ),
-            ci::opt::gc<cds::gc::DHP>
-            >
-            >
-            , ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            , co::stat< ci::msqueue::stat<> >
-            >::type
-        > MSQueue_DHP_member_stat;
-
-        // DHP base hook + padding
-        typedef ci::MSQueue< cds::gc::DHP, base_item_type,
-            typename ci::msqueue::make_traits<
-            ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            , ci::opt::hook<
-            ci::msqueue::base_hook< ci::opt::gc<cds::gc::DHP> >
-            >
-            , co::padding< 32 >
-            >::type
-        > MSQueue_DHP_base_align;
-
-        // DHP member hook + padding
-        typedef ci::MSQueue< cds::gc::DHP, member_item_type,
-            typename ci::msqueue::make_traits<
-            ci::opt::hook<
-            ci::msqueue::member_hook<
-            offsetof( member_item_type, hMember ),
-            ci::opt::gc<cds::gc::DHP>
-            >
-            >
-            , co::padding< 32 >
-            , ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            >::type
-        > MSQueue_DHP_member_align;
-
-        // DHP base hook + no padding
-        struct traits_MSQueue_DHP_base_noalign : public ci::msqueue::traits {
-            typedef ci::msqueue::base_hook< ci::opt::gc<cds::gc::DHP> > hook;
-            typedef IntrusiveQueueHeaderTest::faked_disposer disposer;
-            enum { padding = co::no_special_padding };
-        };
-        typedef ci::MSQueue< cds::gc::DHP, base_item_type, traits_MSQueue_DHP_base_noalign > MSQueue_DHP_base_noalign;
-
-        // DHP member hook + no padding
-        struct traits_MSQueue_DHP_member_noalign : public ci::msqueue::traits {
-            typedef ci::msqueue::member_hook <
-                offsetof( member_item_type, hMember ),
-                ci::opt::gc < cds::gc::DHP >
-            > hook;
-            typedef IntrusiveQueueHeaderTest::faked_disposer disposer;
-            enum { padding = co::no_special_padding };
-        };
-        typedef ci::MSQueue< cds::gc::DHP, member_item_type, traits_MSQueue_DHP_member_noalign > MSQueue_DHP_member_noalign;
-
-
-        // DHP base hook + cache padding
-        struct traits_MSQueue_DHP_base_cachealign : public traits_MSQueue_DHP_base_noalign
-        {
-            enum { padding = co::cache_line_padding };
-        };
-        typedef ci::MSQueue< cds::gc::DHP, base_item_type, traits_MSQueue_DHP_base_cachealign > MSQueue_DHP_base_cachealign;
-
-        // DHP member hook + cache padding
-        struct traits_MSQueue_DHP_member_cachealign : public traits_MSQueue_DHP_member_noalign
-        {
-            enum { padding = co::cache_line_padding };
-        };
-        typedef ci::MSQueue< cds::gc::DHP, member_item_type, traits_MSQueue_DHP_member_cachealign > MSQueue_DHP_member_cachealign;
-    }   // namespace
-
-    TEST(MSQueue_DHP_base)
-    TEST(MSQueue_DHP_member)
-    TEST(MSQueue_DHP_base_ic)
-    TEST(MSQueue_DHP_member_ic)
-    TEST(MSQueue_DHP_base_stat)
-    TEST(MSQueue_DHP_member_stat)
-    TEST(MSQueue_DHP_base_align)
-    TEST(MSQueue_DHP_member_align)
-    TEST(MSQueue_DHP_base_noalign)
-    TEST(MSQueue_DHP_member_noalign)
-    TEST(MSQueue_DHP_base_cachealign)
-    TEST(MSQueue_DHP_member_cachealign)
-
-} // namespace queue
diff --git a/tests/test-hdr/queue/hdr_intrusive_msqueue_hp.cpp b/tests/test-hdr/queue/hdr_intrusive_msqueue_hp.cpp
deleted file mode 100644 (file)
index fa11fa4..0000000
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
-    This file is a part of libcds - Concurrent Data Structures library
-
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
-
-    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:
-
-    * Redistributions of source code must retain the above copyright notice, this
-      list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    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.     
-*/
-
-#include "hdr_intrusive_msqueue.h"
-
-#include <cds/intrusive/msqueue.h>
-#include <cds/gc/hp.h>
-
-namespace queue {
-
-#define TEST(X) void IntrusiveQueueHeaderTest::test_##X() { test<X>(); }
-
-    namespace {
-        typedef IntrusiveQueueHeaderTest::base_hook_item< ci::msqueue::node<cds::gc::HP > > base_item_type;
-        typedef IntrusiveQueueHeaderTest::member_hook_item< ci::msqueue::node<cds::gc::HP > > member_item_type;
-
-        typedef ci::MSQueue< cds::gc::HP, base_item_type,
-            typename ci::msqueue::make_traits<
-                ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            >::type
-        > MSQueue_HP_default;
-
-        /// HP + item counter
-        typedef ci::MSQueue< cds::gc::HP, base_item_type,
-            typename ci::msqueue::make_traits<
-                ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,co::item_counter< cds::atomicity::item_counter >
-                ,co::memory_model< co::v::sequential_consistent >
-            >::type
-        > MSQueue_HP_default_ic;
-
-        /// HP + stat
-        typedef ci::MSQueue< cds::gc::HP, base_item_type,
-            typename ci::msqueue::make_traits<
-                ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,co::stat< ci::msqueue::stat<> >
-            >::type
-        > MSQueue_HP_default_stat;
-
-        // HP base hook
-        typedef ci::MSQueue< cds::gc::HP, base_item_type,
-            typename ci::msqueue::make_traits<
-                ci::opt::hook<
-                    ci::msqueue::base_hook< ci::opt::gc<cds::gc::HP> >
-                >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            >::type
-        > MSQueue_HP_base;
-
-        // HP member hook
-        typedef ci::MSQueue< cds::gc::HP, member_item_type,
-            typename ci::msqueue::make_traits<
-                ci::opt::hook<
-                    ci::msqueue::member_hook<
-                        offsetof( member_item_type, hMember ),
-                        ci::opt::gc<cds::gc::HP>
-                    >
-                >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            >::type
-        > MSQueue_HP_member;
-
-        /// HP base hook + item counter
-        typedef ci::MSQueue< cds::gc::HP, base_item_type,
-            typename ci::msqueue::make_traits<
-                ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,ci::opt::hook<
-                    ci::msqueue::base_hook< ci::opt::gc<cds::gc::HP> >
-                >
-                ,co::item_counter< cds::atomicity::item_counter >
-                ,co::memory_model< co::v::relaxed_ordering >
-            >::type
-        > MSQueue_HP_base_ic;
-
-        // HP member hook + item counter
-        typedef ci::MSQueue< cds::gc::HP, member_item_type,
-            typename ci::msqueue::make_traits<
-                ci::opt::hook<
-                    ci::msqueue::member_hook<
-                        offsetof( member_item_type, hMember ),
-                        ci::opt::gc<cds::gc::HP>
-                    >
-                >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,co::item_counter< cds::atomicity::item_counter >
-            >::type
-       > MSQueue_HP_member_ic;
-
-        // HP base hook + stat
-        typedef ci::MSQueue< cds::gc::HP, base_item_type,
-            typename ci::msqueue::make_traits<
-                ci::opt::hook<
-                    ci::msqueue::base_hook< ci::opt::gc<cds::gc::HP> >
-                >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,co::stat< ci::msqueue::stat<> >
-            >::type
-        > MSQueue_HP_base_stat;
-
-        // HP member hook + stat
-        typedef ci::MSQueue< cds::gc::HP, member_item_type,
-            typename ci::msqueue::make_traits<
-                ci::opt::hook<
-                    ci::msqueue::member_hook<
-                        offsetof( member_item_type, hMember ),
-                        ci::opt::gc<cds::gc::HP>
-                    >
-                >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,co::stat< ci::msqueue::stat<> >
-            >::type
-        > MSQueue_HP_member_stat;
-
-        // HP base hook + padding
-        typedef ci::MSQueue< cds::gc::HP, base_item_type,
-            typename ci::msqueue::make_traits<
-                ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,ci::opt::hook<
-                    ci::msqueue::base_hook< ci::opt::gc<cds::gc::HP> >
-                >
-                ,co::padding< 32 >
-            >::type
-        > MSQueue_HP_base_align;
-
-        // HP member hook + padding
-        typedef ci::MSQueue< cds::gc::HP, member_item_type,
-            typename ci::msqueue::make_traits<
-                ci::opt::hook<
-                    ci::msqueue::member_hook<
-                        offsetof( member_item_type, hMember ),
-                        ci::opt::gc<cds::gc::HP>
-                    >
-                >
-                ,co::padding< 32 >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            >::type
-        > MSQueue_HP_member_align;
-
-        // HP base hook + no padding
-        struct traits_MSQueue_HP_base_noalign : public ci::msqueue::traits {
-            typedef ci::msqueue::base_hook< ci::opt::gc<cds::gc::HP> > hook;
-            typedef IntrusiveQueueHeaderTest::faked_disposer disposer;
-            enum { padding = co::no_special_padding };
-        };
-        typedef ci::MSQueue< cds::gc::HP, base_item_type, traits_MSQueue_HP_base_noalign > MSQueue_HP_base_noalign;
-
-        // HP member hook + no padding
-        struct traits_MSQueue_HP_member_noalign : public ci::msqueue::traits {
-            typedef ci::msqueue::member_hook <
-                offsetof( member_item_type, hMember ),
-                ci::opt::gc < cds::gc::HP >
-            > hook;
-            typedef IntrusiveQueueHeaderTest::faked_disposer disposer;
-            enum { padding = co::no_special_padding };
-        };
-        typedef ci::MSQueue< cds::gc::HP, member_item_type, traits_MSQueue_HP_member_noalign > MSQueue_HP_member_noalign;
-
-
-        // HP base hook + cache padding
-        struct traits_MSQueue_HP_base_cachealign : public traits_MSQueue_HP_base_noalign
-        {
-            enum { padding = co::cache_line_padding };
-        };
-        typedef ci::MSQueue< cds::gc::HP, base_item_type, traits_MSQueue_HP_base_cachealign > MSQueue_HP_base_cachealign;
-
-        // HP member hook + cache padding
-        struct traits_MSQueue_HP_member_cachealign : public traits_MSQueue_HP_member_noalign
-        {
-            enum { padding = co::cache_line_padding };
-        };
-        typedef ci::MSQueue< cds::gc::HP, member_item_type, traits_MSQueue_HP_member_cachealign > MSQueue_HP_member_cachealign;
-
-    }
-
-    TEST(MSQueue_HP_default)
-    TEST(MSQueue_HP_default_ic)
-    TEST(MSQueue_HP_default_stat)
-    TEST(MSQueue_HP_base)
-    TEST(MSQueue_HP_member)
-    TEST(MSQueue_HP_base_ic)
-    TEST(MSQueue_HP_member_ic)
-    TEST(MSQueue_HP_base_stat)
-    TEST(MSQueue_HP_member_stat)
-    TEST(MSQueue_HP_base_align)
-    TEST(MSQueue_HP_member_align)
-    TEST(MSQueue_HP_base_noalign)
-    TEST(MSQueue_HP_member_noalign)
-    TEST(MSQueue_HP_base_cachealign)
-    TEST(MSQueue_HP_member_cachealign)
-}
-
diff --git a/tests/test-hdr/queue/hdr_intrusive_optimisticqueue_dhp.cpp b/tests/test-hdr/queue/hdr_intrusive_optimisticqueue_dhp.cpp
deleted file mode 100644 (file)
index d62e683..0000000
+++ /dev/null
@@ -1,214 +0,0 @@
-/*
-    This file is a part of libcds - Concurrent Data Structures library
-
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
-
-    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:
-
-    * Redistributions of source code must retain the above copyright notice, this
-      list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    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.     
-*/
-
-#include "hdr_intrusive_msqueue.h"
-#include <cds/gc/dhp.h>
-#include <cds/intrusive/optimistic_queue.h>
-
-namespace queue {
-
-#define TEST(X) void IntrusiveQueueHeaderTest::test_##X() { test<X>(); }
-
-    namespace {
-        struct base_hook_item: public ci::optimistic_queue::node< cds::gc::DHP >
-        {
-            int nVal;
-            int nDisposeCount;
-
-            base_hook_item()
-                : nDisposeCount(0)
-            {}
-        };
-
-        struct member_hook_item
-        {
-            int nVal;
-            int nDisposeCount;
-            ci::optimistic_queue::node< cds::gc::DHP > hMember;
-
-            member_hook_item()
-                : nDisposeCount(0)
-            {}
-        };
-
-        // DHP base hook
-        typedef ci::OptimisticQueue< cds::gc::DHP, base_hook_item,
-            typename ci::optimistic_queue::make_traits<
-                ci::opt::hook<
-                    ci::optimistic_queue::base_hook< ci::opt::gc<cds::gc::DHP> >
-                >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,co::memory_model< co::v::relaxed_ordering >
-            >::type
-        > OptimisticQueue_DHP_base;
-
-        // DHP member hook
-        struct traits_OptimisticQueue_DHP_member : public OptimisticQueue_DHP_base::traits
-        {
-            typedef ci::optimistic_queue::member_hook <
-                offsetof( member_hook_item, hMember ),
-                ci::opt::gc < cds::gc::DHP >
-            > hook;
-        };
-        typedef ci::OptimisticQueue< cds::gc::DHP, member_hook_item, traits_OptimisticQueue_DHP_member > OptimisticQueue_DHP_member;
-
-        /// DHP base hook + item counter
-        typedef ci::OptimisticQueue< cds::gc::DHP, base_hook_item,
-            typename ci::optimistic_queue::make_traits<
-                ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,ci::opt::hook<
-                    ci::optimistic_queue::base_hook< ci::opt::gc<cds::gc::DHP> >
-                >
-                ,co::item_counter< cds::atomicity::item_counter >
-            >::type
-        > OptimisticQueue_DHP_base_ic;
-
-        // DHP member hook + item counter
-        typedef ci::OptimisticQueue< cds::gc::DHP, member_hook_item,
-            typename ci::optimistic_queue::make_traits<
-                cds::opt::type_traits< traits_OptimisticQueue_DHP_member >
-                ,co::item_counter< cds::atomicity::item_counter >
-            >::type
-       > OptimisticQueue_DHP_member_ic;
-
-        // DHP base hook + stat
-        typedef ci::OptimisticQueue< cds::gc::DHP, base_hook_item,
-            typename ci::optimistic_queue::make_traits<
-                ci::opt::hook<
-                    ci::optimistic_queue::base_hook< ci::opt::gc<cds::gc::DHP> >
-                >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,co::stat< ci::optimistic_queue::stat<> >
-            >::type
-        > OptimisticQueue_DHP_base_stat;
-
-        // DHP member hook + stat
-        typedef ci::OptimisticQueue< cds::gc::DHP, member_hook_item,
-            typename ci::optimistic_queue::make_traits<
-                cds::opt::type_traits< OptimisticQueue_DHP_base_stat::traits >
-                , ci::opt::hook<
-                    ci::optimistic_queue::member_hook<
-                        offsetof(member_hook_item, hMember),
-                        ci::opt::gc<cds::gc::DHP>
-                    >
-                >
-            >::type
-        > OptimisticQueue_DHP_member_stat;
-
-        // DHP base hook + padding
-        typedef ci::OptimisticQueue< cds::gc::DHP, base_hook_item,
-            typename ci::optimistic_queue::make_traits<
-                ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,ci::opt::hook<
-                    ci::optimistic_queue::base_hook< ci::opt::gc<cds::gc::DHP> >
-                >
-                ,co::padding< 32 >
-            >::type
-        > OptimisticQueue_DHP_base_align;
-
-        // DHP member hook + padding
-        typedef ci::OptimisticQueue< cds::gc::DHP, member_hook_item,
-            typename ci::optimistic_queue::make_traits<
-                ci::opt::hook<
-                    ci::optimistic_queue::member_hook<
-                        offsetof(member_hook_item, hMember),
-                        ci::opt::gc<cds::gc::DHP>
-                    >
-                >
-                ,co::padding< 32 >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            >::type
-        > OptimisticQueue_DHP_member_align;
-
-        // DHP base hook + no padding
-        typedef ci::OptimisticQueue< cds::gc::DHP, base_hook_item,
-            typename ci::optimistic_queue::make_traits<
-                ci::opt::hook<
-                    ci::optimistic_queue::base_hook< ci::opt::gc<cds::gc::DHP> >
-                >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,co::padding< co::no_special_padding >
-            >::type
-        > OptimisticQueue_DHP_base_noalign;
-
-        // DHP member hook + no padding
-        typedef ci::OptimisticQueue< cds::gc::DHP, member_hook_item,
-            typename ci::optimistic_queue::make_traits<
-                ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,ci::opt::hook<
-                    ci::optimistic_queue::member_hook<
-                        offsetof(member_hook_item, hMember),
-                        ci::opt::gc<cds::gc::DHP>
-                    >
-                >
-                ,co::padding< co::no_special_padding >
-            >::type
-        > OptimisticQueue_DHP_member_noalign;
-
-
-        // DHP base hook + cache padding
-        typedef ci::OptimisticQueue< cds::gc::DHP, base_hook_item,
-            typename ci::optimistic_queue::make_traits<
-                ci::opt::hook<
-                    ci::optimistic_queue::base_hook< ci::opt::gc<cds::gc::DHP> >
-                >
-                ,co::padding< co::cache_line_padding >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            >::type
-        > OptimisticQueue_DHP_base_cachealign;
-
-        // DHP member hook + cache padding
-        typedef ci::OptimisticQueue< cds::gc::DHP, member_hook_item,
-            typename ci::optimistic_queue::make_traits<
-                ci::opt::hook<
-                    ci::optimistic_queue::member_hook<
-                        offsetof(member_hook_item, hMember),
-                        ci::opt::gc<cds::gc::DHP>
-                    >
-                >
-                ,co::padding< co::cache_line_padding >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            >::type
-        > OptimisticQueue_DHP_member_cachealign;
-    }
-
-    TEST(OptimisticQueue_DHP_base)
-    TEST(OptimisticQueue_DHP_member)
-    TEST(OptimisticQueue_DHP_base_ic)
-    TEST(OptimisticQueue_DHP_member_ic)
-    TEST(OptimisticQueue_DHP_base_stat)
-    TEST(OptimisticQueue_DHP_member_stat)
-    TEST(OptimisticQueue_DHP_base_align)
-    TEST(OptimisticQueue_DHP_member_align)
-    TEST(OptimisticQueue_DHP_base_noalign)
-    TEST(OptimisticQueue_DHP_member_noalign)
-    TEST(OptimisticQueue_DHP_base_cachealign)
-    TEST(OptimisticQueue_DHP_member_cachealign)
-}
diff --git a/tests/test-hdr/queue/hdr_intrusive_optimisticqueue_hp.cpp b/tests/test-hdr/queue/hdr_intrusive_optimisticqueue_hp.cpp
deleted file mode 100644 (file)
index fc18065..0000000
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
-    This file is a part of libcds - Concurrent Data Structures library
-
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
-
-    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:
-
-    * Redistributions of source code must retain the above copyright notice, this
-      list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    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.     
-*/
-
-#include "hdr_intrusive_msqueue.h"
-#include <cds/gc/hp.h>
-#include <cds/intrusive/optimistic_queue.h>
-
-namespace queue {
-
-#define TEST(X) void IntrusiveQueueHeaderTest::test_##X() { test<X>(); }
-
-    namespace {
-        struct base_hook_item: public ci::optimistic_queue::node< cds::gc::HP >
-        {
-            int nVal;
-            int nDisposeCount;
-
-            base_hook_item()
-                : nDisposeCount(0)
-            {}
-        };
-
-        struct member_hook_item
-        {
-            int nVal;
-            int nDisposeCount;
-            ci::optimistic_queue::node< cds::gc::HP > hMember;
-
-            member_hook_item()
-                : nDisposeCount(0)
-            {}
-        };
-
-        struct traits_OptimisticQueue_HP_default : public ci::optimistic_queue::traits
-        {
-            typedef IntrusiveQueueHeaderTest::faked_disposer disposer;
-        };
-        typedef ci::OptimisticQueue< cds::gc::HP, base_hook_item, traits_OptimisticQueue_HP_default > OptimisticQueue_HP_default;
-
-        /// HP + item counter
-        struct traits_OptimisticQueue_HP_default_ic : public traits_OptimisticQueue_HP_default
-        {
-            typedef cds::atomicity::item_counter item_counter;
-        };
-        typedef ci::OptimisticQueue< cds::gc::HP, base_hook_item, traits_OptimisticQueue_HP_default_ic > OptimisticQueue_HP_default_ic;
-
-        /// HP + stat
-        struct traits_OptimisticQueue_HP_default_stat : public
-            ci::optimistic_queue::make_traits <
-                ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                , co::stat< ci::optimistic_queue::stat<> >
-                , co::memory_model< co::v::sequential_consistent >
-            > ::type
-        {};
-        typedef ci::OptimisticQueue< cds::gc::HP, base_hook_item, traits_OptimisticQueue_HP_default_stat > OptimisticQueue_HP_default_stat;
-
-        // HP base hook
-        typedef ci::OptimisticQueue< cds::gc::HP, base_hook_item,
-            typename ci::optimistic_queue::make_traits<
-                ci::opt::hook<
-                    ci::optimistic_queue::base_hook< ci::opt::gc<cds::gc::HP> >
-                >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,co::memory_model< co::v::relaxed_ordering >
-            >::type
-        > OptimisticQueue_HP_base;
-
-        // HP member hook
-        struct traits_OptimisticQueue_HP_member : public OptimisticQueue_HP_base::traits
-        {
-            typedef ci::optimistic_queue::member_hook <
-                offsetof( member_hook_item, hMember ),
-                ci::opt::gc < cds::gc::HP >
-            > hook;
-        };
-        typedef ci::OptimisticQueue< cds::gc::HP, member_hook_item, traits_OptimisticQueue_HP_member > OptimisticQueue_HP_member;
-
-        /// HP base hook + item counter
-        typedef ci::OptimisticQueue< cds::gc::HP, base_hook_item,
-            typename ci::optimistic_queue::make_traits<
-                ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,ci::opt::hook<
-                    ci::optimistic_queue::base_hook< ci::opt::gc<cds::gc::HP> >
-                >
-                ,co::item_counter< cds::atomicity::item_counter >
-            >::type
-        > OptimisticQueue_HP_base_ic;
-
-        // HP member hook + item counter
-        typedef ci::OptimisticQueue< cds::gc::HP, member_hook_item,
-            typename ci::optimistic_queue::make_traits<
-                cds::opt::type_traits< traits_OptimisticQueue_HP_member >
-                ,co::item_counter< cds::atomicity::item_counter >
-            >::type
-       > OptimisticQueue_HP_member_ic;
-
-        // HP base hook + stat
-        typedef ci::OptimisticQueue< cds::gc::HP, base_hook_item,
-            typename ci::optimistic_queue::make_traits<
-                ci::opt::hook<
-                    ci::optimistic_queue::base_hook< ci::opt::gc<cds::gc::HP> >
-                >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,co::stat< ci::optimistic_queue::stat<> >
-            >::type
-        > OptimisticQueue_HP_base_stat;
-
-        // HP member hook + stat
-        typedef ci::OptimisticQueue< cds::gc::HP, member_hook_item,
-            typename ci::optimistic_queue::make_traits<
-                cds::opt::type_traits< OptimisticQueue_HP_base_stat::traits >
-                , ci::opt::hook<
-                    ci::optimistic_queue::member_hook<
-                        offsetof(member_hook_item, hMember),
-                        ci::opt::gc<cds::gc::HP>
-                    >
-                >
-            >::type
-        > OptimisticQueue_HP_member_stat;
-
-        // HP base hook + padding
-        typedef ci::OptimisticQueue< cds::gc::HP, base_hook_item,
-            typename ci::optimistic_queue::make_traits<
-                ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,ci::opt::hook<
-                    ci::optimistic_queue::base_hook< ci::opt::gc<cds::gc::HP> >
-                >
-                ,co::padding< 32 >
-            >::type
-        > OptimisticQueue_HP_base_align;
-
-        // HP member hook + padding
-        typedef ci::OptimisticQueue< cds::gc::HP, member_hook_item,
-            typename ci::optimistic_queue::make_traits<
-                ci::opt::hook<
-                    ci::optimistic_queue::member_hook<
-                        offsetof(member_hook_item, hMember),
-                        ci::opt::gc<cds::gc::HP>
-                    >
-                >
-                ,co::padding< 32 >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            >::type
-        > OptimisticQueue_HP_member_align;
-
-        // HP base hook + no padding
-        typedef ci::OptimisticQueue< cds::gc::HP, base_hook_item,
-            typename ci::optimistic_queue::make_traits<
-                ci::opt::hook<
-                    ci::optimistic_queue::base_hook< ci::opt::gc<cds::gc::HP> >
-                >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,co::padding< co::no_special_padding >
-            >::type
-        > OptimisticQueue_HP_base_noalign;
-
-        // HP member hook + no padding
-        typedef ci::OptimisticQueue< cds::gc::HP, member_hook_item,
-            typename ci::optimistic_queue::make_traits<
-                ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                ,ci::opt::hook<
-                    ci::optimistic_queue::member_hook<
-                        offsetof(member_hook_item, hMember),
-                        ci::opt::gc<cds::gc::HP>
-                    >
-                >
-                ,co::padding< co::no_special_padding >
-            >::type
-        > OptimisticQueue_HP_member_noalign;
-
-
-        // HP base hook + cache padding
-        typedef ci::OptimisticQueue< cds::gc::HP, base_hook_item,
-            typename ci::optimistic_queue::make_traits<
-                ci::opt::hook<
-                    ci::optimistic_queue::base_hook< ci::opt::gc<cds::gc::HP> >
-                >
-                ,co::padding< co::cache_line_padding >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            >::type
-        > OptimisticQueue_HP_base_cachealign;
-
-        // HP member hook + cache padding
-        typedef ci::OptimisticQueue< cds::gc::HP, member_hook_item,
-            typename ci::optimistic_queue::make_traits<
-                ci::opt::hook<
-                    ci::optimistic_queue::member_hook<
-                        offsetof(member_hook_item, hMember),
-                        ci::opt::gc<cds::gc::HP>
-                    >
-                >
-                ,co::padding< co::cache_line_padding >
-                ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            >::type
-        > OptimisticQueue_HP_member_cachealign;
-    }
-
-    TEST(OptimisticQueue_HP_default)
-    TEST(OptimisticQueue_HP_default_ic)
-    TEST(OptimisticQueue_HP_default_stat)
-    TEST(OptimisticQueue_HP_base)
-    TEST(OptimisticQueue_HP_member)
-    TEST(OptimisticQueue_HP_base_ic)
-    TEST(OptimisticQueue_HP_member_ic)
-    TEST(OptimisticQueue_HP_base_stat)
-    TEST(OptimisticQueue_HP_member_stat)
-    TEST(OptimisticQueue_HP_base_align)
-    TEST(OptimisticQueue_HP_member_align)
-    TEST(OptimisticQueue_HP_base_noalign)
-    TEST(OptimisticQueue_HP_member_noalign)
-    TEST(OptimisticQueue_HP_base_cachealign)
-    TEST(OptimisticQueue_HP_member_cachealign)
-}
diff --git a/tests/test-hdr/queue/hdr_intrusive_segmented_queue.h b/tests/test-hdr/queue/hdr_intrusive_segmented_queue.h
deleted file mode 100644 (file)
index ae6ffde..0000000
+++ /dev/null
@@ -1,296 +0,0 @@
-/*
-    This file is a part of libcds - Concurrent Data Structures library
-
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
-
-    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:
-
-    * Redistributions of source code must retain the above copyright notice, this
-      list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    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.     
-*/
-
-#ifndef CDSTEST_HDR_INTRUSIVE_SEGMENTED_QUEUE_H
-#define CDSTEST_HDR_INTRUSIVE_SEGMENTED_QUEUE_H
-
-#include "cppunit/cppunit_proxy.h"
-#include <cds/intrusive/details/base.h>
-#include "size_check.h"
-
-namespace queue {
-
-    class HdrIntrusiveSegmentedQueue : public CppUnitMini::TestCase
-    {
-        struct item {
-            int  nValue;
-
-            size_t  nDisposeCount;
-            size_t  nDispose2Count;
-
-            item()
-                : nValue( 0 )
-                , nDisposeCount( 0 )
-                , nDispose2Count( 0 )
-            {}
-
-            item( int nVal )
-                : nValue( nVal )
-                , nDisposeCount( 0 )
-                , nDispose2Count( 0 )
-            {}
-        };
-
-        struct big_item : public item
-        {
-            big_item()
-            {}
-
-            big_item( int nVal )
-                : item( nVal )
-            {}
-
-            int arr[80];
-        };
-
-        struct Disposer
-        {
-            void operator()( item * p )
-            {
-                ++p->nDisposeCount;
-            }
-        };
-
-        struct Disposer2
-        {
-            void operator()( item * p )
-            {
-                ++p->nDispose2Count;
-            }
-        };
-
-        template <typename Queue>
-        void test()
-        {
-            for ( size_t nQuasiFactor = 2; nQuasiFactor <= 256; ++nQuasiFactor ) {
-                CPPUNIT_MSG( "QuasiFactor=" << nQuasiFactor << "..." );
-                test_qf<Queue>( nQuasiFactor );
-            }
-        }
-
-        template <typename Queue>
-        void test_qf( size_t nQuasiFactor )
-        {
-            typedef typename Queue::value_type value_type;
-
-            static size_t const c_nItemCount = 1000;
-            value_type val[c_nItemCount];
-            for ( int i = 0; i < static_cast<int>(sizeof(val)/sizeof(val[0])); ++i )
-                val[i].nValue = i;
-
-            {
-                Queue q( nQuasiFactor );
-                CPPUNIT_CHECK( q.quasi_factor() == cds::beans::ceil2(nQuasiFactor) );
-                CPPUNIT_CHECK( misc::check_size( q, 0 ));
-                CPPUNIT_CHECK( q.empty() );
-
-                // push/enqueue
-                for ( size_t i = 0; i < sizeof(val)/sizeof(val[0]); ++i ) {
-                    if ( i & 1 ) {
-                        CPPUNIT_ASSERT( q.push( val[i] ));
-                    }
-                    else {
-                        CPPUNIT_ASSERT( q.enqueue( val[i] ));
-                    }
-
-                    CPPUNIT_CHECK( misc::check_size( q, i + 1 ));
-                }
-                CPPUNIT_CHECK( !q.empty() );
-
-                // pop/dequeue
-                size_t nCount = 0;
-                while ( !q.empty() ) {
-                    value_type * pVal;
-                    if ( nCount & 1 )
-                        pVal = q.pop();
-                    else
-                        pVal = q.dequeue();
-
-                    CPPUNIT_ASSERT( pVal != nullptr );
-
-                    int nSegment = int( nCount / q.quasi_factor() );
-                    int nMin = nSegment * int(q.quasi_factor());
-                    int nMax = nMin + int(q.quasi_factor()) - 1;
-                    CPPUNIT_CHECK_EX( nMin <= pVal->nValue && pVal->nValue <= nMax, nMin << " <= " << pVal->nValue << " <= " << nMax );
-
-                    ++nCount;
-                    CPPUNIT_CHECK( misc::check_size( q, sizeof(val)/sizeof(val[0]) - nCount ));
-                }
-                CPPUNIT_CHECK( nCount == sizeof(val)/sizeof(val[0]) );
-                CPPUNIT_CHECK( q.empty() );
-                CPPUNIT_CHECK( misc::check_size( q, 0 ));
-
-                // pop from empty queue
-                CPPUNIT_ASSERT( q.pop() == nullptr );
-                CPPUNIT_CHECK( q.empty() );
-                CPPUNIT_CHECK( misc::check_size( q, 0 ));
-
-                // check if Disposer has not been called
-                Queue::gc::force_dispose();
-                for ( int i = 0; i < static_cast<int>( sizeof(val)/sizeof(val[0]) ); ++i ) {
-                    CPPUNIT_CHECK( val[i].nDisposeCount == 0 );
-                    CPPUNIT_CHECK( val[i].nDispose2Count == 0 );
-                }
-
-                // Manually dispose the items
-                for ( int i = 0; i < static_cast<int>( sizeof(val)/sizeof(val[0])); ++i )
-                    Queue::gc::template retire<Disposer>( &(val[i]) );
-
-                // check if Disposer has been called
-                Queue::gc::force_dispose();
-                for ( int i = 0; i < static_cast<int>( sizeof(val)/sizeof(val[0])); ++i ) {
-                    CPPUNIT_CHECK( val[i].nDisposeCount == 1 );
-                    CPPUNIT_CHECK( val[i].nDispose2Count == 0 );
-                }
-
-
-                // clear
-                for ( int i = 0; i < static_cast<int>( sizeof(val)/sizeof(val[0])); ++i )
-                    CPPUNIT_CHECK( q.push( val[i] ) );
-                CPPUNIT_CHECK( misc::check_size( q, sizeof(val)/sizeof(val[0]) ));
-                CPPUNIT_CHECK( !q.empty() );
-
-                q.clear();
-                CPPUNIT_CHECK( misc::check_size( q, 0));
-                CPPUNIT_CHECK( q.empty() );
-
-                // check if Disposer has been called
-                Queue::gc::force_dispose();
-                for ( int i = 0; i < static_cast<int>( sizeof(val)/sizeof(val[0])); ++i ) {
-                    CPPUNIT_CHECK( val[i].nDisposeCount == 2 );
-                    CPPUNIT_CHECK( val[i].nDispose2Count == 0 );
-                }
-
-                // clear_with
-                for ( int i = 0; i < static_cast<int>( sizeof(val)/sizeof(val[0])); ++i )
-                    CPPUNIT_CHECK( q.push( val[i] ) );
-                CPPUNIT_CHECK( misc::check_size( q, sizeof(val)/sizeof(val[0]) ));
-                CPPUNIT_CHECK( !q.empty() );
-
-                q.clear_with( Disposer2() );
-                CPPUNIT_CHECK( misc::check_size( q, 0));
-                CPPUNIT_CHECK( q.empty() );
-
-                // check if Disposer has been called
-                Queue::gc::force_dispose();
-                for ( int i = 0; i < static_cast<int>( sizeof(val)/sizeof(val[0])); ++i ) {
-                    CPPUNIT_CHECK( val[i].nDisposeCount == 2 );
-                    CPPUNIT_CHECK( val[i].nDispose2Count == 1 );
-                }
-
-                // check clear on destruct
-                for ( int i = 0; i < static_cast<int>( sizeof(val)/sizeof(val[0])); ++i )
-                    CPPUNIT_CHECK( q.push( val[i] ) );
-                CPPUNIT_CHECK( misc::check_size( q, sizeof(val)/sizeof(val[0]) ));
-                CPPUNIT_CHECK( !q.empty() );
-            }
-
-            // check if Disposer has been called
-            Queue::gc::force_dispose();
-            for ( int i = 0; i < static_cast<int>( sizeof(val)/sizeof(val[0])); ++i ) {
-                CPPUNIT_CHECK( val[i].nDisposeCount == 3 );
-                CPPUNIT_CHECK( val[i].nDispose2Count == 1 );
-            }
-        }
-
-        void SegmQueue_HP();
-        void SegmQueue_HP_mutex();
-        void SegmQueue_HP_shuffle();
-        void SegmQueue_HP_stat();
-        void SegmQueue_HP_cacheline_padding();
-        void SegmQueue_HP_mutex_cacheline_padding();
-        void SegmQueue_HP_shuffle_cacheline_padding();
-        void SegmQueue_HP_stat_cacheline_padding();
-        void SegmQueue_HP_256_padding();
-        void SegmQueue_HP_mutex_256_padding();
-        void SegmQueue_HP_shuffle_256_padding();
-        void SegmQueue_HP_stat_256_padding();
-        void SegmQueue_HP_cacheline_padding_bigdata();
-        void SegmQueue_HP_mutex_cacheline_padding_bigdata();
-        void SegmQueue_HP_shuffle_cacheline_padding_bigdata();
-        void SegmQueue_HP_stat_cacheline_padding_bigdata();
-
-        void SegmQueue_DHP();
-        void SegmQueue_DHP_mutex();
-        void SegmQueue_DHP_shuffle();
-        void SegmQueue_DHP_stat();
-        void SegmQueue_DHP_cacheline_padding();
-        void SegmQueue_DHP_mutex_cacheline_padding();
-        void SegmQueue_DHP_shuffle_cacheline_padding();
-        void SegmQueue_DHP_stat_cacheline_padding();
-        void SegmQueue_DHP_256_padding();
-        void SegmQueue_DHP_mutex_256_padding();
-        void SegmQueue_DHP_shuffle_256_padding();
-        void SegmQueue_DHP_stat_256_padding();
-        void SegmQueue_DHP_cacheline_padding_bigdata();
-        void SegmQueue_DHP_mutex_cacheline_padding_bigdata();
-        void SegmQueue_DHP_shuffle_cacheline_padding_bigdata();
-        void SegmQueue_DHP_stat_cacheline_padding_bigdata();
-
-        CPPUNIT_TEST_SUITE(HdrIntrusiveSegmentedQueue)
-            CPPUNIT_TEST( SegmQueue_HP )
-            CPPUNIT_TEST( SegmQueue_HP_mutex )
-            CPPUNIT_TEST( SegmQueue_HP_shuffle )
-            CPPUNIT_TEST( SegmQueue_HP_stat )
-            CPPUNIT_TEST( SegmQueue_HP_cacheline_padding )
-            CPPUNIT_TEST( SegmQueue_HP_mutex_cacheline_padding )
-            CPPUNIT_TEST( SegmQueue_HP_shuffle_cacheline_padding )
-            CPPUNIT_TEST( SegmQueue_HP_stat_cacheline_padding )
-            CPPUNIT_TEST( SegmQueue_HP_256_padding )
-            CPPUNIT_TEST( SegmQueue_HP_mutex_256_padding )
-            CPPUNIT_TEST( SegmQueue_HP_shuffle_256_padding )
-            CPPUNIT_TEST( SegmQueue_HP_stat_256_padding )
-            CPPUNIT_TEST( SegmQueue_HP_cacheline_padding_bigdata )
-            CPPUNIT_TEST( SegmQueue_HP_mutex_cacheline_padding_bigdata )
-            CPPUNIT_TEST( SegmQueue_HP_shuffle_cacheline_padding_bigdata )
-            CPPUNIT_TEST( SegmQueue_HP_stat_cacheline_padding_bigdata )
-
-            CPPUNIT_TEST( SegmQueue_DHP )
-            CPPUNIT_TEST( SegmQueue_DHP_mutex )
-            CPPUNIT_TEST( SegmQueue_DHP_shuffle )
-            CPPUNIT_TEST( SegmQueue_DHP_stat )
-            CPPUNIT_TEST( SegmQueue_DHP_cacheline_padding )
-            CPPUNIT_TEST( SegmQueue_DHP_mutex_cacheline_padding )
-            CPPUNIT_TEST( SegmQueue_DHP_shuffle_cacheline_padding )
-            CPPUNIT_TEST( SegmQueue_DHP_stat_cacheline_padding )
-            CPPUNIT_TEST( SegmQueue_DHP_256_padding )
-            CPPUNIT_TEST( SegmQueue_DHP_mutex_256_padding )
-            CPPUNIT_TEST( SegmQueue_DHP_shuffle_256_padding )
-            CPPUNIT_TEST( SegmQueue_DHP_stat_256_padding )
-            CPPUNIT_TEST( SegmQueue_DHP_cacheline_padding_bigdata )
-            CPPUNIT_TEST( SegmQueue_DHP_mutex_cacheline_padding_bigdata )
-            CPPUNIT_TEST( SegmQueue_DHP_shuffle_cacheline_padding_bigdata )
-            CPPUNIT_TEST( SegmQueue_DHP_stat_cacheline_padding_bigdata )
-        CPPUNIT_TEST_SUITE_END()
-    };
-
-} // namespace queue
-
-#endif // CDSTEST_HDR_INTRUSIVE_SEGMENTED_QUEUE_H
diff --git a/tests/test-hdr/queue/hdr_intrusive_segmented_queue_dhp.cpp b/tests/test-hdr/queue/hdr_intrusive_segmented_queue_dhp.cpp
deleted file mode 100644 (file)
index 2923256..0000000
+++ /dev/null
@@ -1,253 +0,0 @@
-/*
-    This file is a part of libcds - Concurrent Data Structures library
-
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
-
-    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:
-
-    * Redistributions of source code must retain the above copyright notice, this
-      list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    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.     
-*/
-
-#include "hdr_intrusive_segmented_queue.h"
-#include <cds/intrusive/segmented_queue.h>
-#include <cds/gc/dhp.h>
-
-namespace queue {
-
-    void HdrIntrusiveSegmentedQueue::SegmQueue_DHP()
-    {
-        struct queue_traits : public cds::intrusive::segmented_queue::traits
-        {
-            typedef Disposer disposer;
-        };
-        typedef cds::intrusive::SegmentedQueue< cds::gc::DHP, item, queue_traits > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrIntrusiveSegmentedQueue::SegmQueue_DHP_mutex()
-    {
-        struct queue_traits : public
-            cds::intrusive::segmented_queue::make_traits <
-                cds::intrusive::opt::disposer< Disposer >
-                ,cds::opt::lock_type < std::mutex >
-            > ::type
-        {};
-        typedef cds::intrusive::SegmentedQueue< cds::gc::DHP, item, queue_traits > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrIntrusiveSegmentedQueue::SegmQueue_DHP_shuffle()
-    {
-        typedef cds::intrusive::SegmentedQueue< cds::gc::DHP, item,
-            cds::intrusive::segmented_queue::make_traits<
-                cds::intrusive::opt::disposer< Disposer >
-                ,cds::opt::item_counter< cds::atomicity::item_counter >
-                ,cds::opt::permutation_generator< cds::opt::v::random_shuffle_permutation<> >
-            >::type
-        > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrIntrusiveSegmentedQueue::SegmQueue_DHP_stat()
-    {
-        typedef cds::intrusive::SegmentedQueue< cds::gc::DHP, item,
-            cds::intrusive::segmented_queue::make_traits<
-                cds::intrusive::opt::disposer< Disposer >
-                ,cds::opt::item_counter< cds::atomicity::item_counter >
-                ,cds::opt::permutation_generator< cds::opt::v::random_permutation<> >
-                ,cds::opt::stat< cds::intrusive::segmented_queue::stat<> >
-            >::type
-        > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrIntrusiveSegmentedQueue::SegmQueue_DHP_cacheline_padding()
-    {
-        struct queue_traits : public cds::intrusive::segmented_queue::traits
-        {
-            typedef Disposer disposer;
-            enum { padding = cds::opt::cache_line_padding };
-        };
-        typedef cds::intrusive::SegmentedQueue< cds::gc::DHP, item, queue_traits > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrIntrusiveSegmentedQueue::SegmQueue_DHP_mutex_cacheline_padding()
-    {
-        struct queue_traits : public
-            cds::intrusive::segmented_queue::make_traits <
-                cds::intrusive::opt::disposer< Disposer >
-                , cds::opt::padding< cds::opt::cache_line_padding >
-                ,cds::opt::lock_type < std::mutex >
-            > ::type
-        {};
-        typedef cds::intrusive::SegmentedQueue< cds::gc::DHP, item, queue_traits > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrIntrusiveSegmentedQueue::SegmQueue_DHP_shuffle_cacheline_padding()
-    {
-        typedef cds::intrusive::SegmentedQueue< cds::gc::DHP, item,
-            cds::intrusive::segmented_queue::make_traits<
-                cds::intrusive::opt::disposer< Disposer >
-                ,cds::opt::item_counter< cds::atomicity::item_counter >
-                ,cds::opt::permutation_generator< cds::opt::v::random_shuffle_permutation<> >
-                , cds::opt::padding< cds::opt::cache_line_padding >
-            >::type
-        > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrIntrusiveSegmentedQueue::SegmQueue_DHP_stat_cacheline_padding()
-    {
-        typedef cds::intrusive::SegmentedQueue< cds::gc::DHP, item,
-            cds::intrusive::segmented_queue::make_traits<
-                cds::intrusive::opt::disposer< Disposer >
-                ,cds::opt::item_counter< cds::atomicity::item_counter >
-                ,cds::opt::permutation_generator< cds::opt::v::random_permutation<> >
-                ,cds::opt::stat< cds::intrusive::segmented_queue::stat<> >
-                , cds::opt::padding< cds::opt::cache_line_padding >
-            >::type
-        > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrIntrusiveSegmentedQueue::SegmQueue_DHP_256_padding()
-    {
-        struct queue_traits : public cds::intrusive::segmented_queue::traits
-        {
-            typedef Disposer disposer;
-            enum { padding = 256 };
-        };
-        typedef cds::intrusive::SegmentedQueue< cds::gc::DHP, item, queue_traits > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrIntrusiveSegmentedQueue::SegmQueue_DHP_mutex_256_padding()
-    {
-        struct queue_traits : public
-            cds::intrusive::segmented_queue::make_traits <
-                cds::intrusive::opt::disposer< Disposer >
-                , cds::opt::padding< 256 >
-                ,cds::opt::lock_type < std::mutex >
-            > ::type
-        {};
-        typedef cds::intrusive::SegmentedQueue< cds::gc::DHP, item, queue_traits > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrIntrusiveSegmentedQueue::SegmQueue_DHP_shuffle_256_padding()
-    {
-        typedef cds::intrusive::SegmentedQueue< cds::gc::DHP, item,
-            cds::intrusive::segmented_queue::make_traits<
-                cds::intrusive::opt::disposer< Disposer >
-                ,cds::opt::item_counter< cds::atomicity::item_counter >
-                ,cds::opt::permutation_generator< cds::opt::v::random_shuffle_permutation<> >
-                , cds::opt::padding< 256 >
-            >::type
-        > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrIntrusiveSegmentedQueue::SegmQueue_DHP_stat_256_padding()
-    {
-        typedef cds::intrusive::SegmentedQueue< cds::gc::DHP, item,
-            cds::intrusive::segmented_queue::make_traits<
-                cds::intrusive::opt::disposer< Disposer >
-                ,cds::opt::item_counter< cds::atomicity::item_counter >
-                ,cds::opt::permutation_generator< cds::opt::v::random_permutation<> >
-                ,cds::opt::stat< cds::intrusive::segmented_queue::stat<> >
-                , cds::opt::padding< 256 >
-            >::type
-        > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrIntrusiveSegmentedQueue::SegmQueue_DHP_cacheline_padding_bigdata()
-    {
-        struct queue_traits : public cds::intrusive::segmented_queue::traits
-        {
-            typedef Disposer disposer;
-            enum { padding = cds::opt::cache_line_padding };
-        };
-        typedef cds::intrusive::SegmentedQueue< cds::gc::DHP, big_item, queue_traits > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrIntrusiveSegmentedQueue::SegmQueue_DHP_mutex_cacheline_padding_bigdata()
-    {
-        struct queue_traits : public
-            cds::intrusive::segmented_queue::make_traits <
-                cds::intrusive::opt::disposer< Disposer >
-                , cds::opt::padding< cds::opt::cache_line_padding >
-                ,cds::opt::lock_type < std::mutex >
-            > ::type
-        {};
-        typedef cds::intrusive::SegmentedQueue< cds::gc::DHP, big_item, queue_traits > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrIntrusiveSegmentedQueue::SegmQueue_DHP_shuffle_cacheline_padding_bigdata()
-    {
-        typedef cds::intrusive::SegmentedQueue< cds::gc::DHP, big_item,
-            cds::intrusive::segmented_queue::make_traits<
-                cds::intrusive::opt::disposer< Disposer >
-                ,cds::opt::item_counter< cds::atomicity::item_counter >
-                ,cds::opt::permutation_generator< cds::opt::v::random_shuffle_permutation<> >
-                , cds::opt::padding< cds::opt::cache_line_padding >
-            >::type
-        > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrIntrusiveSegmentedQueue::SegmQueue_DHP_stat_cacheline_padding_bigdata()
-    {
-        typedef cds::intrusive::SegmentedQueue< cds::gc::DHP, big_item,
-            cds::intrusive::segmented_queue::make_traits<
-                cds::intrusive::opt::disposer< Disposer >
-                ,cds::opt::item_counter< cds::atomicity::item_counter >
-                ,cds::opt::permutation_generator< cds::opt::v::random_permutation<> >
-                ,cds::opt::stat< cds::intrusive::segmented_queue::stat<> >
-                , cds::opt::padding< cds::opt::cache_line_padding >
-            >::type
-        > queue_type;
-
-        test<queue_type>();
-    }
-
-} // namespace queue
diff --git a/tests/test-hdr/queue/hdr_intrusive_segmented_queue_hp.cpp b/tests/test-hdr/queue/hdr_intrusive_segmented_queue_hp.cpp
deleted file mode 100644 (file)
index 9624f09..0000000
+++ /dev/null
@@ -1,253 +0,0 @@
-/*
-    This file is a part of libcds - Concurrent Data Structures library
-
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
-
-    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:
-
-    * Redistributions of source code must retain the above copyright notice, this
-      list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    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.     
-*/
-
-#include "hdr_intrusive_segmented_queue.h"
-#include <cds/intrusive/segmented_queue.h>
-#include <cds/gc/hp.h>
-
-namespace queue {
-
-    void HdrIntrusiveSegmentedQueue::SegmQueue_HP()
-    {
-        struct queue_traits : public cds::intrusive::segmented_queue::traits
-        {
-            typedef Disposer disposer;
-        };
-        typedef cds::intrusive::SegmentedQueue< cds::gc::HP, item, queue_traits > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrIntrusiveSegmentedQueue::SegmQueue_HP_mutex()
-    {
-        struct queue_traits : public
-            cds::intrusive::segmented_queue::make_traits <
-                cds::intrusive::opt::disposer< Disposer >
-                ,cds::opt::lock_type < std::mutex >
-            > ::type
-        {};
-        typedef cds::intrusive::SegmentedQueue< cds::gc::HP, item, queue_traits > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrIntrusiveSegmentedQueue::SegmQueue_HP_shuffle()
-    {
-        typedef cds::intrusive::SegmentedQueue< cds::gc::HP, item,
-            cds::intrusive::segmented_queue::make_traits<
-                cds::intrusive::opt::disposer< Disposer >
-                ,cds::opt::item_counter< cds::atomicity::item_counter >
-                ,cds::opt::permutation_generator< cds::opt::v::random_shuffle_permutation<> >
-            >::type
-        > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrIntrusiveSegmentedQueue::SegmQueue_HP_stat()
-    {
-        typedef cds::intrusive::SegmentedQueue< cds::gc::HP, item,
-            cds::intrusive::segmented_queue::make_traits<
-                cds::intrusive::opt::disposer< Disposer >
-                ,cds::opt::item_counter< cds::atomicity::item_counter >
-                ,cds::opt::permutation_generator< cds::opt::v::random_permutation<> >
-                ,cds::opt::stat< cds::intrusive::segmented_queue::stat<> >
-            >::type
-        > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrIntrusiveSegmentedQueue::SegmQueue_HP_cacheline_padding()
-    {
-        struct queue_traits : public cds::intrusive::segmented_queue::traits
-        {
-            typedef Disposer disposer;
-            enum { padding = cds::opt::cache_line_padding };
-        };
-        typedef cds::intrusive::SegmentedQueue< cds::gc::HP, item, queue_traits > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrIntrusiveSegmentedQueue::SegmQueue_HP_mutex_cacheline_padding()
-    {
-        struct queue_traits : public
-            cds::intrusive::segmented_queue::make_traits <
-                cds::intrusive::opt::disposer< Disposer >
-                ,cds::opt::lock_type < std::mutex >
-                ,cds::opt::padding< cds::opt::cache_line_padding >
-            > ::type
-        {};
-        typedef cds::intrusive::SegmentedQueue< cds::gc::HP, item, queue_traits > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrIntrusiveSegmentedQueue::SegmQueue_HP_shuffle_cacheline_padding()
-    {
-        typedef cds::intrusive::SegmentedQueue< cds::gc::HP, item,
-            cds::intrusive::segmented_queue::make_traits<
-                cds::intrusive::opt::disposer< Disposer >
-                ,cds::opt::item_counter< cds::atomicity::item_counter >
-                , cds::opt::padding< cds::opt::cache_line_padding >
-                ,cds::opt::permutation_generator< cds::opt::v::random_shuffle_permutation<> >
-            >::type
-        > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrIntrusiveSegmentedQueue::SegmQueue_HP_stat_cacheline_padding()
-    {
-        typedef cds::intrusive::SegmentedQueue< cds::gc::HP, item,
-            cds::intrusive::segmented_queue::make_traits<
-                cds::intrusive::opt::disposer< Disposer >
-                , cds::opt::padding< cds::opt::cache_line_padding >
-                ,cds::opt::item_counter< cds::atomicity::item_counter >
-                ,cds::opt::permutation_generator< cds::opt::v::random_permutation<> >
-                ,cds::opt::stat< cds::intrusive::segmented_queue::stat<> >
-            >::type
-        > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrIntrusiveSegmentedQueue::SegmQueue_HP_256_padding()
-    {
-        struct queue_traits : public cds::intrusive::segmented_queue::traits
-        {
-            typedef Disposer disposer;
-            enum { padding = 256 };
-        };
-        typedef cds::intrusive::SegmentedQueue< cds::gc::HP, item, queue_traits > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrIntrusiveSegmentedQueue::SegmQueue_HP_mutex_256_padding()
-    {
-        struct queue_traits : public
-            cds::intrusive::segmented_queue::make_traits <
-                cds::intrusive::opt::disposer< Disposer >
-                ,cds::opt::lock_type < std::mutex >
-                ,cds::opt::padding< 256 >
-            > ::type
-        {};
-        typedef cds::intrusive::SegmentedQueue< cds::gc::HP, item, queue_traits > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrIntrusiveSegmentedQueue::SegmQueue_HP_shuffle_256_padding()
-    {
-        typedef cds::intrusive::SegmentedQueue< cds::gc::HP, item,
-            cds::intrusive::segmented_queue::make_traits<
-                cds::intrusive::opt::disposer< Disposer >
-                ,cds::opt::item_counter< cds::atomicity::item_counter >
-                , cds::opt::padding< 256 >
-                ,cds::opt::permutation_generator< cds::opt::v::random_shuffle_permutation<> >
-            >::type
-        > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrIntrusiveSegmentedQueue::SegmQueue_HP_stat_256_padding()
-    {
-        typedef cds::intrusive::SegmentedQueue< cds::gc::HP, item,
-            cds::intrusive::segmented_queue::make_traits<
-                cds::intrusive::opt::disposer< Disposer >
-                , cds::opt::padding< 256 >
-                ,cds::opt::item_counter< cds::atomicity::item_counter >
-                ,cds::opt::permutation_generator< cds::opt::v::random_permutation<> >
-                ,cds::opt::stat< cds::intrusive::segmented_queue::stat<> >
-            >::type
-        > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrIntrusiveSegmentedQueue::SegmQueue_HP_cacheline_padding_bigdata()
-    {
-        struct queue_traits : public cds::intrusive::segmented_queue::traits
-        {
-            typedef Disposer disposer;
-            enum { padding = cds::opt::cache_line_padding | cds::opt::padding_tiny_data_only };
-        };
-        typedef cds::intrusive::SegmentedQueue< cds::gc::HP, big_item, queue_traits > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrIntrusiveSegmentedQueue::SegmQueue_HP_mutex_cacheline_padding_bigdata()
-    {
-        struct queue_traits : public
-            cds::intrusive::segmented_queue::make_traits <
-                cds::intrusive::opt::disposer< Disposer >
-                ,cds::opt::lock_type < std::mutex >
-                , cds::opt::padding< cds::opt::cache_line_padding | cds::opt::padding_tiny_data_only >
-            > ::type
-        {};
-        typedef cds::intrusive::SegmentedQueue< cds::gc::HP, big_item, queue_traits > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrIntrusiveSegmentedQueue::SegmQueue_HP_shuffle_cacheline_padding_bigdata()
-    {
-        typedef cds::intrusive::SegmentedQueue< cds::gc::HP, big_item,
-            cds::intrusive::segmented_queue::make_traits<
-                cds::intrusive::opt::disposer< Disposer >
-                ,cds::opt::item_counter< cds::atomicity::item_counter >
-                , cds::opt::padding< cds::opt::cache_line_padding | cds::opt::padding_tiny_data_only >
-                ,cds::opt::permutation_generator< cds::opt::v::random_shuffle_permutation<> >
-            >::type
-        > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrIntrusiveSegmentedQueue::SegmQueue_HP_stat_cacheline_padding_bigdata()
-    {
-        typedef cds::intrusive::SegmentedQueue< cds::gc::HP, big_item,
-            cds::intrusive::segmented_queue::make_traits<
-                cds::intrusive::opt::disposer< Disposer >
-                , cds::opt::padding< cds::opt::cache_line_padding | cds::opt::padding_tiny_data_only >
-                ,cds::opt::item_counter< cds::atomicity::item_counter >
-                ,cds::opt::permutation_generator< cds::opt::v::random_permutation<> >
-                ,cds::opt::stat< cds::intrusive::segmented_queue::stat<> >
-            >::type
-        > queue_type;
-
-        test<queue_type>();
-    }
-
-} // namespace queue
diff --git a/tests/test-hdr/queue/hdr_intrusive_tsigas_cycle_queue.cpp b/tests/test-hdr/queue/hdr_intrusive_tsigas_cycle_queue.cpp
deleted file mode 100644 (file)
index f6b2a3f..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
-    This file is a part of libcds - Concurrent Data Structures library
-
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
-
-    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:
-
-    * Redistributions of source code must retain the above copyright notice, this
-      list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    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.     
-*/
-
-#include "hdr_intrusive_msqueue.h"
-#include <cds/intrusive/tsigas_cycle_queue.h>
-
-namespace queue {
-
-#define TEST(X)     void IntrusiveQueueHeaderTest::test_##X() { test2<X>(); }
-
-    namespace {
-        struct item {
-            int nVal;
-            int nDisposeCount;
-
-            item()
-                : nDisposeCount(0)
-            {}
-        };
-
-        struct traits_TsigasCycleQueue_static : public cds::intrusive::tsigas_queue::traits
-        {
-            typedef co::v::static_buffer< int, 1024 > buffer;
-            typedef IntrusiveQueueHeaderTest::faked_disposer disposer;
-            typedef co::v::sequential_consistent memory_model;
-        };
-        typedef ci::TsigasCycleQueue< item, traits_TsigasCycleQueue_static > TsigasCycleQueue_static;
-
-        struct traits_traits_TsigasCycleQueue_static_ic : public traits_TsigasCycleQueue_static
-        {
-            typedef cds::atomicity::item_counter item_counter;
-        };
-        typedef ci::TsigasCycleQueue< item, traits_traits_TsigasCycleQueue_static_ic > TsigasCycleQueue_static_ic;
-
-        class TsigasCycleQueue_dyn
-            : public ci::TsigasCycleQueue< item,
-                typename ci::tsigas_queue::make_traits<
-                    co::buffer< co::v::dynamic_buffer< int > >
-                    ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                >::type
-            >
-        {
-            typedef ci::TsigasCycleQueue< item,
-                typename ci::tsigas_queue::make_traits<
-                   co::buffer< co::v::dynamic_buffer< int > >
-                    , ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                >::type
-            > base_class;
-        public:
-            TsigasCycleQueue_dyn()
-                : base_class( 1024 )
-            {}
-        };
-
-        class TsigasCycleQueue_dyn_ic
-            : public ci::TsigasCycleQueue< item,
-                typename ci::tsigas_queue::make_traits<
-                    co::buffer< co::v::dynamic_buffer< int > >
-                    ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                    ,co::item_counter< cds::atomicity::item_counter >
-                >::type
-            >
-        {
-            typedef ci::TsigasCycleQueue< item,
-                typename ci::tsigas_queue::make_traits<
-                    co::buffer< co::v::dynamic_buffer< int > >
-                    , ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                    , co::item_counter< cds::atomicity::item_counter >
-                >::type
-            > base_class;
-        public:
-            TsigasCycleQueue_dyn_ic()
-                : base_class( 1024 )
-            {}
-        };
-    }
-
-    TEST(TsigasCycleQueue_static)
-    TEST(TsigasCycleQueue_static_ic)
-    TEST(TsigasCycleQueue_dyn)
-    TEST(TsigasCycleQueue_dyn_ic)
-
-} // namespace queue
diff --git a/tests/test-hdr/queue/hdr_intrusive_vyukovmpmc_cycle_queue.cpp b/tests/test-hdr/queue/hdr_intrusive_vyukovmpmc_cycle_queue.cpp
deleted file mode 100644 (file)
index 6bee4f0..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
-    This file is a part of libcds - Concurrent Data Structures library
-
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
-
-    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:
-
-    * Redistributions of source code must retain the above copyright notice, this
-      list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    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.     
-*/
-
-#include "hdr_intrusive_msqueue.h"
-#include <cds/intrusive/vyukov_mpmc_cycle_queue.h>
-
-namespace queue {
-
-#define TEST(X)     void IntrusiveQueueHeaderTest::test_##X() { test2<X>(); }
-
-    namespace {
-        struct item {
-            int nVal;
-            int nDisposeCount;
-
-            item()
-                : nDisposeCount(0)
-            {}
-        };
-
-        struct traits_VyukovMPMCCycleQueue_static : public ci::vyukov_queue::traits
-        {
-            typedef co::v::static_buffer< int, 1024 > buffer;
-            typedef IntrusiveQueueHeaderTest::faked_disposer disposer;
-            typedef co::v::sequential_consistent memory_model;
-        };
-        typedef ci::VyukovMPMCCycleQueue< item, traits_VyukovMPMCCycleQueue_static > VyukovMPMCCycleQueue_static;
-
-        struct traits_VyukovMPMCCycleQueue_static_ic : public traits_VyukovMPMCCycleQueue_static
-        {
-            typedef cds::atomicity::item_counter item_counter;
-        };
-        typedef ci::VyukovMPMCCycleQueue< item, traits_VyukovMPMCCycleQueue_static_ic > VyukovMPMCCycleQueue_static_ic;
-
-        struct traits_VyukovMPMCCycleQueue_dyn :
-            public ci::vyukov_queue::make_traits <
-                co::buffer< co::v::dynamic_buffer< int > >,
-                ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-            >::type
-        {};
-        class VyukovMPMCCycleQueue_dyn
-            : public ci::VyukovMPMCCycleQueue< item, traits_VyukovMPMCCycleQueue_dyn >
-        {
-            typedef ci::VyukovMPMCCycleQueue< item, traits_VyukovMPMCCycleQueue_dyn > base_class;
-
-        public:
-            VyukovMPMCCycleQueue_dyn()
-                : base_class( 1024 )
-            {}
-        };
-
-        struct traits_VyukovMPMCCycleQueue_dyn_ic :
-            public ci::vyukov_queue::make_traits <
-                ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
-                , co::item_counter< cds::atomicity::item_counter >
-            >::type
-        {};
-        class VyukovMPMCCycleQueue_dyn_ic
-            : public ci::VyukovMPMCCycleQueue< item, traits_VyukovMPMCCycleQueue_dyn_ic >
-        {
-            typedef ci::VyukovMPMCCycleQueue< item, traits_VyukovMPMCCycleQueue_dyn_ic > base_class;
-        public:
-            VyukovMPMCCycleQueue_dyn_ic()
-                : base_class( 1024 )
-            {}
-        };
-    }
-
-    TEST(VyukovMPMCCycleQueue_static)
-    TEST(VyukovMPMCCycleQueue_static_ic)
-    TEST(VyukovMPMCCycleQueue_dyn)
-    TEST(VyukovMPMCCycleQueue_dyn_ic)
-
-} // namespace queue
diff --git a/tests/test-hdr/queue/hdr_moirqueue_dhp.cpp b/tests/test-hdr/queue/hdr_moirqueue_dhp.cpp
deleted file mode 100644 (file)
index aae052c..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
-    This file is a part of libcds - Concurrent Data Structures library
-
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
-
-    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:
-
-    * Redistributions of source code must retain the above copyright notice, this
-      list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    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.     
-*/
-
-#include <cds/gc/dhp.h>
-#include <cds/container/moir_queue.h>
-#include "queue/hdr_queue.h"
-
-namespace queue {
-
-    void HdrTestQueue::MoirQueue_DHP()
-    {
-        typedef cds::container::MoirQueue< cds::gc::DHP, int > test_queue;
-        test_no_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MoirQueue_DHP_Counted()
-    {
-        typedef cds::container::MoirQueue < cds::gc::DHP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::item_counter < cds::atomicity::item_counter >
-            > ::type
-        > test_queue;
-
-        test_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MoirQueue_DHP_relax()
-    {
-        typedef cds::container::MoirQueue < cds::gc::DHP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::memory_model < cds::opt::v::relaxed_ordering >
-            > ::type
-        > test_queue;
-
-        test_no_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MoirQueue_DHP_Counted_relax()
-    {
-        typedef cds::container::MoirQueue < cds::gc::DHP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::item_counter< cds::atomicity::item_counter >
-                , cds::opt::memory_model < cds::opt::v::relaxed_ordering >
-            > ::type
-        > test_queue;
-
-        test_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MoirQueue_DHP_seqcst()
-    {
-        typedef cds::container::MoirQueue < cds::gc::DHP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::memory_model < cds::opt::v::sequential_consistent >
-            > ::type
-        > test_queue;
-
-        test_no_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MoirQueue_DHP_Counted_seqcst()
-    {
-        typedef cds::container::MoirQueue < cds::gc::DHP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::item_counter< cds::atomicity::item_counter >
-                , cds::opt::memory_model < cds::opt::v::sequential_consistent >
-            > ::type
-        > test_queue;
-
-        test_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MoirQueue_DHP_relax_align()
-    {
-        typedef cds::container::MoirQueue < cds::gc::DHP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::memory_model< cds::opt::v::relaxed_ordering>
-                , cds::opt::padding < 16 >
-            > ::type
-        > test_queue;
-
-        test_no_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MoirQueue_DHP_Counted_relax_align()
-    {
-        typedef cds::container::MoirQueue < cds::gc::DHP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::item_counter< cds::atomicity::item_counter >
-                , cds::opt::memory_model< cds::opt::v::relaxed_ordering>
-                , cds::opt::padding < 32 >
-            >::type
-        > test_queue;
-
-        test_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MoirQueue_DHP_seqcst_align()
-    {
-        typedef cds::container::MoirQueue < cds::gc::DHP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::memory_model< cds::opt::v::sequential_consistent>
-                ,cds::opt::padding < cds::opt::no_special_padding >
-            > ::type
-        > test_queue;
-
-        test_no_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MoirQueue_DHP_Counted_seqcst_align()
-    {
-        typedef cds::container::MoirQueue < cds::gc::DHP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::item_counter< cds::atomicity::item_counter >
-                , cds::opt::memory_model< cds::opt::v::sequential_consistent>
-                , cds::opt::padding < cds::opt::cache_line_padding >
-            > ::type
-        > test_queue;
-        test_ic< test_queue >();
-    }
-}   // namespace queue
diff --git a/tests/test-hdr/queue/hdr_moirqueue_hp.cpp b/tests/test-hdr/queue/hdr_moirqueue_hp.cpp
deleted file mode 100644 (file)
index 2e40806..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
-    This file is a part of libcds - Concurrent Data Structures library
-
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
-
-    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:
-
-    * Redistributions of source code must retain the above copyright notice, this
-      list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    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.     
-*/
-
-#include <cds/gc/hp.h>
-#include <cds/container/moir_queue.h>
-
-#include "queue/hdr_queue.h"
-
-namespace queue {
-
-    void HdrTestQueue::MoirQueue_HP()
-    {
-        typedef cds::container::MoirQueue< cds::gc::HP, int > test_queue;
-        test_no_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MoirQueue_HP_Counted()
-    {
-        typedef cds::container::MoirQueue < cds::gc::HP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::item_counter < cds::atomicity::item_counter >
-            > ::type
-        > test_queue;
-
-        test_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MoirQueue_HP_relax()
-    {
-        typedef cds::container::MoirQueue < cds::gc::HP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::memory_model < cds::opt::v::relaxed_ordering >
-            > ::type
-        > test_queue;
-
-        test_no_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MoirQueue_HP_Counted_relax()
-    {
-        typedef cds::container::MoirQueue < cds::gc::HP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::item_counter< cds::atomicity::item_counter >
-                , cds::opt::memory_model < cds::opt::v::relaxed_ordering >
-            > ::type
-        > test_queue;
-
-        test_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MoirQueue_HP_seqcst()
-    {
-        typedef cds::container::MoirQueue < cds::gc::HP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::memory_model < cds::opt::v::sequential_consistent >
-            > ::type
-        > test_queue;
-
-        test_no_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MoirQueue_HP_Counted_seqcst()
-    {
-        typedef cds::container::MoirQueue < cds::gc::HP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::item_counter< cds::atomicity::item_counter >
-                , cds::opt::memory_model < cds::opt::v::sequential_consistent >
-            > ::type
-        > test_queue;
-
-        test_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MoirQueue_HP_relax_align()
-    {
-        typedef cds::container::MoirQueue < cds::gc::HP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::memory_model< cds::opt::v::relaxed_ordering>
-                , cds::opt::padding < 16 >
-            > ::type
-        > test_queue;
-
-        test_no_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MoirQueue_HP_Counted_relax_align()
-    {
-        typedef cds::container::MoirQueue < cds::gc::HP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::item_counter< cds::atomicity::item_counter >
-                , cds::opt::memory_model< cds::opt::v::relaxed_ordering>
-                , cds::opt::padding < 32 >
-            >::type
-        > test_queue;
-
-        test_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MoirQueue_HP_seqcst_align()
-    {
-        typedef cds::container::MoirQueue < cds::gc::HP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::memory_model< cds::opt::v::sequential_consistent>
-                ,cds::opt::padding < cds::opt::no_special_padding >
-            > ::type
-        > test_queue;
-
-        test_no_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MoirQueue_HP_Counted_seqcst_align()
-    {
-        typedef cds::container::MoirQueue < cds::gc::HP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::item_counter< cds::atomicity::item_counter >
-                , cds::opt::memory_model< cds::opt::v::sequential_consistent>
-                , cds::opt::padding < cds::opt::cache_line_padding >
-            > ::type
-        > test_queue;
-        test_ic< test_queue >();
-    }
-}   // namespace queue
diff --git a/tests/test-hdr/queue/hdr_msqueue_dhp.cpp b/tests/test-hdr/queue/hdr_msqueue_dhp.cpp
deleted file mode 100644 (file)
index fc67758..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
-    This file is a part of libcds - Concurrent Data Structures library
-
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
-
-    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:
-
-    * Redistributions of source code must retain the above copyright notice, this
-      list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    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.     
-*/
-
-#include <cds/gc/dhp.h>
-#include <cds/container/msqueue.h>
-
-#include "queue/hdr_queue.h"
-
-namespace queue {
-
-    void HdrTestQueue::MSQueue_DHP()
-    {
-        typedef cds::container::MSQueue< cds::gc::DHP, int > test_queue;
-        test_no_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MSQueue_DHP_Counted()
-    {
-        typedef cds::container::MSQueue < cds::gc::DHP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::item_counter < cds::atomicity::item_counter >
-            > ::type
-        > test_queue;
-
-        test_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MSQueue_DHP_relax()
-    {
-        typedef cds::container::MSQueue < cds::gc::DHP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::memory_model < cds::opt::v::relaxed_ordering >
-            > ::type
-        > test_queue;
-
-        test_no_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MSQueue_DHP_Counted_relax()
-    {
-        typedef cds::container::MSQueue < cds::gc::DHP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::item_counter< cds::atomicity::item_counter >
-                , cds::opt::memory_model < cds::opt::v::relaxed_ordering >
-            > ::type
-        > test_queue;
-
-        test_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MSQueue_DHP_seqcst()
-    {
-        typedef cds::container::MSQueue < cds::gc::DHP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::memory_model < cds::opt::v::sequential_consistent >
-            > ::type
-        > test_queue;
-
-        test_no_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MSQueue_DHP_Counted_seqcst()
-    {
-        typedef cds::container::MSQueue < cds::gc::DHP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::item_counter< cds::atomicity::item_counter >
-                , cds::opt::memory_model < cds::opt::v::sequential_consistent >
-            > ::type
-        > test_queue;
-
-        test_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MSQueue_DHP_relax_align()
-    {
-        typedef cds::container::MSQueue < cds::gc::DHP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::memory_model< cds::opt::v::relaxed_ordering>
-                , cds::opt::padding < 16 >
-            > ::type
-        > test_queue;
-
-        test_no_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MSQueue_DHP_Counted_relax_align()
-    {
-        typedef cds::container::MSQueue < cds::gc::DHP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::item_counter< cds::atomicity::item_counter >
-                , cds::opt::memory_model< cds::opt::v::relaxed_ordering>
-                , cds::opt::padding < 32 >
-            >::type
-        > test_queue;
-
-        test_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MSQueue_DHP_seqcst_align()
-    {
-        typedef cds::container::MSQueue < cds::gc::DHP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::memory_model< cds::opt::v::sequential_consistent>
-                ,cds::opt::padding < cds::opt::no_special_padding >
-            > ::type
-        > test_queue;
-
-        test_no_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MSQueue_DHP_Counted_seqcst_align()
-    {
-        typedef cds::container::MSQueue < cds::gc::DHP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::item_counter< cds::atomicity::item_counter >
-                , cds::opt::memory_model< cds::opt::v::sequential_consistent>
-                , cds::opt::padding < cds::opt::cache_line_padding >
-            > ::type
-        > test_queue;
-        test_ic< test_queue >();
-    }
-}   // namespace queue
diff --git a/tests/test-hdr/queue/hdr_msqueue_hp.cpp b/tests/test-hdr/queue/hdr_msqueue_hp.cpp
deleted file mode 100644 (file)
index e36d3b8..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
-    This file is a part of libcds - Concurrent Data Structures library
-
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
-
-    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:
-
-    * Redistributions of source code must retain the above copyright notice, this
-      list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    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.     
-*/
-
-#include <cds/gc/hp.h>
-#include <cds/container/msqueue.h>
-
-#include "queue/hdr_queue.h"
-
-namespace queue {
-
-    void HdrTestQueue::MSQueue_HP()
-    {
-        typedef cds::container::MSQueue< cds::gc::HP, int > test_queue;
-        test_no_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MSQueue_HP_Counted()
-    {
-        typedef cds::container::MSQueue < cds::gc::HP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::item_counter < cds::atomicity::item_counter >
-            > ::type
-        > test_queue;
-
-        test_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MSQueue_HP_relax()
-    {
-        typedef cds::container::MSQueue < cds::gc::HP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::memory_model < cds::opt::v::relaxed_ordering >
-            > ::type
-        > test_queue;
-
-        test_no_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MSQueue_HP_Counted_relax()
-    {
-        typedef cds::container::MSQueue < cds::gc::HP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::item_counter< cds::atomicity::item_counter >
-                , cds::opt::memory_model < cds::opt::v::relaxed_ordering >
-            > ::type
-        > test_queue;
-
-        test_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MSQueue_HP_seqcst()
-    {
-        typedef cds::container::MSQueue < cds::gc::HP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::memory_model < cds::opt::v::sequential_consistent >
-            > ::type
-        > test_queue;
-
-        test_no_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MSQueue_HP_Counted_seqcst()
-    {
-        typedef cds::container::MSQueue < cds::gc::HP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::item_counter< cds::atomicity::item_counter >
-                , cds::opt::memory_model < cds::opt::v::sequential_consistent >
-            > ::type
-        > test_queue;
-
-        test_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MSQueue_HP_relax_align()
-    {
-        typedef cds::container::MSQueue < cds::gc::HP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::memory_model< cds::opt::v::relaxed_ordering>
-                , cds::opt::padding < 16 >
-            > ::type
-        > test_queue;
-
-        test_no_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MSQueue_HP_Counted_relax_align()
-    {
-        typedef cds::container::MSQueue < cds::gc::HP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::item_counter< cds::atomicity::item_counter >
-                , cds::opt::memory_model< cds::opt::v::relaxed_ordering>
-                , cds::opt::padding < 32 >
-            >::type
-        > test_queue;
-
-        test_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MSQueue_HP_seqcst_align()
-    {
-        typedef cds::container::MSQueue < cds::gc::HP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::memory_model< cds::opt::v::sequential_consistent>
-                ,cds::opt::padding < cds::opt::no_special_padding >
-            > ::type
-        > test_queue;
-
-        test_no_ic< test_queue >();
-    }
-
-    void HdrTestQueue::MSQueue_HP_Counted_seqcst_align()
-    {
-        typedef cds::container::MSQueue < cds::gc::HP, int,
-            typename cds::container::msqueue::make_traits <
-                cds::opt::item_counter< cds::atomicity::item_counter >
-                , cds::opt::memory_model< cds::opt::v::sequential_consistent>
-                , cds::opt::padding < cds::opt::cache_line_padding >
-            > ::type
-        > test_queue;
-        test_ic< test_queue >();
-    }
-}   // namespace queue
diff --git a/tests/test-hdr/queue/hdr_optimistic_dhp.cpp b/tests/test-hdr/queue/hdr_optimistic_dhp.cpp
deleted file mode 100644 (file)
index 60def33..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
-    This file is a part of libcds - Concurrent Data Structures library
-
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
-
-    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:
-
-    * Redistributions of source code must retain the above copyright notice, this
-      list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    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.     
-*/
-
-#include <cds/container/optimistic_queue.h>
-#include <cds/gc/dhp.h>
-
-#include "queue/hdr_queue.h"
-
-namespace queue {
-
-    void HdrTestQueue::OptimisticQueue_DHP()
-    {
-        test_no_ic<cds::container::OptimisticQueue< cds::gc::DHP, int > >();
-    }
-
-    void HdrTestQueue::OptimisticQueue_DHP_Counted()
-    {
-        struct queue_traits : public cds::container::optimistic_queue::traits
-        {
-            typedef cds::atomicity::item_counter item_counter;
-        };
-        test_ic<cds::container::OptimisticQueue< cds::gc::DHP, int, queue_traits > >();
-    }
-
-    void HdrTestQueue::OptimisticQueue_DHP_relax()
-    {
-        struct queue_traits : public cds::container::optimistic_queue::traits
-        {
-            typedef cds::opt::v::relaxed_ordering memory_model;
-        };
-        test_no_ic<cds::container::OptimisticQueue< cds::gc::DHP, int, queue_traits > >();
-    }
-
-    void HdrTestQueue::OptimisticQueue_DHP_Counted_relax()
-    {
-        struct queue_traits : public cds::container::optimistic_queue::traits
-        {
-            typedef cds::atomicity::item_counter item_counter;
-            typedef cds::opt::v::relaxed_ordering memory_model;
-        };
-        test_ic <
-            cds::container::OptimisticQueue< cds::gc::DHP, int, queue_traits > >();
-    }
-
-    void HdrTestQueue::OptimisticQueue_DHP_seqcst()
-    {
-        test_no_ic<
-            cds::container::OptimisticQueue< cds::gc::DHP, int,
-                typename cds::container::optimistic_queue::make_traits<
-                    cds::opt::memory_model< cds::opt::v::sequential_consistent>
-                >::type
-            >
-        >();
-    }
-
-    void HdrTestQueue::OptimisticQueue_DHP_Counted_seqcst()
-    {
-        test_ic<
-            cds::container::OptimisticQueue< cds::gc::DHP, int,
-                typename cds::container::optimistic_queue::make_traits<
-                    cds::opt::item_counter< cds::atomicity::item_counter >
-                    ,cds::opt::memory_model< cds::opt::v::sequential_consistent>
-                >::type
-            >
-        >();
-    }
-
-    void HdrTestQueue::OptimisticQueue_DHP_relax_align()
-    {
-        test_no_ic<
-            cds::container::OptimisticQueue< cds::gc::DHP, int,
-                typename cds::container::optimistic_queue::make_traits<
-                    cds::opt::memory_model< cds::opt::v::relaxed_ordering>
-                    ,cds::opt::padding< 16 >
-                >::type
-            >
-        >();
-    }
-
-    void HdrTestQueue::OptimisticQueue_DHP_Counted_relax_align()
-    {
-        test_ic<
-            cds::container::OptimisticQueue< cds::gc::DHP, int,
-                typename cds::container::optimistic_queue::make_traits<
-                    cds::opt::item_counter< cds::atomicity::item_counter >
-                    ,cds::opt::memory_model< cds::opt::v::relaxed_ordering>
-                    ,cds::opt::padding< 32 >
-                >::type
-            >
-        >();
-    }
-
-    void HdrTestQueue::OptimisticQueue_DHP_seqcst_align()
-    {
-        test_no_ic<
-            cds::container::OptimisticQueue< cds::gc::DHP, int,
-                typename cds::container::optimistic_queue::make_traits<
-                    cds::opt::memory_model< cds::opt::v::sequential_consistent>
-                    ,cds::opt::padding< cds::opt::no_special_padding >
-                >::type
-            >
-        >();
-    }
-
-    void HdrTestQueue::OptimisticQueue_DHP_Counted_seqcst_align()
-    {
-        test_ic<
-            cds::container::OptimisticQueue< cds::gc::DHP, int,
-                typename cds::container::optimistic_queue::make_traits<
-                    cds::opt::item_counter< cds::atomicity::item_counter >
-                    ,cds::opt::memory_model< cds::opt::v::sequential_consistent>
-                    ,cds::opt::padding< cds::opt::cache_line_padding >
-                >::type
-            >
-        >();
-    }
-
-}   // namespace queue
diff --git a/tests/test-hdr/queue/hdr_optimistic_hp.cpp b/tests/test-hdr/queue/hdr_optimistic_hp.cpp
deleted file mode 100644 (file)
index 6bf354c..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
-    This file is a part of libcds - Concurrent Data Structures library
-
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
-
-    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:
-
-    * Redistributions of source code must retain the above copyright notice, this
-      list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    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.     
-*/
-
-#include <cds/container/optimistic_queue.h>
-#include <cds/gc/hp.h>
-
-#include "queue/hdr_queue.h"
-
-namespace queue {
-
-    void HdrTestQueue::OptimisticQueue_HP()
-    {
-        test_no_ic<cds::container::OptimisticQueue< cds::gc::HP, int > >();
-    }
-
-    void HdrTestQueue::OptimisticQueue_HP_Counted()
-    {
-        struct queue_traits : public cds::container::optimistic_queue::traits
-        {
-            typedef cds::atomicity::item_counter item_counter;
-        };
-        test_ic<cds::container::OptimisticQueue< cds::gc::HP, int, queue_traits > >();
-    }
-
-    void HdrTestQueue::OptimisticQueue_HP_relax()
-    {
-        struct queue_traits : public cds::container::optimistic_queue::traits
-        {
-            typedef cds::opt::v::relaxed_ordering memory_model;
-        };
-        test_no_ic<cds::container::OptimisticQueue< cds::gc::HP, int, queue_traits > >();
-    }
-
-    void HdrTestQueue::OptimisticQueue_HP_Counted_relax()
-    {
-        struct queue_traits : public cds::container::optimistic_queue::traits
-        {
-            typedef cds::atomicity::item_counter item_counter;
-            typedef cds::opt::v::relaxed_ordering memory_model;
-        };
-        test_ic <
-            cds::container::OptimisticQueue< cds::gc::HP, int, queue_traits > >();
-    }
-
-    void HdrTestQueue::OptimisticQueue_HP_seqcst()
-    {
-        test_no_ic<
-            cds::container::OptimisticQueue< cds::gc::HP, int,
-                typename cds::container::optimistic_queue::make_traits<
-                    cds::opt::memory_model< cds::opt::v::sequential_consistent>
-                >::type
-            >
-        >();
-    }
-
-    void HdrTestQueue::OptimisticQueue_HP_Counted_seqcst()
-    {
-        test_ic<
-            cds::container::OptimisticQueue< cds::gc::HP, int,
-                typename cds::container::optimistic_queue::make_traits<
-                    cds::opt::item_counter< cds::atomicity::item_counter >
-                    ,cds::opt::memory_model< cds::opt::v::sequential_consistent>
-                >::type
-            >
-        >();
-    }
-
-    void HdrTestQueue::OptimisticQueue_HP_relax_align()
-    {
-        test_no_ic<
-            cds::container::OptimisticQueue< cds::gc::HP, int,
-                typename cds::container::optimistic_queue::make_traits<
-                    cds::opt::memory_model< cds::opt::v::relaxed_ordering>
-                    ,cds::opt::padding< 16 >
-                >::type
-            >
-        >();
-    }
-
-    void HdrTestQueue::OptimisticQueue_HP_Counted_relax_align()
-    {
-        test_ic<
-            cds::container::OptimisticQueue< cds::gc::HP, int,
-                typename cds::container::optimistic_queue::make_traits<
-                    cds::opt::item_counter< cds::atomicity::item_counter >
-                    ,cds::opt::memory_model< cds::opt::v::relaxed_ordering>
-                    ,cds::opt::padding< 32 >
-                >::type
-            >
-        >();
-    }
-
-    void HdrTestQueue::OptimisticQueue_HP_seqcst_align()
-    {
-        test_no_ic<
-            cds::container::OptimisticQueue< cds::gc::HP, int,
-                typename cds::container::optimistic_queue::make_traits<
-                    cds::opt::memory_model< cds::opt::v::sequential_consistent>
-                    ,cds::opt::padding< cds::opt::no_special_padding >
-                >::type
-            >
-        >();
-    }
-
-    void HdrTestQueue::OptimisticQueue_HP_Counted_seqcst_align()
-    {
-        test_ic<
-            cds::container::OptimisticQueue< cds::gc::HP, int,
-                typename cds::container::optimistic_queue::make_traits<
-                    cds::opt::item_counter< cds::atomicity::item_counter >
-                    ,cds::opt::memory_model< cds::opt::v::sequential_consistent>
-                    ,cds::opt::padding< cds::opt::cache_line_padding >
-                >::type
-            >
-        >();
-    }
-
-}   // namespace queue
diff --git a/tests/test-hdr/queue/hdr_queue.h b/tests/test-hdr/queue/hdr_queue.h
deleted file mode 100644 (file)
index bc8b8ec..0000000
+++ /dev/null
@@ -1,492 +0,0 @@
-/*
-    This file is a part of libcds - Concurrent Data Structures library
-
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
-
-    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:
-
-    * Redistributions of source code must retain the above copyright notice, this
-      list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    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.     
-*/
-
-#ifndef CDSTEST_HDR_QUEUE_H
-#define CDSTEST_HDR_QUEUE_H
-
-#include "cppunit/cppunit_proxy.h"
-#include <cds/details/defs.h>
-
-namespace queue {
-
-    //
-    // Test queue operation in single thread mode
-    //
-    class HdrTestQueue: public CppUnitMini::TestCase
-    {
-    protected:
-        template <class Queue>
-        void test_no_ic()
-        {
-            Queue   q;
-            test_with( q );
-            test_emplace( q );
-        }
-
-        template <class Queue>
-        void test_with( Queue& q )
-        {
-            int     it;
-            int     nPrev;
-
-            // push/pop
-            for ( size_t i = 0; i < 3; ++i ) {
-                CPPUNIT_ASSERT( q.empty() );
-#ifndef _DEBUG
-                CPPUNIT_ASSERT( q.size() == 0 );
-#endif
-                CPPUNIT_ASSERT( q.enqueue( 1 ) );
-                CPPUNIT_ASSERT( !q.empty() );
-                CPPUNIT_ASSERT( q.push( 10 ) );
-                CPPUNIT_ASSERT( !q.empty() );
-#ifndef _DEBUG
-                CPPUNIT_ASSERT( q.size() == 0 )     ;   // no queue's item counter!
-#endif
-
-                it = -1;
-                CPPUNIT_ASSERT( q.pop( it ) );
-                CPPUNIT_ASSERT( it == 1 );
-                CPPUNIT_ASSERT( !q.empty() );
-                CPPUNIT_ASSERT( q.dequeue( it ) );
-                CPPUNIT_ASSERT( it == 10 );
-#ifndef _DEBUG
-                CPPUNIT_ASSERT( q.size() == 0 );
-#endif
-                CPPUNIT_ASSERT( q.empty() );
-                it += 2009;
-                nPrev = it;
-                CPPUNIT_ASSERT( !q.dequeue( it ) );
-                CPPUNIT_ASSERT( it == nPrev )       ;   // it must not be changed!
-            }
-
-            // push_with/pop_with
-            for ( size_t i = 0; i < 3; ++i ) {
-                CPPUNIT_ASSERT( q.empty() );
-#ifndef _DEBUG
-                CPPUNIT_ASSERT( q.size() == 0 );
-#endif
-                CPPUNIT_ASSERT( q.enqueue_with( []( int& dest ) { dest = 1; } ));
-                CPPUNIT_ASSERT( !q.empty() );
-                CPPUNIT_ASSERT( q.push_with( []( int& dest ) { dest = 10; } ));
-                CPPUNIT_ASSERT( !q.empty() );
-#ifndef _DEBUG
-                CPPUNIT_ASSERT( q.size() == 0 );   // no queue's item counter!
-#endif
-
-                it = -1;
-                CPPUNIT_ASSERT( q.pop_with( [&it]( int src ) { it = src; } ));
-                CPPUNIT_ASSERT( it == 1 );
-                CPPUNIT_ASSERT( !q.empty() );
-                CPPUNIT_ASSERT( q.dequeue_with( [&it]( int src ) { it = src; } ));
-                CPPUNIT_ASSERT( it == 10 );
-#ifndef _DEBUG
-                CPPUNIT_ASSERT( q.size() == 0 );
-#endif
-                CPPUNIT_ASSERT( q.empty() );
-                it += 2009;
-                nPrev = it;
-                CPPUNIT_ASSERT( !q.dequeue_with( [&it]( int src ) { it = src; } ));
-                CPPUNIT_ASSERT( it == nPrev );   // it must not be changed!
-            }
-        }
-
-        template <class Queue>
-        void test_emplace( Queue& q )
-        {
-            int     it;
-            for ( size_t i = 0; i < 3; ++i ) {
-                CPPUNIT_ASSERT( q.emplace( static_cast<int>( i * 42 )) );
-                CPPUNIT_ASSERT( !q.empty() );
-                it = -1;
-                CPPUNIT_ASSERT( q.pop( it ));
-                CPPUNIT_ASSERT( it == static_cast<int>( i * 42 ));
-                CPPUNIT_ASSERT( q.empty() );
-            }
-        }
-
-        template <class Queue>
-        void test_ic()
-        {
-            Queue   q;
-            test_ic_with( q );
-            test_emplace_ic( q );
-        }
-
-        template <class Queue>
-        void testFCQueue()
-        {
-            Queue   q;
-            test_ic_with( q );
-        }
-
-        template <class Queue>
-        void test_ic_with( Queue& q )
-        {
-            int     it;
-            int     nPrev;
-
-            // push/pop
-            for ( size_t i = 0; i < 3; ++i ) {
-                CPPUNIT_ASSERT( q.empty() );
-                CPPUNIT_ASSERT( q.size() == 0 );
-                CPPUNIT_ASSERT( q.enqueue( 1 ) );
-                CPPUNIT_ASSERT( q.size() == 1 );
-                CPPUNIT_ASSERT( !q.empty() );
-                CPPUNIT_ASSERT( q.push( 10 ) );
-                CPPUNIT_ASSERT( !q.empty() );
-                CPPUNIT_ASSERT( q.size() == 2 );
-
-                it = -1;
-                CPPUNIT_ASSERT( q.pop( it ) );
-                CPPUNIT_ASSERT( it == 1 );
-                CPPUNIT_ASSERT( !q.empty() );
-                CPPUNIT_ASSERT( q.size() == 1 );
-                CPPUNIT_ASSERT( q.dequeue( it ) );
-                CPPUNIT_ASSERT( it == 10 );
-                CPPUNIT_ASSERT( q.size() == 0 );
-                CPPUNIT_ASSERT( q.empty() );
-                CPPUNIT_ASSERT( q.size() == 0 );
-                it += 2009;
-                nPrev = it;
-                CPPUNIT_ASSERT( !q.dequeue( it ) );
-                CPPUNIT_ASSERT( it == nPrev )       ;   // it must not be changed!
-
-                CPPUNIT_ASSERT( q.empty() );
-                CPPUNIT_ASSERT( q.size() == 0 );
-            }
-
-            // push_with/pop_with
-            for ( size_t i = 0; i < 3; ++i ) {
-                CPPUNIT_ASSERT( q.empty() );
-                CPPUNIT_ASSERT( q.size() == 0 );
-                CPPUNIT_ASSERT( q.enqueue_with( []( int& dest ) { dest = 1; } ) );
-                CPPUNIT_ASSERT( !q.empty() );
-                CPPUNIT_ASSERT( q.size() == 1 );
-                CPPUNIT_ASSERT( q.push_with( []( int& dest ) { dest = 10; } ) );
-                CPPUNIT_ASSERT( !q.empty() );
-                CPPUNIT_ASSERT( q.size() == 2 );
-
-                it = -1;
-                CPPUNIT_ASSERT( q.pop_with( [&it]( int src ) { it = src; } ) );
-                CPPUNIT_ASSERT( it == 1 );
-                CPPUNIT_ASSERT( !q.empty() );
-                CPPUNIT_ASSERT( q.size() == 1 );
-                CPPUNIT_ASSERT( q.dequeue_with( [&it]( int src ) { it = src; } ) );
-                CPPUNIT_ASSERT( it == 10 );
-                CPPUNIT_ASSERT( q.size() == 0 );
-                CPPUNIT_ASSERT( q.empty() );
-                it += 2009;
-                nPrev = it;
-                CPPUNIT_ASSERT( !q.dequeue_with( [&it]( int src ) { it = src; } ) );
-                CPPUNIT_ASSERT( it == nPrev );   // it must not be changed!
-
-                CPPUNIT_ASSERT( q.size() == 0 );
-                CPPUNIT_ASSERT( q.empty() );
-            }
-        }
-
-        template <class Queue>
-        void test_emplace_ic( Queue& q )
-        {
-            int     it = 0;
-            for ( size_t i = 0; i < 3; ++i ) {
-                CPPUNIT_ASSERT( q.emplace( (int) i * 10 ) );
-                CPPUNIT_ASSERT( !q.empty() );
-                CPPUNIT_ASSERT( q.size() == 1 );
-                CPPUNIT_ASSERT( q.pop( it ));
-                CPPUNIT_ASSERT( it == (int) i * 10 );
-                CPPUNIT_ASSERT( q.empty() );
-                CPPUNIT_ASSERT( q.size() == 0 );
-            }
-        }
-
-        template <class Queue>
-        void test_bounded_no_ic()
-        {
-            Queue   q;
-            test_with( q );
-            test_emplace( q );
-
-            CPPUNIT_ASSERT( q.empty() );
-            size_t nCapacity = q.capacity();
-            for ( size_t i = 0; i < nCapacity; ++i ) {
-                CPPUNIT_CHECK_EX( q.push( static_cast<int>(i) ), "capacity=" << nCapacity << ", i=" << i );
-            }
-            // The queue is full
-            CPPUNIT_CHECK( !q.empty() );
-            CPPUNIT_ASSERT( !q.push_with( [nCapacity]( int& itm ) { itm = static_cast<int>(nCapacity); } ) );
-            int n = -1;
-            CPPUNIT_CHECK( q.pop(n) );
-            CPPUNIT_CHECK( n == 0 );
-            CPPUNIT_ASSERT( q.push( static_cast<int>(nCapacity) ) );
-            CPPUNIT_ASSERT( !q.push( static_cast<int>(nCapacity) ) );
-        }
-
-        template <class Queue>
-        void test_bounded_ic()
-        {
-            Queue   q;
-            test_ic_with( q );
-            test_emplace_ic( q );
-
-            CPPUNIT_ASSERT( q.empty() );
-            size_t nCapacity = q.capacity();
-            for ( size_t i = 0; i < nCapacity; ++i ) {
-                CPPUNIT_CHECK_EX( q.push( static_cast<int>(i) ), "capacity=" << nCapacity << ", i=" << i );
-            }
-            // The queue is full
-            CPPUNIT_CHECK( !q.empty() );
-            CPPUNIT_CHECK( q.size() == nCapacity );
-            CPPUNIT_ASSERT( !q.push_with( [nCapacity]( int& itm ) { itm = static_cast<int>(nCapacity); } ));
-            int n = -1;
-            CPPUNIT_CHECK( q.pop( n ) );
-            CPPUNIT_CHECK( n == 0 );
-            CPPUNIT_ASSERT( q.push( static_cast<int>(nCapacity) ) );
-            CPPUNIT_CHECK( q.size() == nCapacity );
-            CPPUNIT_ASSERT( !q.push( static_cast<int>(nCapacity) ) );
-            CPPUNIT_CHECK( q.size() == nCapacity );
-        }
-
-    public:
-        void MSQueue_HP();
-        void MSQueue_HP_relax();
-        void MSQueue_HP_seqcst();
-        void MSQueue_HP_relax_align();
-        void MSQueue_HP_seqcst_align();
-        void MSQueue_HP_Counted();
-        void MSQueue_HP_Counted_relax();
-        void MSQueue_HP_Counted_seqcst();
-        void MSQueue_HP_Counted_relax_align();
-        void MSQueue_HP_Counted_seqcst_align();
-
-        void MSQueue_DHP();
-        void MSQueue_DHP_relax();
-        void MSQueue_DHP_seqcst();
-        void MSQueue_DHP_relax_align();
-        void MSQueue_DHP_seqcst_align();
-        void MSQueue_DHP_Counted();
-        void MSQueue_DHP_Counted_relax();
-        void MSQueue_DHP_Counted_seqcst();
-        void MSQueue_DHP_Counted_relax_align();
-        void MSQueue_DHP_Counted_seqcst_align();
-
-        void MoirQueue_HP();
-        void MoirQueue_HP_relax();
-        void MoirQueue_HP_seqcst();
-        void MoirQueue_HP_relax_align();
-        void MoirQueue_HP_seqcst_align();
-        void MoirQueue_HP_Counted();
-        void MoirQueue_HP_Counted_relax();
-        void MoirQueue_HP_Counted_seqcst();
-        void MoirQueue_HP_Counted_relax_align();
-        void MoirQueue_HP_Counted_seqcst_align();
-
-        void MoirQueue_DHP();
-        void MoirQueue_DHP_relax();
-        void MoirQueue_DHP_seqcst();
-        void MoirQueue_DHP_relax_align();
-        void MoirQueue_DHP_seqcst_align();
-        void MoirQueue_DHP_Counted();
-        void MoirQueue_DHP_Counted_relax();
-        void MoirQueue_DHP_Counted_seqcst();
-        void MoirQueue_DHP_Counted_relax_align();
-        void MoirQueue_DHP_Counted_seqcst_align();
-
-        void OptimisticQueue_HP();
-        void OptimisticQueue_HP_relax();
-        void OptimisticQueue_HP_seqcst();
-        void OptimisticQueue_HP_relax_align();
-        void OptimisticQueue_HP_seqcst_align();
-        void OptimisticQueue_HP_Counted();
-        void OptimisticQueue_HP_Counted_relax();
-        void OptimisticQueue_HP_Counted_seqcst();
-        void OptimisticQueue_HP_Counted_relax_align();
-        void OptimisticQueue_HP_Counted_seqcst_align();
-
-        void OptimisticQueue_DHP();
-        void OptimisticQueue_DHP_relax();
-        void OptimisticQueue_DHP_seqcst();
-        void OptimisticQueue_DHP_relax_align();
-        void OptimisticQueue_DHP_seqcst_align();
-        void OptimisticQueue_DHP_Counted();
-        void OptimisticQueue_DHP_Counted_relax();
-        void OptimisticQueue_DHP_Counted_seqcst();
-        void OptimisticQueue_DHP_Counted_relax_align();
-        void OptimisticQueue_DHP_Counted_seqcst_align();
-
-        void BasketQueue_HP();
-        void BasketQueue_HP_relax();
-        void BasketQueue_HP_seqcst();
-        void BasketQueue_HP_relax_align();
-        void BasketQueue_HP_seqcst_align();
-        void BasketQueue_HP_Counted();
-        void BasketQueue_HP_Counted_relax();
-        void BasketQueue_HP_Counted_seqcst();
-        void BasketQueue_HP_Counted_relax_align();
-        void BasketQueue_HP_Counted_seqcst_align();
-
-        void BasketQueue_DHP();
-        void BasketQueue_DHP_relax();
-        void BasketQueue_DHP_seqcst();
-        void BasketQueue_DHP_relax_align();
-        void BasketQueue_DHP_seqcst_align();
-        void BasketQueue_DHP_Counted();
-        void BasketQueue_DHP_Counted_relax();
-        void BasketQueue_DHP_Counted_seqcst();
-        void BasketQueue_DHP_Counted_relax_align();
-        void BasketQueue_DHP_Counted_seqcst_align();
-
-        void RWQueue_default();
-        void RWQueue_mutex();
-        void RWQueue_ic();
-        void RWQueue_ic_mutex();
-        void RWQueue_padding();
-
-        void TsigasCycleQueue_static();
-        void TsigasCycleQueue_static_ic();
-        void TsigasCycleQueue_dyn();
-        void TsigasCycleQueue_dyn_ic();
-
-        void VyukovMPMCCycleQueue_static();
-        void VyukovMPMCCycleQueue_static_ic();
-        void VyukovMPMCCycleQueue_dyn();
-        void VyukovMPMCCycleQueue_dyn_ic();
-
-        CPPUNIT_TEST_SUITE( HdrTestQueue )
-            CPPUNIT_TEST(MSQueue_HP);
-            CPPUNIT_TEST(MSQueue_HP_relax);
-            CPPUNIT_TEST(MSQueue_HP_seqcst);
-            CPPUNIT_TEST(MSQueue_HP_relax_align);
-            CPPUNIT_TEST(MSQueue_HP_seqcst_align);
-            CPPUNIT_TEST(MSQueue_HP_Counted);
-            CPPUNIT_TEST(MSQueue_HP_Counted_relax);
-            CPPUNIT_TEST(MSQueue_HP_Counted_seqcst);
-            CPPUNIT_TEST(MSQueue_HP_Counted_relax_align);
-            CPPUNIT_TEST(MSQueue_HP_Counted_seqcst_align);
-
-            CPPUNIT_TEST(MSQueue_DHP);
-            CPPUNIT_TEST(MSQueue_DHP_relax);
-            CPPUNIT_TEST(MSQueue_DHP_seqcst);
-            CPPUNIT_TEST(MSQueue_DHP_relax_align);
-            CPPUNIT_TEST(MSQueue_DHP_seqcst_align);
-            CPPUNIT_TEST(MSQueue_DHP_Counted);
-            CPPUNIT_TEST(MSQueue_DHP_Counted_relax);
-            CPPUNIT_TEST(MSQueue_DHP_Counted_seqcst);
-            CPPUNIT_TEST(MSQueue_DHP_Counted_relax_align);
-            CPPUNIT_TEST(MSQueue_DHP_Counted_seqcst_align);
-
-            CPPUNIT_TEST(MoirQueue_HP);
-            CPPUNIT_TEST(MoirQueue_HP_relax);
-            CPPUNIT_TEST(MoirQueue_HP_seqcst);
-            CPPUNIT_TEST(MoirQueue_HP_relax_align);
-            CPPUNIT_TEST(MoirQueue_HP_seqcst_align);
-            CPPUNIT_TEST(MoirQueue_HP_Counted);
-            CPPUNIT_TEST(MoirQueue_HP_Counted_relax);
-            CPPUNIT_TEST(MoirQueue_HP_Counted_seqcst);
-            CPPUNIT_TEST(MoirQueue_HP_Counted_relax_align);
-            CPPUNIT_TEST(MoirQueue_HP_Counted_seqcst_align);
-
-            CPPUNIT_TEST(MoirQueue_DHP);
-            CPPUNIT_TEST(MoirQueue_DHP_relax);
-            CPPUNIT_TEST(MoirQueue_DHP_seqcst);
-            CPPUNIT_TEST(MoirQueue_DHP_relax_align);
-            CPPUNIT_TEST(MoirQueue_DHP_seqcst_align);
-            CPPUNIT_TEST(MoirQueue_DHP_Counted);
-            CPPUNIT_TEST(MoirQueue_DHP_Counted_relax);
-            CPPUNIT_TEST(MoirQueue_DHP_Counted_seqcst);
-            CPPUNIT_TEST(MoirQueue_DHP_Counted_relax_align);
-            CPPUNIT_TEST(MoirQueue_DHP_Counted_seqcst_align);
-
-            CPPUNIT_TEST(OptimisticQueue_HP);
-            CPPUNIT_TEST(OptimisticQueue_HP_relax);
-            CPPUNIT_TEST(OptimisticQueue_HP_seqcst);
-            CPPUNIT_TEST(OptimisticQueue_HP_relax_align);
-            CPPUNIT_TEST(OptimisticQueue_HP_seqcst_align);
-            CPPUNIT_TEST(OptimisticQueue_HP_Counted);
-            CPPUNIT_TEST(OptimisticQueue_HP_Counted_relax);
-            CPPUNIT_TEST(OptimisticQueue_HP_Counted_seqcst);
-            CPPUNIT_TEST(OptimisticQueue_HP_Counted_relax_align);
-            CPPUNIT_TEST(OptimisticQueue_HP_Counted_seqcst_align);
-
-            CPPUNIT_TEST(OptimisticQueue_DHP);
-            CPPUNIT_TEST(OptimisticQueue_DHP_relax);
-            CPPUNIT_TEST(OptimisticQueue_DHP_seqcst);
-            CPPUNIT_TEST(OptimisticQueue_DHP_relax_align);
-            CPPUNIT_TEST(OptimisticQueue_DHP_seqcst_align);
-            CPPUNIT_TEST(OptimisticQueue_DHP_Counted);
-            CPPUNIT_TEST(OptimisticQueue_DHP_Counted_relax);
-            CPPUNIT_TEST(OptimisticQueue_DHP_Counted_seqcst);
-            CPPUNIT_TEST(OptimisticQueue_DHP_Counted_relax_align);
-            CPPUNIT_TEST(OptimisticQueue_DHP_Counted_seqcst_align);
-
-            CPPUNIT_TEST(BasketQueue_HP);
-            CPPUNIT_TEST(BasketQueue_HP_relax);
-            CPPUNIT_TEST(BasketQueue_HP_seqcst);
-            CPPUNIT_TEST(BasketQueue_HP_relax_align);
-            CPPUNIT_TEST(BasketQueue_HP_seqcst_align);
-            CPPUNIT_TEST(BasketQueue_HP_Counted);
-            CPPUNIT_TEST(BasketQueue_HP_Counted_relax);
-            CPPUNIT_TEST(BasketQueue_HP_Counted_seqcst);
-            CPPUNIT_TEST(BasketQueue_HP_Counted_relax_align);
-            CPPUNIT_TEST(BasketQueue_HP_Counted_seqcst_align);
-
-            CPPUNIT_TEST(BasketQueue_DHP);
-            CPPUNIT_TEST(BasketQueue_DHP_relax);
-            CPPUNIT_TEST(BasketQueue_DHP_seqcst);
-            CPPUNIT_TEST(BasketQueue_DHP_relax_align);
-            CPPUNIT_TEST(BasketQueue_DHP_seqcst_align);
-            CPPUNIT_TEST(BasketQueue_DHP_Counted);
-            CPPUNIT_TEST(BasketQueue_DHP_Counted_relax);
-            CPPUNIT_TEST(BasketQueue_DHP_Counted_seqcst);
-            CPPUNIT_TEST(BasketQueue_DHP_Counted_relax_align);
-            CPPUNIT_TEST(BasketQueue_DHP_Counted_seqcst_align);
-
-            CPPUNIT_TEST( TsigasCycleQueue_static )
-            CPPUNIT_TEST( TsigasCycleQueue_static_ic )
-            CPPUNIT_TEST( TsigasCycleQueue_dyn )
-            CPPUNIT_TEST( TsigasCycleQueue_dyn_ic )
-
-            CPPUNIT_TEST( VyukovMPMCCycleQueue_static )
-            CPPUNIT_TEST( VyukovMPMCCycleQueue_static_ic )
-            CPPUNIT_TEST( VyukovMPMCCycleQueue_dyn )
-            CPPUNIT_TEST( VyukovMPMCCycleQueue_dyn_ic )
-
-            CPPUNIT_TEST( RWQueue_default)
-            CPPUNIT_TEST( RWQueue_mutex )
-            CPPUNIT_TEST( RWQueue_ic )
-            CPPUNIT_TEST( RWQueue_ic_mutex )
-            CPPUNIT_TEST( RWQueue_padding )
-
-        CPPUNIT_TEST_SUITE_END();
-
-    };
-} // namespace queue
-
-#endif // #ifndef CDSTEST_HDR_QUEUE_H
diff --git a/tests/test-hdr/queue/hdr_queue_register.cpp b/tests/test-hdr/queue/hdr_queue_register.cpp
deleted file mode 100644 (file)
index 23105dd..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
-    This file is a part of libcds - Concurrent Data Structures library
-
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
-
-    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:
-
-    * Redistributions of source code must retain the above copyright notice, this
-      list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    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.     
-*/
-
-#include "hdr_intrusive_msqueue.h"
-#include "hdr_intrusive_segmented_queue.h"
-#include "hdr_queue.h"
-#include "hdr_fcqueue.h"
-#include "hdr_segmented_queue.h"
-
-CPPUNIT_TEST_SUITE_REGISTRATION_( queue::HdrTestQueue,               s_HdrTestQueue );
-CPPUNIT_TEST_SUITE_REGISTRATION_( queue::HdrFCQueue,           s_Queue_TestHeader ); //TODO must be removed after refactoring
-CPPUNIT_TEST_SUITE_REGISTRATION_( queue::HdrSegmentedQueue,          s_HdrSegmentedQueue );
-CPPUNIT_TEST_SUITE_REGISTRATION_( queue::IntrusiveQueueHeaderTest,   s_IntrusiveQueueHeaderTest );
-CPPUNIT_TEST_SUITE_REGISTRATION_( queue::HdrIntrusiveSegmentedQueue, s_HdrIntrusiveSegmentedQueue );
diff --git a/tests/test-hdr/queue/hdr_rwqueue.cpp b/tests/test-hdr/queue/hdr_rwqueue.cpp
deleted file mode 100644 (file)
index 62b5b6f..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
-    This file is a part of libcds - Concurrent Data Structures library
-
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
-
-    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:
-
-    * Redistributions of source code must retain the above copyright notice, this
-      list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    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.     
-*/
-
-#include <cds/container/rwqueue.h>
-#include <mutex>
-
-#include "queue/hdr_queue.h"
-
-namespace queue {
-    void HdrTestQueue::RWQueue_default()
-    {
-        test_no_ic< cds::container::RWQueue< int > >();
-    }
-
-    void HdrTestQueue::RWQueue_mutex()
-    {
-        struct queue_traits : public cds::container::rwqueue::traits
-        {
-            typedef std::mutex lock_type;
-        };
-
-        test_no_ic< cds::container::RWQueue< int, queue_traits > >();
-    }
-
-    void HdrTestQueue::RWQueue_ic()
-    {
-        struct queue_traits : public cds::container::rwqueue::traits
-        {
-            typedef cds::atomicity::item_counter item_counter;
-        };
-
-        test_ic< cds::container::RWQueue< int, queue_traits > >();
-    }
-
-    void HdrTestQueue::RWQueue_ic_mutex()
-    {
-        struct queue_traits : public cds::container::rwqueue::traits
-        {
-            typedef cds::atomicity::item_counter item_counter;
-            typedef std::mutex lock_type;
-        };
-
-        test_ic< cds::container::RWQueue< int, queue_traits > >();
-    }
-
-    void HdrTestQueue::RWQueue_padding()
-    {
-        struct queue_traits : public cds::container::rwqueue::traits
-        {
-            enum { padding = 16 };
-        };
-
-        test_no_ic< cds::container::RWQueue< int, queue_traits > >();
-    }
-
-}
diff --git a/tests/test-hdr/queue/hdr_segmented_queue.h b/tests/test-hdr/queue/hdr_segmented_queue.h
deleted file mode 100644 (file)
index 5f9c0ce..0000000
+++ /dev/null
@@ -1,262 +0,0 @@
-/*
-    This file is a part of libcds - Concurrent Data Structures library
-
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
-
-    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:
-
-    * Redistributions of source code must retain the above copyright notice, this
-      list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    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.     
-*/
-
-#ifndef CDSTEST_HDR_QUEUE_SEGMENTED_QUEUE_H
-#define CDSTEST_HDR_QUEUE_SEGMENTED_QUEUE_H
-
-#include "cppunit/cppunit_proxy.h"
-#include <cds/intrusive/details/base.h>
-#include "size_check.h"
-
-namespace queue {
-
-    class HdrSegmentedQueue: public CppUnitMini::TestCase
-    {
-        struct item {
-            size_t nVal;
-
-            item() {}
-            item( size_t v ): nVal(v) {}
-            item( size_t nMajor, size_t nMinor ): nVal( nMajor * 16 + nMinor ) {}
-        };
-
-        struct other_item {
-            size_t  nVal;
-        };
-
-        template <typename Queue>
-        void test()
-        {
-            for ( size_t nQuasiFactor = 2; nQuasiFactor <= 256; ++nQuasiFactor ) {
-                CPPUNIT_MSG( "QuasiFactor=" << nQuasiFactor << "..." );
-                test_qf<Queue>( nQuasiFactor );
-            }
-        }
-
-        template <typename Queue>
-        void test_qf( size_t nQuasiFactor )
-        {
-            typedef typename Queue::value_type value_type;
-
-            static size_t const c_nItemCount = 1000;
-
-            {
-                Queue q( nQuasiFactor );
-                CPPUNIT_CHECK( q.quasi_factor() == cds::beans::ceil2(nQuasiFactor) );
-                CPPUNIT_CHECK( q.empty() );
-                CPPUNIT_CHECK( misc::check_size( q, 0 ));
-
-                // push/enqueue
-                for ( size_t i = 0; i < c_nItemCount; ++i ) {
-                    if ( i & 1 ) {
-                        CPPUNIT_ASSERT( q.push(item(i)) );
-                    }
-                    else {
-                        CPPUNIT_ASSERT( q.enqueue(item(i)) );
-                    }
-                    CPPUNIT_CHECK( misc::check_size( q, i + 1 ));
-                    CPPUNIT_CHECK( !q.empty() );
-                }
-
-                // pop/dequeue
-                size_t nCount = 0;
-                while ( !q.empty() ) {
-                    value_type v;
-                    if ( nCount & 1 ) {
-                        CPPUNIT_ASSERT( q.pop( v ) );
-                    }
-                    else {
-                        CPPUNIT_ASSERT( q.dequeue( v ));
-                    }
-
-                    int nSegment = int( nCount / q.quasi_factor() );
-                    int nMin = nSegment * int(q.quasi_factor());
-                    int nMax = nMin + int(q.quasi_factor()) - 1;
-                    CPPUNIT_CHECK_EX( nMin <= static_cast<int>(v.nVal) && static_cast<int>( v.nVal ) <= nMax, nMin << " <= " << v.nVal << " <= " << nMax );
-
-                    ++nCount;
-                    CPPUNIT_CHECK( misc::check_size( q, c_nItemCount - nCount ));
-                }
-                CPPUNIT_CHECK( nCount == c_nItemCount );
-                CPPUNIT_CHECK( q.empty() );
-                CPPUNIT_CHECK( misc::check_size( q, 0 ));
-
-
-                // push/pop with functor
-                for ( size_t i = 0; i < c_nItemCount; ++i ) {
-                    other_item itm;
-                    itm.nVal = i;
-                    if ( i & 1 ) {
-                        CPPUNIT_ASSERT( q.push_with( [&itm]( item& dest ) { dest.nVal = itm.nVal; } ));
-                    }
-                    else {
-                        CPPUNIT_ASSERT( q.enqueue_with( [&itm]( item& dest ) { dest.nVal = itm.nVal; } ));
-                    }
-                    CPPUNIT_CHECK( misc::check_size( q, i + 1 ));
-                    CPPUNIT_CHECK( !q.empty() );
-                }
-
-                {
-                    other_item v;
-
-                    nCount = 0;
-                    size_t nFuncCount = 0;
-                    while ( !q.empty() ) {
-                        if ( nCount & 1 ) {
-                            CPPUNIT_ASSERT( q.pop_with( [&v, &nFuncCount]( item& src ) {v.nVal = src.nVal; ++nFuncCount; } ));
-                        }
-                        else {
-                            CPPUNIT_ASSERT( q.dequeue_with( [&v, &nFuncCount]( item& src ) {v.nVal = src.nVal; ++nFuncCount; } ));
-                        }
-
-                        // It is possible c_nItemCount % quasi_factor() != 0
-                        // In this case the segment cannot be calculated here
-                        size_t nMin = nCount > q.quasi_factor() ? nCount - q.quasi_factor() : 0;
-                        size_t nMax = nCount + q.quasi_factor();
-                        CPPUNIT_CHECK_EX( nMin <= v.nVal && v.nVal <= nMax, nMin << " <= " << v.nVal << " <= " << nMax );
-
-                        ++nCount;
-                        CPPUNIT_CHECK( nFuncCount == nCount );
-                        CPPUNIT_CHECK( misc::check_size( q, c_nItemCount - nCount ));
-                    }
-                    CPPUNIT_CHECK( nCount == c_nItemCount );
-                    CPPUNIT_CHECK( q.empty() );
-                    CPPUNIT_CHECK( misc::check_size( q, 0 ));
-                }
-
-                //emplace
-                {
-                    size_t nMajor = 0;
-                    size_t nMinor = 0;
-                    for ( size_t i = 0; i < c_nItemCount; ++i ) {
-                        CPPUNIT_CHECK( q.emplace( nMajor, nMinor ));
-                        if ( nMinor  == 15 ) {
-                            ++nMajor;
-                            nMinor = 0;
-                        }
-                        else
-                            ++nMinor;
-                        CPPUNIT_CHECK( !q.empty() );
-                    }
-                    CPPUNIT_CHECK( misc::check_size( q, c_nItemCount ));
-
-                    nCount = 0;
-                    while ( !q.empty() ) {
-                        value_type v;
-                        if ( nCount & 1 ) {
-                            CPPUNIT_ASSERT( q.pop( v ) );
-                        }
-                        else {
-                            CPPUNIT_ASSERT( q.dequeue( v ));
-                        }
-
-                        size_t nMin = nCount > q.quasi_factor() ? nCount - q.quasi_factor() : 0;
-                        size_t nMax = nCount + q.quasi_factor();
-                        CPPUNIT_CHECK_EX( nMin <= v.nVal && v.nVal <= nMax, nMin << " <= " << v.nVal << " <= " << nMax );
-
-                        ++nCount;
-                        CPPUNIT_CHECK( misc::check_size( q, c_nItemCount - nCount ));
-                    }
-                    CPPUNIT_CHECK( nCount == c_nItemCount );
-                    CPPUNIT_CHECK( q.empty() );
-                    CPPUNIT_CHECK( misc::check_size( q, 0 ));
-                }
-
-                // pop from empty queue
-                {
-                    value_type v;
-                    v.nVal = c_nItemCount + 1;
-                    CPPUNIT_CHECK( q.empty() );
-                    CPPUNIT_ASSERT( !q.pop( v ));
-                    CPPUNIT_CHECK( q.empty() );
-                    CPPUNIT_CHECK( misc::check_size( q, 0 ));
-                    CPPUNIT_CHECK( v.nVal == c_nItemCount + 1 );
-                }
-
-                // clear
-                for ( size_t i = 0; i < c_nItemCount; ++i ) {
-                    if ( i & 1 ) {
-                        CPPUNIT_ASSERT( q.push(item(i)) );
-                    }
-                    else {
-                        CPPUNIT_ASSERT( q.enqueue(item(i)) );
-                    }
-                    CPPUNIT_CHECK( misc::check_size( q, i + 1 ));
-                    CPPUNIT_CHECK( !q.empty() );
-                }
-
-                q.clear();
-                CPPUNIT_CHECK( misc::check_size( q, 0 ));
-                CPPUNIT_CHECK( q.empty() );
-            }
-        }
-
-        void SegmQueue_HP();
-        void SegmQueue_HP_mutex();
-        void SegmQueue_HP_shuffle();
-        void SegmQueue_HP_stat();
-        void SegmQueue_HP_cacheline_padding();
-        void SegmQueue_HP_mutex_cacheline_padding();
-        void SegmQueue_HP_shuffle_cacheline_padding();
-        void SegmQueue_HP_stat_cacheline_padding();
-
-        void SegmQueue_DHP();
-        void SegmQueue_DHP_mutex();
-        void SegmQueue_DHP_shuffle();
-        void SegmQueue_DHP_stat();
-        void SegmQueue_DHP_cacheline_padding();
-        void SegmQueue_DHP_mutex_cacheline_padding();
-        void SegmQueue_DHP_shuffle_cacheline_padding();
-        void SegmQueue_DHP_stat_cacheline_padding();
-
-        CPPUNIT_TEST_SUITE(HdrSegmentedQueue)
-            CPPUNIT_TEST( SegmQueue_HP )
-            CPPUNIT_TEST( SegmQueue_HP_mutex )
-            CPPUNIT_TEST( SegmQueue_HP_shuffle )
-            CPPUNIT_TEST( SegmQueue_HP_stat )
-            CPPUNIT_TEST( SegmQueue_HP_cacheline_padding )
-            CPPUNIT_TEST( SegmQueue_HP_mutex_cacheline_padding )
-            CPPUNIT_TEST( SegmQueue_HP_shuffle_cacheline_padding )
-            CPPUNIT_TEST( SegmQueue_HP_stat_cacheline_padding )
-
-            CPPUNIT_TEST( SegmQueue_DHP )
-            CPPUNIT_TEST( SegmQueue_DHP_mutex )
-            CPPUNIT_TEST( SegmQueue_DHP_shuffle )
-            CPPUNIT_TEST( SegmQueue_DHP_stat )
-            CPPUNIT_TEST( SegmQueue_DHP_cacheline_padding )
-            CPPUNIT_TEST( SegmQueue_DHP_mutex_cacheline_padding )
-            CPPUNIT_TEST( SegmQueue_DHP_shuffle_cacheline_padding )
-            CPPUNIT_TEST( SegmQueue_DHP_stat_cacheline_padding )
-        CPPUNIT_TEST_SUITE_END()
-
-    };
-} // namespace queue
-
-#endif //#ifndef CDSTEST_HDR_QUEUE_SEGMENTED_QUEUE_H
diff --git a/tests/test-hdr/queue/hdr_segmented_queue_dhp.cpp b/tests/test-hdr/queue/hdr_segmented_queue_dhp.cpp
deleted file mode 100644 (file)
index a702767..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
-    This file is a part of libcds - Concurrent Data Structures library
-
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
-
-    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:
-
-    * Redistributions of source code must retain the above copyright notice, this
-      list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    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.     
-*/
-
-#include "hdr_segmented_queue.h"
-#include <cds/container/segmented_queue.h>
-#include <cds/gc/dhp.h>
-
-namespace queue {
-
-    void HdrSegmentedQueue::SegmQueue_DHP()
-    {
-        typedef cds::container::SegmentedQueue< cds::gc::DHP, item > queue_type;
-        test<queue_type>();
-    }
-
-    void HdrSegmentedQueue::SegmQueue_DHP_mutex()
-    {
-        typedef cds::container::SegmentedQueue< cds::gc::DHP, item,
-            cds::container::segmented_queue::make_traits<
-                cds::opt::lock_type< std::mutex >
-            >::type
-        > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrSegmentedQueue::SegmQueue_DHP_shuffle()
-    {
-        struct queue_traits : public cds::container::segmented_queue::traits
-        {
-            typedef cds::atomicity::item_counter item_counter;
-            typedef cds::opt::v::random_shuffle_permutation<> permutation_generator;
-        };
-        typedef cds::container::SegmentedQueue< cds::gc::DHP, item, queue_traits > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrSegmentedQueue::SegmQueue_DHP_stat()
-    {
-        struct queue_traits : public
-            cds::container::segmented_queue::make_traits <
-                cds::opt::item_counter< cds::atomicity::item_counter >
-                , cds::opt::permutation_generator< cds::opt::v::random_permutation<> >
-                , cds::opt::stat < cds::container::segmented_queue::stat<> >
-            > ::type
-        {};
-        typedef cds::container::SegmentedQueue< cds::gc::DHP, item, queue_traits > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrSegmentedQueue::SegmQueue_DHP_cacheline_padding()
-    {
-        struct queue_traits : public cds::container::segmented_queue::traits
-        {
-            enum { padding = cds::opt::cache_line_padding };
-        };
-
-        typedef cds::container::SegmentedQueue< cds::gc::DHP, item, queue_traits > queue_type;
-        test<queue_type>();
-    }
-
-    void HdrSegmentedQueue::SegmQueue_DHP_mutex_cacheline_padding()
-    {
-        typedef cds::container::SegmentedQueue< cds::gc::DHP, item,
-            cds::container::segmented_queue::make_traits<
-                cds::opt::lock_type< std::mutex >
-                , cds::opt::padding< cds::opt::cache_line_padding >
-            >::type
-        > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrSegmentedQueue::SegmQueue_DHP_shuffle_cacheline_padding()
-    {
-        struct queue_traits : public cds::container::segmented_queue::traits
-        {
-            typedef cds::atomicity::item_counter item_counter;
-            typedef cds::opt::v::random_shuffle_permutation<> permutation_generator;
-            enum { padding = cds::opt::cache_line_padding };
-        };
-        typedef cds::container::SegmentedQueue< cds::gc::DHP, item, queue_traits > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrSegmentedQueue::SegmQueue_DHP_stat_cacheline_padding()
-    {
-        struct queue_traits : public
-            cds::container::segmented_queue::make_traits <
-                cds::opt::item_counter< cds::atomicity::item_counter >
-                , cds::opt::permutation_generator< cds::opt::v::random_permutation<> >
-                , cds::opt::stat < cds::container::segmented_queue::stat<> >
-                , cds::opt::padding< cds::opt::cache_line_padding >
-            > ::type
-        {};
-        typedef cds::container::SegmentedQueue< cds::gc::DHP, item, queue_traits > queue_type;
-
-        test<queue_type>();
-    }
-
-} // namespace queue
diff --git a/tests/test-hdr/queue/hdr_segmented_queue_hp.cpp b/tests/test-hdr/queue/hdr_segmented_queue_hp.cpp
deleted file mode 100644 (file)
index d45c0eb..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
-    This file is a part of libcds - Concurrent Data Structures library
-
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
-
-    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:
-
-    * Redistributions of source code must retain the above copyright notice, this
-      list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    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.     
-*/
-
-#include "hdr_segmented_queue.h"
-#include <cds/container/segmented_queue.h>
-#include <cds/gc/hp.h>
-
-namespace queue {
-
-    void HdrSegmentedQueue::SegmQueue_HP()
-    {
-        typedef cds::container::SegmentedQueue< cds::gc::HP, item > queue_type;
-        test<queue_type>();
-    }
-
-    void HdrSegmentedQueue::SegmQueue_HP_mutex()
-    {
-        typedef cds::container::SegmentedQueue< cds::gc::HP, item,
-            cds::container::segmented_queue::make_traits<
-                cds::opt::lock_type< std::mutex >
-            >::type
-        > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrSegmentedQueue::SegmQueue_HP_shuffle()
-    {
-        struct queue_traits : public cds::container::segmented_queue::traits
-        {
-            typedef cds::atomicity::item_counter item_counter;
-            typedef cds::opt::v::random_shuffle_permutation<> permutation_generator;
-        };
-        typedef cds::container::SegmentedQueue< cds::gc::HP, item, queue_traits > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrSegmentedQueue::SegmQueue_HP_stat()
-    {
-        struct queue_traits : public
-            cds::container::segmented_queue::make_traits <
-                cds::opt::item_counter< cds::atomicity::item_counter >
-                , cds::opt::permutation_generator< cds::opt::v::random_permutation<> >
-                , cds::opt::stat < cds::container::segmented_queue::stat<> >
-            > ::type
-        {};
-        typedef cds::container::SegmentedQueue< cds::gc::HP, item, queue_traits > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrSegmentedQueue::SegmQueue_HP_cacheline_padding()
-    {
-        struct queue_traits : public cds::container::segmented_queue::traits
-        {
-            enum { padding = cds::opt::cache_line_padding };
-        };
-
-        typedef cds::container::SegmentedQueue< cds::gc::HP, item, queue_traits > queue_type;
-        test<queue_type>();
-    }
-
-    void HdrSegmentedQueue::SegmQueue_HP_mutex_cacheline_padding()
-    {
-        typedef cds::container::SegmentedQueue< cds::gc::HP, item,
-            cds::container::segmented_queue::make_traits<
-                cds::opt::lock_type< std::mutex >
-                , cds::opt::padding< cds::opt::cache_line_padding >
-            >::type
-        > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrSegmentedQueue::SegmQueue_HP_shuffle_cacheline_padding()
-    {
-        struct queue_traits : public cds::container::segmented_queue::traits
-        {
-            typedef cds::atomicity::item_counter item_counter;
-            typedef cds::opt::v::random_shuffle_permutation<> permutation_generator;
-            enum { padding = cds::opt::cache_line_padding };
-        };
-        typedef cds::container::SegmentedQueue< cds::gc::HP, item, queue_traits > queue_type;
-
-        test<queue_type>();
-    }
-
-    void HdrSegmentedQueue::SegmQueue_HP_stat_cacheline_padding()
-    {
-        struct queue_traits : public
-            cds::container::segmented_queue::make_traits <
-                cds::opt::item_counter< cds::atomicity::item_counter >
-                , cds::opt::permutation_generator< cds::opt::v::random_permutation<> >
-                , cds::opt::stat < cds::container::segmented_queue::stat<> >
-                , cds::opt::padding< cds::opt::cache_line_padding >
-            > ::type
-        {};
-        typedef cds::container::SegmentedQueue< cds::gc::HP, item, queue_traits > queue_type;
-
-        test<queue_type>();
-    }
-
-} // namespace queue
diff --git a/tests/test-hdr/queue/hdr_tsigas_cycle_queue.cpp b/tests/test-hdr/queue/hdr_tsigas_cycle_queue.cpp
deleted file mode 100644 (file)
index 05f0bf5..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
-    This file is a part of libcds - Concurrent Data Structures library
-
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
-
-    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:
-
-    * Redistributions of source code must retain the above copyright notice, this
-      list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    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.     
-*/
-
-#include "hdr_queue.h"
-#include <cds/container/tsigas_cycle_queue.h>
-
-namespace queue {
-
-    void HdrTestQueue::TsigasCycleQueue_static()
-    {
-        struct queue_traits : public cds::container::tsigas_queue::traits
-        {
-            typedef cds::opt::v::static_buffer< int, 1024 > buffer;
-            typedef cds::opt::v::sequential_consistent memory_model;
-        };
-        typedef cds::container::TsigasCycleQueue< int, queue_traits > queue_type;
-
-        test_bounded_no_ic<queue_type>();
-    }
-
-    void HdrTestQueue::TsigasCycleQueue_static_ic()
-    {
-        struct queue_traits : public cds::container::tsigas_queue::traits
-        {
-            typedef cds::opt::v::static_buffer< int, 1024 > buffer;
-            typedef cds::atomicity::item_counter item_counter;
-        };
-        typedef cds::container::TsigasCycleQueue< int, queue_traits > queue_type;
-
-        test_bounded_ic<queue_type>();
-    }
-    void HdrTestQueue::TsigasCycleQueue_dyn()
-    {
-        class queue_type
-            : public cds::container::TsigasCycleQueue< int,
-            typename cds::container::tsigas_queue::make_traits<
-                    cds::opt::buffer< cds::opt::v::dynamic_buffer< int > >
-                >::type
-            >
-        {
-            typedef cds::container::TsigasCycleQueue< int,
-                typename cds::container::tsigas_queue::make_traits<
-                    cds::opt::buffer< cds::opt::v::dynamic_buffer< int > >
-                >::type
-            > base_class;
-        public:
-            queue_type()
-                : base_class( 1024 )
-            {}
-        };
-
-        test_bounded_no_ic<queue_type>();
-    }
-    void HdrTestQueue::TsigasCycleQueue_dyn_ic()
-    {
-        class queue_type
-            : public cds::container::TsigasCycleQueue< int,
-                typename cds::container::tsigas_queue::make_traits<
-                    cds::opt::buffer< cds::opt::v::dynamic_buffer< int > >
-                    , cds::opt::item_counter< cds::atomicity::item_counter >
-                >::type
-            >
-        {
-            typedef cds::container::TsigasCycleQueue< int,
-                typename cds::container::tsigas_queue::make_traits<
-                    cds::opt::buffer< cds::opt::v::dynamic_buffer< int > >
-                    , cds::opt::item_counter< cds::atomicity::item_counter >
-                >::type
-            > base_class;
-        public:
-            queue_type()
-                : base_class( 1024 )
-            {}
-        };
-
-        test_bounded_ic<queue_type>();
-    }
-
-} // namespace queue
diff --git a/tests/test-hdr/queue/hdr_vyukov_mpmc_cyclic.cpp b/tests/test-hdr/queue/hdr_vyukov_mpmc_cyclic.cpp
deleted file mode 100644 (file)
index a5a5b59..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
-    This file is a part of libcds - Concurrent Data Structures library
-
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
-
-    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:
-
-    * Redistributions of source code must retain the above copyright notice, this
-      list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    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.     
-*/
-
-#include <cds/container/vyukov_mpmc_cycle_queue.h>
-
-#include "queue/hdr_queue.h"
-
-namespace queue {
-    namespace{
-        struct traits_VyukovMPMCCyclicQueue_static : public cds::container::vyukov_queue::traits
-        {
-            typedef cds::opt::v::static_buffer<int, 1024> buffer;
-        };
-        struct traits_VyukovMPMCCyclicQueue_static_ic : public traits_VyukovMPMCCyclicQueue_static
-        {
-            typedef cds::atomicity::item_counter item_counter;
-        };
-    }
-    void HdrTestQueue::VyukovMPMCCycleQueue_static()
-    {
-        typedef cds::container::VyukovMPMCCycleQueue< int, traits_VyukovMPMCCyclicQueue_static > queue_type;
-
-        test_bounded_no_ic< queue_type >();
-    }
-
-    void HdrTestQueue::VyukovMPMCCycleQueue_static_ic()
-    {
-        typedef cds::container::VyukovMPMCCycleQueue< int, traits_VyukovMPMCCyclicQueue_static_ic > queue_type;
-        test_bounded_ic< queue_type >();
-    }
-
-    void HdrTestQueue::VyukovMPMCCycleQueue_dyn()
-    {
-        class queue_type : public cds::container::VyukovMPMCCycleQueue < int >
-        {
-            typedef cds::container::VyukovMPMCCycleQueue < int > base_class;
-        public:
-            queue_type() : base_class( 1024 ) {}
-        };
-        test_bounded_no_ic< queue_type >();
-    }
-
-    void HdrTestQueue::VyukovMPMCCycleQueue_dyn_ic()
-    {
-        class queue_type :
-            public cds::container::VyukovMPMCCycleQueue < int,
-            typename cds::container::vyukov_queue::make_traits <
-            cds::opt::item_counter < cds::atomicity::item_counter >
-            > ::type
-            >
-        {
-            typedef cds::container::VyukovMPMCCycleQueue < int,
-                typename cds::container::vyukov_queue::make_traits <
-                    cds::opt::item_counter < cds::atomicity::item_counter >
-                > ::type
-            > base_class;
-        public:
-            queue_type() : base_class( 1024 ) {}
-        };
-        test_bounded_ic< queue_type >();
-    }
-
-}