]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/libs/fiber/test/Jamfile.v2
update sources to v12.2.3
[ceph.git] / ceph / src / boost / libs / fiber / test / Jamfile.v2
index f4d65f286a3c47f7cf79cd6ad009d05555df7ec4..6d81b74f46697adeafc4eb13147bf9d88860b02d 100644 (file)
@@ -18,23 +18,84 @@ import ../../config/checks/config : requires ;
 project boost/fiber/test
     : requirements
       <library>../../test/build//boost_unit_test_framework
+      <library>/boost/context//boost_context
       <library>/boost/fiber//boost_fiber
       <library>/boost/thread//boost_thread
+      <target-os>solaris:<linkflags>"-llgrp"
+      <target-os>windows:<define>_WIN32_WINNT=0x0601
       <toolset>gcc,<segmented-stacks>on:<cxxflags>-fsplit-stack
       <toolset>gcc,<segmented-stacks>on:<cxxflags>-DBOOST_USE_SEGMENTED_STACKS
       <toolset>clang,<segmented-stacks>on:<cxxflags>-fsplit-stack
       <toolset>clang,<segmented-stacks>on:<cxxflags>-DBOOST_USE_SEGMENTED_STACKS
       <link>static
       <threading>multi
+      <optimization>speed
+      <variant>release
     ;
 
-test-suite minimal :
+
+rule topology-impl ( properties * )
+{
+    local result  ;
+    if ( <target-os>darwin in $(properties) )
+    {
+        result = <build>no ;
+    }
+    return $(result) ;
+}
+
+rule native-impl ( properties * )
+{
+    local result  ;
+    if ( <target-os>darwin in $(properties) )
+    {
+        result = <build>no ;
+    }
+    else if ( ! ( <target-os>windows in $(properties) ) )
+    {
+        result = <context-impl>ucontext ;
+    }
+    else
+    {
+        result = <context-impl>winfib ;
+    }
+    return $(result) ;
+}
+
+# NUMA tests
+test-suite numa :
+[ run test_topology.cpp :
+    : :
+    <conditional>@topology-impl
+    [ requires cxx11_auto_declarations
+               cxx11_constexpr
+               cxx11_defaulted_functions
+               cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
+               cxx11_hdr_tuple
+               cxx11_lambdas
+               cxx11_noexcept
+               cxx11_nullptr
+               cxx11_rvalue_references
+               cxx11_template_aliases
+               cxx11_thread_local
+               cxx11_variadic_templates ] ] ;
+
+
+# tests using assembler API
+test-suite asm :
 [ run test_fiber_post.cpp :
     : :
+    <context-impl>fcontext
     [ requires cxx11_auto_declarations
                cxx11_constexpr
                cxx11_defaulted_functions
                cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
                cxx11_hdr_tuple
                cxx11_lambdas
                cxx11_noexcept
@@ -42,14 +103,19 @@ test-suite minimal :
                cxx11_rvalue_references
                cxx11_template_aliases
                cxx11_thread_local
-               cxx11_variadic_templates  ] ]
+               cxx11_variadic_templates ]
+    : test_fiber_post_asm ]
 
 [ run test_fiber_dispatch.cpp :
     : :
+    <context-impl>fcontext
     [ requires cxx11_auto_declarations
                cxx11_constexpr
                cxx11_defaulted_functions
                cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
                cxx11_hdr_tuple
                cxx11_lambdas
                cxx11_noexcept
@@ -57,14 +123,19 @@ test-suite minimal :
                cxx11_rvalue_references
                cxx11_template_aliases
                cxx11_thread_local
-               cxx11_variadic_templates  ] ]
+               cxx11_variadic_templates ]
+    : test_fiber_dispatch_asm ]
 
 [ run test_mutex_post.cpp :
     : :
+    <context-impl>fcontext
     [ requires cxx11_auto_declarations
                cxx11_constexpr
                cxx11_defaulted_functions
                cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
                cxx11_hdr_tuple
                cxx11_lambdas
                cxx11_noexcept
@@ -72,14 +143,19 @@ test-suite minimal :
                cxx11_rvalue_references
                cxx11_template_aliases
                cxx11_thread_local
-               cxx11_variadic_templates  ] ]
+               cxx11_variadic_templates ]
+    : test_mutex_post_asm ]
 
 [ run test_mutex_dispatch.cpp :
     : :
+    <context-impl>fcontext
     [ requires cxx11_auto_declarations
                cxx11_constexpr
                cxx11_defaulted_functions
                cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
                cxx11_hdr_tuple
                cxx11_lambdas
                cxx11_noexcept
@@ -87,14 +163,19 @@ test-suite minimal :
                cxx11_rvalue_references
                cxx11_template_aliases
                cxx11_thread_local
-               cxx11_variadic_templates  ] ]
+               cxx11_variadic_templates ]
+    : test_mutex_dispatch_asm ]
 
 [ run test_condition_variable_any_post.cpp :
     : :
+    <context-impl>fcontext
     [ requires cxx11_auto_declarations
                cxx11_constexpr
                cxx11_defaulted_functions
                cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
                cxx11_hdr_tuple
                cxx11_lambdas
                cxx11_noexcept
@@ -102,14 +183,19 @@ test-suite minimal :
                cxx11_rvalue_references
                cxx11_template_aliases
                cxx11_thread_local
-               cxx11_variadic_templates  ] ]
+               cxx11_variadic_templates ]
+    : test_condition_variable_any_post_asm ]
 
 [ run test_condition_variable_any_dispatch.cpp :
     : :
+    <context-impl>fcontext
     [ requires cxx11_auto_declarations
                cxx11_constexpr
                cxx11_defaulted_functions
                cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
                cxx11_hdr_tuple
                cxx11_lambdas
                cxx11_noexcept
@@ -117,14 +203,19 @@ test-suite minimal :
                cxx11_rvalue_references
                cxx11_template_aliases
                cxx11_thread_local
-               cxx11_variadic_templates  ] ]
+               cxx11_variadic_templates ]
+    : test_condition_variable_any_dispatch_asm ]
 
 [ run test_condition_variable_post.cpp :
     : :
+    <context-impl>fcontext
     [ requires cxx11_auto_declarations
                cxx11_constexpr
                cxx11_defaulted_functions
                cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
                cxx11_hdr_tuple
                cxx11_lambdas
                cxx11_noexcept
@@ -132,14 +223,19 @@ test-suite minimal :
                cxx11_rvalue_references
                cxx11_template_aliases
                cxx11_thread_local
-               cxx11_variadic_templates  ] ]
+               cxx11_variadic_templates ]
+    : test_condition_variable_post_asm ]
 
 [ run test_condition_variable_dispatch.cpp :
     : :
+    <context-impl>fcontext
     [ requires cxx11_auto_declarations
                cxx11_constexpr
                cxx11_defaulted_functions
                cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
                cxx11_hdr_tuple
                cxx11_lambdas
                cxx11_noexcept
@@ -147,14 +243,19 @@ test-suite minimal :
                cxx11_rvalue_references
                cxx11_template_aliases
                cxx11_thread_local
-               cxx11_variadic_templates  ] ]
+               cxx11_variadic_templates ]
+    : test_condition_variable_dispatch_asm ]
 
 [ run test_barrier_post.cpp :
     : :
+    <context-impl>fcontext
     [ requires cxx11_auto_declarations
                cxx11_constexpr
                cxx11_defaulted_functions
                cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
                cxx11_hdr_tuple
                cxx11_lambdas
                cxx11_noexcept
@@ -162,14 +263,19 @@ test-suite minimal :
                cxx11_rvalue_references
                cxx11_template_aliases
                cxx11_thread_local
-               cxx11_variadic_templates  ] ]
+               cxx11_variadic_templates ]
+    : test_barrier_post_asm ]
 
 [ run test_barrier_dispatch.cpp :
     : :
+    <context-impl>fcontext
     [ requires cxx11_auto_declarations
                cxx11_constexpr
                cxx11_defaulted_functions
                cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
                cxx11_hdr_tuple
                cxx11_lambdas
                cxx11_noexcept
@@ -177,14 +283,19 @@ test-suite minimal :
                cxx11_rvalue_references
                cxx11_template_aliases
                cxx11_thread_local
-               cxx11_variadic_templates  ] ]
+               cxx11_variadic_templates ]
+    : test_barrier_dispatch_asm ]
 
-[ run test_unbounded_channel_post.cpp :
+[ run test_buffered_channel_post.cpp :
     : :
+    <context-impl>fcontext
     [ requires cxx11_auto_declarations
                cxx11_constexpr
                cxx11_defaulted_functions
                cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
                cxx11_hdr_tuple
                cxx11_lambdas
                cxx11_noexcept
@@ -192,14 +303,19 @@ test-suite minimal :
                cxx11_rvalue_references
                cxx11_template_aliases
                cxx11_thread_local
-               cxx11_variadic_templates  ] ]
+               cxx11_variadic_templates ]
+    : test_buffered_channel_post_asm ]
 
-[ run test_unbounded_channel_dispatch.cpp :
+[ run test_buffered_channel_dispatch.cpp :
     : :
+    <context-impl>fcontext
     [ requires cxx11_auto_declarations
                cxx11_constexpr
                cxx11_defaulted_functions
                cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
                cxx11_hdr_tuple
                cxx11_lambdas
                cxx11_noexcept
@@ -207,14 +323,19 @@ test-suite minimal :
                cxx11_rvalue_references
                cxx11_template_aliases
                cxx11_thread_local
-               cxx11_variadic_templates  ] ]
+               cxx11_variadic_templates ]
+    : test_buffered_channel_dispatch_asm ]
 
-[ run test_bounded_channel_post.cpp :
+[ run test_unbuffered_channel_post.cpp :
     : :
+    <context-impl>fcontext
     [ requires cxx11_auto_declarations
                cxx11_constexpr
                cxx11_defaulted_functions
                cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
                cxx11_hdr_tuple
                cxx11_lambdas
                cxx11_noexcept
@@ -222,14 +343,19 @@ test-suite minimal :
                cxx11_rvalue_references
                cxx11_template_aliases
                cxx11_thread_local
-               cxx11_variadic_templates  ] ]
+               cxx11_variadic_templates ]
+    : test_unbuffered_channel_post_asm ]
 
-[ run test_bounded_channel_dispatch.cpp :
+[ run test_unbuffered_channel_dispatch.cpp :
     : :
+    <context-impl>fcontext
     [ requires cxx11_auto_declarations
                cxx11_constexpr
                cxx11_defaulted_functions
                cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
                cxx11_hdr_tuple
                cxx11_lambdas
                cxx11_noexcept
@@ -237,14 +363,19 @@ test-suite minimal :
                cxx11_rvalue_references
                cxx11_template_aliases
                cxx11_thread_local
-               cxx11_variadic_templates  ] ]
+               cxx11_variadic_templates ]
+    : test_unbuffered_channel_dispatch_asm ]
 
 [ run test_fss_post.cpp :
     : :
+    <context-impl>fcontext
     [ requires cxx11_auto_declarations
                cxx11_constexpr
                cxx11_defaulted_functions
                cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
                cxx11_hdr_tuple
                cxx11_lambdas
                cxx11_noexcept
@@ -252,14 +383,19 @@ test-suite minimal :
                cxx11_rvalue_references
                cxx11_template_aliases
                cxx11_thread_local
-               cxx11_variadic_templates  ] ]
+               cxx11_variadic_templates ]
+    : test_fss_post_asm ]
 
 [ run test_fss_dispatch.cpp :
     : :
+    <context-impl>fcontext
     [ requires cxx11_auto_declarations
                cxx11_constexpr
                cxx11_defaulted_functions
                cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
                cxx11_hdr_tuple
                cxx11_lambdas
                cxx11_noexcept
@@ -267,14 +403,19 @@ test-suite minimal :
                cxx11_rvalue_references
                cxx11_template_aliases
                cxx11_thread_local
-               cxx11_variadic_templates  ] ]
+               cxx11_variadic_templates ]
+    : test_fss_dispatch_asm ]
 
 [ run test_promise_post.cpp :
     : :
+    <context-impl>fcontext
     [ requires cxx11_auto_declarations
                cxx11_constexpr
                cxx11_defaulted_functions
                cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
                cxx11_hdr_tuple
                cxx11_lambdas
                cxx11_noexcept
@@ -282,14 +423,19 @@ test-suite minimal :
                cxx11_rvalue_references
                cxx11_template_aliases
                cxx11_thread_local
-               cxx11_variadic_templates  ] ]
+               cxx11_variadic_templates ]
+    : test_promise_post_asm ]
 
 [ run test_promise_dispatch.cpp :
     : :
+    <context-impl>fcontext
     [ requires cxx11_auto_declarations
                cxx11_constexpr
                cxx11_defaulted_functions
                cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
                cxx11_hdr_tuple
                cxx11_lambdas
                cxx11_noexcept
@@ -297,14 +443,19 @@ test-suite minimal :
                cxx11_rvalue_references
                cxx11_template_aliases
                cxx11_thread_local
-               cxx11_variadic_templates  ] ]
+               cxx11_variadic_templates ]
+    : test_promise_dispatch_asm ]
 
 [ run test_future_post.cpp :
     : :
+    <context-impl>fcontext
     [ requires cxx11_auto_declarations
                cxx11_constexpr
                cxx11_defaulted_functions
                cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
                cxx11_hdr_tuple
                cxx11_lambdas
                cxx11_noexcept
@@ -312,14 +463,19 @@ test-suite minimal :
                cxx11_rvalue_references
                cxx11_template_aliases
                cxx11_thread_local
-               cxx11_variadic_templates  ] ]
+               cxx11_variadic_templates ]
+    : test_future_post_asm ]
 
 [ run test_future_dispatch.cpp :
     : :
+    <context-impl>fcontext
     [ requires cxx11_auto_declarations
                cxx11_constexpr
                cxx11_defaulted_functions
                cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
                cxx11_hdr_tuple
                cxx11_lambdas
                cxx11_noexcept
@@ -327,14 +483,19 @@ test-suite minimal :
                cxx11_rvalue_references
                cxx11_template_aliases
                cxx11_thread_local
-               cxx11_variadic_templates  ] ]
+               cxx11_variadic_templates ]
+    : test_future_dispatch_asm ]
 
 [ run test_shared_future_post.cpp :
     : :
+    <context-impl>fcontext
     [ requires cxx11_auto_declarations
                cxx11_constexpr
                cxx11_defaulted_functions
                cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
                cxx11_hdr_tuple
                cxx11_lambdas
                cxx11_noexcept
@@ -342,14 +503,19 @@ test-suite minimal :
                cxx11_rvalue_references
                cxx11_template_aliases
                cxx11_thread_local
-               cxx11_variadic_templates  ] ]
+               cxx11_variadic_templates ]
+    : test_shared_future_post_asm ]
 
 [ run test_shared_future_dispatch.cpp :
     : :
+    <context-impl>fcontext
     [ requires cxx11_auto_declarations
                cxx11_constexpr
                cxx11_defaulted_functions
                cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
                cxx11_hdr_tuple
                cxx11_lambdas
                cxx11_noexcept
@@ -357,14 +523,19 @@ test-suite minimal :
                cxx11_rvalue_references
                cxx11_template_aliases
                cxx11_thread_local
-               cxx11_variadic_templates  ] ]
+               cxx11_variadic_templates ]
+    : test_shared_future_dispatch_asm ]
 
 [ run test_packaged_task_post.cpp :
     : :
+    <context-impl>fcontext
     [ requires cxx11_auto_declarations
                cxx11_constexpr
                cxx11_defaulted_functions
                cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
                cxx11_hdr_tuple
                cxx11_lambdas
                cxx11_noexcept
@@ -372,14 +543,19 @@ test-suite minimal :
                cxx11_rvalue_references
                cxx11_template_aliases
                cxx11_thread_local
-               cxx11_variadic_templates  ] ]
+               cxx11_variadic_templates ]
+    : test_packaged_task_post_asm ]
 
 [ run test_packaged_task_dispatch.cpp :
     : :
+    <context-impl>fcontext
     [ requires cxx11_auto_declarations
                cxx11_constexpr
                cxx11_defaulted_functions
                cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
                cxx11_hdr_tuple
                cxx11_lambdas
                cxx11_noexcept
@@ -387,14 +563,19 @@ test-suite minimal :
                cxx11_rvalue_references
                cxx11_template_aliases
                cxx11_thread_local
-               cxx11_variadic_templates  ] ]
+               cxx11_variadic_templates ]
+    : test_packaged_task_dispatch_asm ]
 
 [ run test_async_post.cpp :
     : :
+    <context-impl>fcontext
     [ requires cxx11_auto_declarations
                cxx11_constexpr
                cxx11_defaulted_functions
                cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
                cxx11_hdr_tuple
                cxx11_lambdas
                cxx11_noexcept
@@ -402,14 +583,19 @@ test-suite minimal :
                cxx11_rvalue_references
                cxx11_template_aliases
                cxx11_thread_local
-               cxx11_variadic_templates  ] ]
+               cxx11_variadic_templates ]
+    : test_async_post_asm ]
 
 [ run test_async_dispatch.cpp :
     : :
+    <context-impl>fcontext
     [ requires cxx11_auto_declarations
                cxx11_constexpr
                cxx11_defaulted_functions
                cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
                cxx11_hdr_tuple
                cxx11_lambdas
                cxx11_noexcept
@@ -417,18 +603,668 @@ test-suite minimal :
                cxx11_rvalue_references
                cxx11_template_aliases
                cxx11_thread_local
-               cxx11_variadic_templates  ] ] ;
+               cxx11_variadic_templates ]
+    : test_async_dispatch_asm ] ;
 
-test-suite full :
-    minimal ;
 
-test-suite extra :
+# tests using native API
+test-suite native :
+[ run test_fiber_post.cpp :
+    : :
+    <conditional>@native-impl
+    [ requires cxx11_auto_declarations
+               cxx11_constexpr
+               cxx11_defaulted_functions
+               cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
+               cxx11_hdr_tuple
+               cxx11_lambdas
+               cxx11_noexcept
+               cxx11_nullptr
+               cxx11_rvalue_references
+               cxx11_template_aliases
+               cxx11_thread_local
+               cxx11_variadic_templates ]
+    : test_fiber_post_native ]
+
+[ run test_fiber_dispatch.cpp :
+    : :
+    <conditional>@native-impl
+    [ requires cxx11_auto_declarations
+               cxx11_constexpr
+               cxx11_defaulted_functions
+               cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
+               cxx11_hdr_tuple
+               cxx11_lambdas
+               cxx11_noexcept
+               cxx11_nullptr
+               cxx11_rvalue_references
+               cxx11_template_aliases
+               cxx11_thread_local
+               cxx11_variadic_templates ]
+    : test_fiber_dispatch_native ]
+
+[ run test_mutex_post.cpp :
+    : :
+    <conditional>@native-impl
+    [ requires cxx11_auto_declarations
+               cxx11_constexpr
+               cxx11_defaulted_functions
+               cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
+               cxx11_hdr_tuple
+               cxx11_lambdas
+               cxx11_noexcept
+               cxx11_nullptr
+               cxx11_rvalue_references
+               cxx11_template_aliases
+               cxx11_thread_local
+               cxx11_variadic_templates ]
+    : test_mutex_post_native ]
+
+[ run test_mutex_dispatch.cpp :
+    : :
+    <conditional>@native-impl
+    [ requires cxx11_auto_declarations
+               cxx11_constexpr
+               cxx11_defaulted_functions
+               cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
+               cxx11_hdr_tuple
+               cxx11_lambdas
+               cxx11_noexcept
+               cxx11_nullptr
+               cxx11_rvalue_references
+               cxx11_template_aliases
+               cxx11_thread_local
+               cxx11_variadic_templates ]
+    : test_mutex_dispatch_native ]
+
+[ run test_condition_variable_any_post.cpp :
+    : :
+    <conditional>@native-impl
+    [ requires cxx11_auto_declarations
+               cxx11_constexpr
+               cxx11_defaulted_functions
+               cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
+               cxx11_hdr_tuple
+               cxx11_lambdas
+               cxx11_noexcept
+               cxx11_nullptr
+               cxx11_rvalue_references
+               cxx11_template_aliases
+               cxx11_thread_local
+               cxx11_variadic_templates ]
+    : test_cond_var_any_post_native ]
+
+[ run test_condition_variable_any_dispatch.cpp :
+    : :
+    <conditional>@native-impl
+    [ requires cxx11_auto_declarations
+               cxx11_constexpr
+               cxx11_defaulted_functions
+               cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
+               cxx11_hdr_tuple
+               cxx11_lambdas
+               cxx11_noexcept
+               cxx11_nullptr
+               cxx11_rvalue_references
+               cxx11_template_aliases
+               cxx11_thread_local
+               cxx11_variadic_templates ]
+    : test_cond_vare_any_dispatch_native ]
+
+[ run test_condition_variable_post.cpp :
+    : :
+    <conditional>@native-impl
+    [ requires cxx11_auto_declarations
+               cxx11_constexpr
+               cxx11_defaulted_functions
+               cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
+               cxx11_hdr_tuple
+               cxx11_lambdas
+               cxx11_noexcept
+               cxx11_nullptr
+               cxx11_rvalue_references
+               cxx11_template_aliases
+               cxx11_thread_local
+               cxx11_variadic_templates ]
+    : test_cond_var_post_native ]
+
+[ run test_condition_variable_dispatch.cpp :
+    : :
+    <conditional>@native-impl
+    [ requires cxx11_auto_declarations
+               cxx11_constexpr
+               cxx11_defaulted_functions
+               cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
+               cxx11_hdr_tuple
+               cxx11_lambdas
+               cxx11_noexcept
+               cxx11_nullptr
+               cxx11_rvalue_references
+               cxx11_template_aliases
+               cxx11_thread_local
+               cxx11_variadic_templates ]
+    : test_cond_var_dispatch_native ]
+
+[ run test_barrier_post.cpp :
+    : :
+    <conditional>@native-impl
+    [ requires cxx11_auto_declarations
+               cxx11_constexpr
+               cxx11_defaulted_functions
+               cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
+               cxx11_hdr_tuple
+               cxx11_lambdas
+               cxx11_noexcept
+               cxx11_nullptr
+               cxx11_rvalue_references
+               cxx11_template_aliases
+               cxx11_thread_local
+               cxx11_variadic_templates ]
+    : test_barrier_post_native ]
+
+[ run test_barrier_dispatch.cpp :
+    : :
+    <conditional>@native-impl
+    [ requires cxx11_auto_declarations
+               cxx11_constexpr
+               cxx11_defaulted_functions
+               cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
+               cxx11_hdr_tuple
+               cxx11_lambdas
+               cxx11_noexcept
+               cxx11_nullptr
+               cxx11_rvalue_references
+               cxx11_template_aliases
+               cxx11_thread_local
+               cxx11_variadic_templates ]
+    : test_barrier_dispatch_native ]
+
+[ run test_buffered_channel_post.cpp :
+    : :
+    <conditional>@native-impl
+    [ requires cxx11_auto_declarations
+               cxx11_constexpr
+               cxx11_defaulted_functions
+               cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
+               cxx11_hdr_tuple
+               cxx11_lambdas
+               cxx11_noexcept
+               cxx11_nullptr
+               cxx11_rvalue_references
+               cxx11_template_aliases
+               cxx11_thread_local
+               cxx11_variadic_templates ]
+    : test_buf_channel_post_native ]
+
+[ run test_buffered_channel_dispatch.cpp :
+    : :
+    <conditional>@native-impl
+    [ requires cxx11_auto_declarations
+               cxx11_constexpr
+               cxx11_defaulted_functions
+               cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
+               cxx11_hdr_tuple
+               cxx11_lambdas
+               cxx11_noexcept
+               cxx11_nullptr
+               cxx11_rvalue_references
+               cxx11_template_aliases
+               cxx11_thread_local
+               cxx11_variadic_templates ]
+    : test_buf_channel_dispatch_native ]
+
+[ run test_unbuffered_channel_post.cpp :
+    : :
+    <conditional>@native-impl
+    [ requires cxx11_auto_declarations
+               cxx11_constexpr
+               cxx11_defaulted_functions
+               cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
+               cxx11_hdr_tuple
+               cxx11_lambdas
+               cxx11_noexcept
+               cxx11_nullptr
+               cxx11_rvalue_references
+               cxx11_template_aliases
+               cxx11_thread_local
+               cxx11_variadic_templates ]
+    : test_unbuf_channel_post_native ]
+
+[ run test_unbuffered_channel_dispatch.cpp :
+    : :
+    <conditional>@native-impl
+    [ requires cxx11_auto_declarations
+               cxx11_constexpr
+               cxx11_defaulted_functions
+               cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
+               cxx11_hdr_tuple
+               cxx11_lambdas
+               cxx11_noexcept
+               cxx11_nullptr
+               cxx11_rvalue_references
+               cxx11_template_aliases
+               cxx11_thread_local
+               cxx11_variadic_templates ]
+    : test_unbuf_channel_dispatch_native ]
+
+[ run test_fss_post.cpp :
+    : :
+    <conditional>@native-impl
+    [ requires cxx11_auto_declarations
+               cxx11_constexpr
+               cxx11_defaulted_functions
+               cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
+               cxx11_hdr_tuple
+               cxx11_lambdas
+               cxx11_noexcept
+               cxx11_nullptr
+               cxx11_rvalue_references
+               cxx11_template_aliases
+               cxx11_thread_local
+               cxx11_variadic_templates ]
+    : test_fss_post_native ]
+
+[ run test_fss_dispatch.cpp :
+    : :
+    <conditional>@native-impl
+    [ requires cxx11_auto_declarations
+               cxx11_constexpr
+               cxx11_defaulted_functions
+               cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
+               cxx11_hdr_tuple
+               cxx11_lambdas
+               cxx11_noexcept
+               cxx11_nullptr
+               cxx11_rvalue_references
+               cxx11_template_aliases
+               cxx11_thread_local
+               cxx11_variadic_templates ]
+    : test_fss_dispatch_native ]
+
+[ run test_promise_post.cpp :
+    : :
+    <conditional>@native-impl
+    [ requires cxx11_auto_declarations
+               cxx11_constexpr
+               cxx11_defaulted_functions
+               cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
+               cxx11_hdr_tuple
+               cxx11_lambdas
+               cxx11_noexcept
+               cxx11_nullptr
+               cxx11_rvalue_references
+               cxx11_template_aliases
+               cxx11_thread_local
+               cxx11_variadic_templates ]
+    : test_promise_post_native ]
+
+[ run test_promise_dispatch.cpp :
+    : :
+    <conditional>@native-impl
+    [ requires cxx11_auto_declarations
+               cxx11_constexpr
+               cxx11_defaulted_functions
+               cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
+               cxx11_hdr_tuple
+               cxx11_lambdas
+               cxx11_noexcept
+               cxx11_nullptr
+               cxx11_rvalue_references
+               cxx11_template_aliases
+               cxx11_thread_local
+               cxx11_variadic_templates ]
+    : test_promise_dispatch_native ]
+
+[ run test_future_post.cpp :
+    : :
+    <conditional>@native-impl
+    [ requires cxx11_auto_declarations
+               cxx11_constexpr
+               cxx11_defaulted_functions
+               cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
+               cxx11_hdr_tuple
+               cxx11_lambdas
+               cxx11_noexcept
+               cxx11_nullptr
+               cxx11_rvalue_references
+               cxx11_template_aliases
+               cxx11_thread_local
+               cxx11_variadic_templates ]
+    : test_future_post_native ]
+
+[ run test_future_dispatch.cpp :
+    : :
+    <conditional>@native-impl
+    [ requires cxx11_auto_declarations
+               cxx11_constexpr
+               cxx11_defaulted_functions
+               cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
+               cxx11_hdr_tuple
+               cxx11_lambdas
+               cxx11_noexcept
+               cxx11_nullptr
+               cxx11_rvalue_references
+               cxx11_template_aliases
+               cxx11_thread_local
+               cxx11_variadic_templates ]
+    : test_future_dispatch_native ]
+
+[ run test_shared_future_post.cpp :
+    : :
+    <conditional>@native-impl
+    [ requires cxx11_auto_declarations
+               cxx11_constexpr
+               cxx11_defaulted_functions
+               cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
+               cxx11_hdr_tuple
+               cxx11_lambdas
+               cxx11_noexcept
+               cxx11_nullptr
+               cxx11_rvalue_references
+               cxx11_template_aliases
+               cxx11_thread_local
+               cxx11_variadic_templates ]
+    : test_shared_future_post_native ]
+
+[ run test_shared_future_dispatch.cpp :
+    : :
+    <conditional>@native-impl
+    [ requires cxx11_auto_declarations
+               cxx11_constexpr
+               cxx11_defaulted_functions
+               cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
+               cxx11_hdr_tuple
+               cxx11_lambdas
+               cxx11_noexcept
+               cxx11_nullptr
+               cxx11_rvalue_references
+               cxx11_template_aliases
+               cxx11_thread_local
+               cxx11_variadic_templates ]
+    : test_shared_future_dispatch_native ]
+
+[ run test_packaged_task_post.cpp :
+    : :
+    <conditional>@native-impl
+    [ requires cxx11_auto_declarations
+               cxx11_constexpr
+               cxx11_defaulted_functions
+               cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
+               cxx11_hdr_tuple
+               cxx11_lambdas
+               cxx11_noexcept
+               cxx11_nullptr
+               cxx11_rvalue_references
+               cxx11_template_aliases
+               cxx11_thread_local
+               cxx11_variadic_templates ]
+    : test_packaged_task_post_native ]
+
+[ run test_packaged_task_dispatch.cpp :
+    : :
+    <conditional>@native-impl
+    [ requires cxx11_auto_declarations
+               cxx11_constexpr
+               cxx11_defaulted_functions
+               cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
+               cxx11_hdr_tuple
+               cxx11_lambdas
+               cxx11_noexcept
+               cxx11_nullptr
+               cxx11_rvalue_references
+               cxx11_template_aliases
+               cxx11_thread_local
+               cxx11_variadic_templates ]
+    : test_packaged_task_dispatch_native ]
+
+[ run test_async_post.cpp :
+    : :
+    <conditional>@native-impl
+    [ requires cxx11_auto_declarations
+               cxx11_constexpr
+               cxx11_defaulted_functions
+               cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
+               cxx11_hdr_tuple
+               cxx11_lambdas
+               cxx11_noexcept
+               cxx11_nullptr
+               cxx11_rvalue_references
+               cxx11_template_aliases
+               cxx11_thread_local
+               cxx11_variadic_templates ]
+    : test_async_post_native ]
+
+[ run test_async_dispatch.cpp :
+    : :
+    <conditional>@native-impl
+    [ requires cxx11_auto_declarations
+               cxx11_constexpr
+               cxx11_defaulted_functions
+               cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
+               cxx11_hdr_tuple
+               cxx11_lambdas
+               cxx11_noexcept
+               cxx11_nullptr
+               cxx11_rvalue_references
+               cxx11_template_aliases
+               cxx11_thread_local
+               cxx11_variadic_templates ]
+    : test_async_dispatch_native ] ;
+
+
+#etra tests using asm API
+test-suite extra-asm :
+[ run test_mutex_mt_post.cpp :
+    : :
+    <context-impl>fcontext
+    [ requires cxx11_auto_declarations
+               cxx11_constexpr
+               cxx11_defaulted_functions
+               cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
+               cxx11_hdr_tuple
+               cxx11_lambdas
+               cxx11_noexcept
+               cxx11_nullptr
+               cxx11_rvalue_references
+               cxx11_template_aliases
+               cxx11_thread_local
+               cxx11_variadic_templates ]
+    : test_mutex_mt_post_asm ]
+
+[ run test_mutex_mt_dispatch.cpp :
+    : :
+    <context-impl>fcontext
+    [ requires cxx11_auto_declarations
+               cxx11_constexpr
+               cxx11_defaulted_functions
+               cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
+               cxx11_hdr_tuple
+               cxx11_lambdas
+               cxx11_noexcept
+               cxx11_nullptr
+               cxx11_rvalue_references
+               cxx11_template_aliases
+               cxx11_thread_local
+               cxx11_variadic_templates ]
+    : test_mutex_mt_dispatch_asm ]
+
+[ run test_condition_mt_post.cpp :
+    : :
+    <context-impl>fcontext
+    [ requires cxx11_auto_declarations
+               cxx11_constexpr
+               cxx11_defaulted_functions
+               cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
+               cxx11_hdr_tuple
+               cxx11_lambdas
+               cxx11_noexcept
+               cxx11_nullptr
+               cxx11_rvalue_references
+               cxx11_template_aliases
+               cxx11_thread_local
+               cxx11_variadic_templates ]
+    : test_condition_mt_post_asm ]
+
+[ run test_condition_mt_dispatch.cpp :
+    : :
+    <context-impl>fcontext
+    [ requires cxx11_auto_declarations
+               cxx11_constexpr
+               cxx11_defaulted_functions
+               cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
+               cxx11_hdr_tuple
+               cxx11_lambdas
+               cxx11_noexcept
+               cxx11_nullptr
+               cxx11_rvalue_references
+               cxx11_template_aliases
+               cxx11_thread_local
+               cxx11_variadic_templates ]
+    : test_condition_mt_dispatch_asm ]
+
+[ run test_future_mt_post.cpp :
+    : :
+    <context-impl>fcontext
+    [ requires cxx11_auto_declarations
+               cxx11_constexpr
+               cxx11_defaulted_functions
+               cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
+               cxx11_hdr_tuple
+               cxx11_lambdas
+               cxx11_noexcept
+               cxx11_nullptr
+               cxx11_rvalue_references
+               cxx11_template_aliases
+               cxx11_thread_local
+               cxx11_variadic_templates ]
+    : test_future_mt_post_asm ]
+
+[ run test_future_mt_dispatch.cpp :
+    : :
+    <context-impl>fcontext
+    [ requires cxx11_auto_declarations
+               cxx11_constexpr
+               cxx11_defaulted_functions
+               cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
+               cxx11_hdr_tuple
+               cxx11_lambdas
+               cxx11_noexcept
+               cxx11_nullptr
+               cxx11_rvalue_references
+               cxx11_template_aliases
+               cxx11_thread_local
+               cxx11_variadic_templates ]
+    : test_future_mt_dispatch_asm ] ;
+
+
+#etra tests using native API
+test-suite extra-native :
 [ run test_mutex_mt_post.cpp :
     : :
+    <conditional>@native-impl
     [ requires cxx11_auto_declarations
                cxx11_constexpr
                cxx11_defaulted_functions
                cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
                cxx11_hdr_tuple
                cxx11_lambdas
                cxx11_noexcept
@@ -436,14 +1272,19 @@ test-suite extra :
                cxx11_rvalue_references
                cxx11_template_aliases
                cxx11_thread_local
-               cxx11_variadic_templates  ] ]
+               cxx11_variadic_templates ]
+    : test_mutex_mt_post_native ]
 
 [ run test_mutex_mt_dispatch.cpp :
     : :
+    <conditional>@native-impl
     [ requires cxx11_auto_declarations
                cxx11_constexpr
                cxx11_defaulted_functions
                cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
                cxx11_hdr_tuple
                cxx11_lambdas
                cxx11_noexcept
@@ -451,14 +1292,19 @@ test-suite extra :
                cxx11_rvalue_references
                cxx11_template_aliases
                cxx11_thread_local
-               cxx11_variadic_templates  ] ]
+               cxx11_variadic_templates ]
+    : test_mutex_mt_dispatch_native ]
 
 [ run test_condition_mt_post.cpp :
     : :
+    <conditional>@native-impl
     [ requires cxx11_auto_declarations
                cxx11_constexpr
                cxx11_defaulted_functions
                cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
                cxx11_hdr_tuple
                cxx11_lambdas
                cxx11_noexcept
@@ -466,14 +1312,19 @@ test-suite extra :
                cxx11_rvalue_references
                cxx11_template_aliases
                cxx11_thread_local
-               cxx11_variadic_templates  ] ]
+               cxx11_variadic_templates ]
+    : test_condition_mt_post_native ]
 
 [ run test_condition_mt_dispatch.cpp :
     : :
+    <conditional>@native-impl
     [ requires cxx11_auto_declarations
                cxx11_constexpr
                cxx11_defaulted_functions
                cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
                cxx11_hdr_tuple
                cxx11_lambdas
                cxx11_noexcept
@@ -481,14 +1332,19 @@ test-suite extra :
                cxx11_rvalue_references
                cxx11_template_aliases
                cxx11_thread_local
-               cxx11_variadic_templates  ] ]
+               cxx11_variadic_templates ]
+    : test_condition_mt_dispatch_native ]
 
 [ run test_future_mt_post.cpp :
     : :
+    <conditional>@native-impl
     [ requires cxx11_auto_declarations
                cxx11_constexpr
                cxx11_defaulted_functions
                cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
                cxx11_hdr_tuple
                cxx11_lambdas
                cxx11_noexcept
@@ -496,14 +1352,19 @@ test-suite extra :
                cxx11_rvalue_references
                cxx11_template_aliases
                cxx11_thread_local
-               cxx11_variadic_templates  ] ]
+               cxx11_variadic_templates ]
+    : test_future_mt_post_native ]
 
 [ run test_future_mt_dispatch.cpp :
     : :
+    <conditional>@native-impl
     [ requires cxx11_auto_declarations
                cxx11_constexpr
                cxx11_defaulted_functions
                cxx11_final
+               cxx11_hdr_mutex
+               cxx11_hdr_regex
+               cxx11_hdr_thread
                cxx11_hdr_tuple
                cxx11_lambdas
                cxx11_noexcept
@@ -511,7 +1372,18 @@ test-suite extra :
                cxx11_rvalue_references
                cxx11_template_aliases
                cxx11_thread_local
-               cxx11_variadic_templates  ] ] ;
+               cxx11_variadic_templates ]
+    : test_future_mt_dispatch_native ] ;
 
-explicit minimal ;
+
+test-suite minimal :
+    numa asm native ;
+
+test-suite extra :
+    extra-asm extra-native ;
+
+explicit minmal ;
 explicit extra ;
+
+test-suite full :
+    minimal extra ;