• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Boost.Fiber Library Tests Jamfile
2
3#          Copyright Oliver Kowalke 2013.
4# Distributed under the Boost Software License, Version 1.0.
5#    (See accompanying file LICENSE_1_0.txt or copy at
6#          http://www.boost.org/LICENSE_1_0.txt)
7
8import common ;
9import feature ;
10import indirect ;
11import modules ;
12import os ;
13import path ;
14import testing ;
15import toolset ;
16import ../../config/checks/config : requires ;
17
18project boost/fiber/test
19    : requirements
20      <library>../../test/build//boost_unit_test_framework
21      <library>/boost/context//boost_context
22      <library>/boost/fiber//boost_fiber
23      <library>/boost/thread//boost_thread
24      <target-os>solaris:<linkflags>"-llgrp"
25      <target-os>windows:<define>_WIN32_WINNT=0x0601
26      <target-os>linux,<toolset>gcc,<segmented-stacks>on:<cxxflags>-fsplit-stack
27      <target-os>linux,<toolset>gcc,<segmented-stacks>on:<cxxflags>-DBOOST_USE_SEGMENTED_STACKS
28      <toolset>clang,<segmented-stacks>on:<cxxflags>-fsplit-stack
29      <toolset>clang,<segmented-stacks>on:<cxxflags>-DBOOST_USE_SEGMENTED_STACKS
30      <link>static
31      <threading>multi
32      <optimization>speed
33      <variant>release
34    ;
35
36
37rule native-impl ( properties * )
38{
39    local result  ;
40    if ( <target-os>darwin in $(properties) || <target-os>android in $(properties) )
41    {
42        result = <build>no ;
43    }
44    else if ( ! ( <target-os>windows in $(properties) ) )
45    {
46        result = <context-impl>ucontext ;
47    }
48    else
49    {
50        result = <context-impl>winfib ;
51    }
52    return $(result) ;
53}
54
55
56# tests using assembler API
57test-suite asm :
58[ run test_fiber_post.cpp :
59    : :
60    <context-impl>fcontext
61    [ requires cxx11_auto_declarations
62               cxx11_constexpr
63               cxx11_defaulted_functions
64               cxx11_final
65               cxx11_hdr_mutex
66               cxx11_hdr_thread
67               cxx11_hdr_tuple
68               cxx11_lambdas
69               cxx11_noexcept
70               cxx11_nullptr
71               cxx11_rvalue_references
72               cxx11_template_aliases
73               cxx11_thread_local
74               cxx11_variadic_templates ]
75    : test_fiber_post_asm ]
76
77[ run test_fiber_dispatch.cpp :
78    : :
79    <context-impl>fcontext
80    [ requires cxx11_auto_declarations
81               cxx11_constexpr
82               cxx11_defaulted_functions
83               cxx11_final
84               cxx11_hdr_mutex
85               cxx11_hdr_thread
86               cxx11_hdr_tuple
87               cxx11_lambdas
88               cxx11_noexcept
89               cxx11_nullptr
90               cxx11_rvalue_references
91               cxx11_template_aliases
92               cxx11_thread_local
93               cxx11_variadic_templates ]
94    : test_fiber_dispatch_asm ]
95
96[ run test_mutex_post.cpp :
97    : :
98    <context-impl>fcontext
99    [ requires cxx11_auto_declarations
100               cxx11_constexpr
101               cxx11_defaulted_functions
102               cxx11_final
103               cxx11_hdr_mutex
104               cxx11_hdr_thread
105               cxx11_hdr_tuple
106               cxx11_lambdas
107               cxx11_noexcept
108               cxx11_nullptr
109               cxx11_rvalue_references
110               cxx11_template_aliases
111               cxx11_thread_local
112               cxx11_variadic_templates ]
113    : test_mutex_post_asm ]
114
115[ run test_mutex_dispatch.cpp :
116    : :
117    <context-impl>fcontext
118    [ requires cxx11_auto_declarations
119               cxx11_constexpr
120               cxx11_defaulted_functions
121               cxx11_final
122               cxx11_hdr_mutex
123               cxx11_hdr_thread
124               cxx11_hdr_tuple
125               cxx11_lambdas
126               cxx11_noexcept
127               cxx11_nullptr
128               cxx11_rvalue_references
129               cxx11_template_aliases
130               cxx11_thread_local
131               cxx11_variadic_templates ]
132    : test_mutex_dispatch_asm ]
133
134[ run test_condition_variable_any_post.cpp :
135    : :
136    <context-impl>fcontext
137    [ requires cxx11_auto_declarations
138               cxx11_constexpr
139               cxx11_defaulted_functions
140               cxx11_final
141               cxx11_hdr_mutex
142               cxx11_hdr_thread
143               cxx11_hdr_tuple
144               cxx11_lambdas
145               cxx11_noexcept
146               cxx11_nullptr
147               cxx11_rvalue_references
148               cxx11_template_aliases
149               cxx11_thread_local
150               cxx11_variadic_templates ]
151    : test_condition_variable_any_post_asm ]
152
153[ run test_condition_variable_any_dispatch.cpp :
154    : :
155    <context-impl>fcontext
156    [ requires cxx11_auto_declarations
157               cxx11_constexpr
158               cxx11_defaulted_functions
159               cxx11_final
160               cxx11_hdr_mutex
161               cxx11_hdr_thread
162               cxx11_hdr_tuple
163               cxx11_lambdas
164               cxx11_noexcept
165               cxx11_nullptr
166               cxx11_rvalue_references
167               cxx11_template_aliases
168               cxx11_thread_local
169               cxx11_variadic_templates ]
170    : test_condition_variable_any_dispatch_asm ]
171
172[ run test_condition_variable_post.cpp :
173    : :
174    <context-impl>fcontext
175    [ requires cxx11_auto_declarations
176               cxx11_constexpr
177               cxx11_defaulted_functions
178               cxx11_final
179               cxx11_hdr_mutex
180               cxx11_hdr_thread
181               cxx11_hdr_tuple
182               cxx11_lambdas
183               cxx11_noexcept
184               cxx11_nullptr
185               cxx11_rvalue_references
186               cxx11_template_aliases
187               cxx11_thread_local
188               cxx11_variadic_templates ]
189    : test_condition_variable_post_asm ]
190
191[ run test_condition_variable_dispatch.cpp :
192    : :
193    <context-impl>fcontext
194    [ requires cxx11_auto_declarations
195               cxx11_constexpr
196               cxx11_defaulted_functions
197               cxx11_final
198               cxx11_hdr_mutex
199               cxx11_hdr_thread
200               cxx11_hdr_tuple
201               cxx11_lambdas
202               cxx11_noexcept
203               cxx11_nullptr
204               cxx11_rvalue_references
205               cxx11_template_aliases
206               cxx11_thread_local
207               cxx11_variadic_templates ]
208    : test_condition_variable_dispatch_asm ]
209
210[ run test_barrier_post.cpp :
211    : :
212    <context-impl>fcontext
213    [ requires cxx11_auto_declarations
214               cxx11_constexpr
215               cxx11_defaulted_functions
216               cxx11_final
217               cxx11_hdr_mutex
218               cxx11_hdr_thread
219               cxx11_hdr_tuple
220               cxx11_lambdas
221               cxx11_noexcept
222               cxx11_nullptr
223               cxx11_rvalue_references
224               cxx11_template_aliases
225               cxx11_thread_local
226               cxx11_variadic_templates ]
227    : test_barrier_post_asm ]
228
229[ run test_barrier_dispatch.cpp :
230    : :
231    <context-impl>fcontext
232    [ requires cxx11_auto_declarations
233               cxx11_constexpr
234               cxx11_defaulted_functions
235               cxx11_final
236               cxx11_hdr_mutex
237               cxx11_hdr_thread
238               cxx11_hdr_tuple
239               cxx11_lambdas
240               cxx11_noexcept
241               cxx11_nullptr
242               cxx11_rvalue_references
243               cxx11_template_aliases
244               cxx11_thread_local
245               cxx11_variadic_templates ]
246    : test_barrier_dispatch_asm ]
247
248[ run test_buffered_channel_post.cpp :
249    : :
250    <context-impl>fcontext
251    [ requires cxx11_auto_declarations
252               cxx11_constexpr
253               cxx11_defaulted_functions
254               cxx11_final
255               cxx11_hdr_mutex
256               cxx11_hdr_thread
257               cxx11_hdr_tuple
258               cxx11_lambdas
259               cxx11_noexcept
260               cxx11_nullptr
261               cxx11_rvalue_references
262               cxx11_template_aliases
263               cxx11_thread_local
264               cxx11_variadic_templates ]
265    : test_buffered_channel_post_asm ]
266
267[ run test_buffered_channel_dispatch.cpp :
268    : :
269    <context-impl>fcontext
270    [ requires cxx11_auto_declarations
271               cxx11_constexpr
272               cxx11_defaulted_functions
273               cxx11_final
274               cxx11_hdr_mutex
275               cxx11_hdr_thread
276               cxx11_hdr_tuple
277               cxx11_lambdas
278               cxx11_noexcept
279               cxx11_nullptr
280               cxx11_rvalue_references
281               cxx11_template_aliases
282               cxx11_thread_local
283               cxx11_variadic_templates ]
284    : test_buffered_channel_dispatch_asm ]
285
286[ run test_unbuffered_channel_post.cpp :
287    : :
288    <context-impl>fcontext
289    [ requires cxx11_auto_declarations
290               cxx11_constexpr
291               cxx11_defaulted_functions
292               cxx11_final
293               cxx11_hdr_mutex
294               cxx11_hdr_thread
295               cxx11_hdr_tuple
296               cxx11_lambdas
297               cxx11_noexcept
298               cxx11_nullptr
299               cxx11_rvalue_references
300               cxx11_template_aliases
301               cxx11_thread_local
302               cxx11_variadic_templates ]
303    : test_unbuffered_channel_post_asm ]
304
305[ run test_unbuffered_channel_dispatch.cpp :
306    : :
307    <context-impl>fcontext
308    [ requires cxx11_auto_declarations
309               cxx11_constexpr
310               cxx11_defaulted_functions
311               cxx11_final
312               cxx11_hdr_mutex
313               cxx11_hdr_thread
314               cxx11_hdr_tuple
315               cxx11_lambdas
316               cxx11_noexcept
317               cxx11_nullptr
318               cxx11_rvalue_references
319               cxx11_template_aliases
320               cxx11_thread_local
321               cxx11_variadic_templates ]
322    : test_unbuffered_channel_dispatch_asm ]
323
324[ run test_fss_post.cpp :
325    : :
326    <context-impl>fcontext
327    [ requires cxx11_auto_declarations
328               cxx11_constexpr
329               cxx11_defaulted_functions
330               cxx11_final
331               cxx11_hdr_mutex
332               cxx11_hdr_thread
333               cxx11_hdr_tuple
334               cxx11_lambdas
335               cxx11_noexcept
336               cxx11_nullptr
337               cxx11_rvalue_references
338               cxx11_template_aliases
339               cxx11_thread_local
340               cxx11_variadic_templates ]
341    : test_fss_post_asm ]
342
343[ run test_fss_dispatch.cpp :
344    : :
345    <context-impl>fcontext
346    [ requires cxx11_auto_declarations
347               cxx11_constexpr
348               cxx11_defaulted_functions
349               cxx11_final
350               cxx11_hdr_mutex
351               cxx11_hdr_thread
352               cxx11_hdr_tuple
353               cxx11_lambdas
354               cxx11_noexcept
355               cxx11_nullptr
356               cxx11_rvalue_references
357               cxx11_template_aliases
358               cxx11_thread_local
359               cxx11_variadic_templates ]
360    : test_fss_dispatch_asm ]
361
362[ run test_promise_post.cpp :
363    : :
364    <context-impl>fcontext
365    [ requires cxx11_auto_declarations
366               cxx11_constexpr
367               cxx11_defaulted_functions
368               cxx11_final
369               cxx11_hdr_mutex
370               cxx11_hdr_thread
371               cxx11_hdr_tuple
372               cxx11_lambdas
373               cxx11_noexcept
374               cxx11_nullptr
375               cxx11_rvalue_references
376               cxx11_template_aliases
377               cxx11_thread_local
378               cxx11_variadic_templates ]
379    : test_promise_post_asm ]
380
381[ run test_promise_dispatch.cpp :
382    : :
383    <context-impl>fcontext
384    [ requires cxx11_auto_declarations
385               cxx11_constexpr
386               cxx11_defaulted_functions
387               cxx11_final
388               cxx11_hdr_mutex
389               cxx11_hdr_thread
390               cxx11_hdr_tuple
391               cxx11_lambdas
392               cxx11_noexcept
393               cxx11_nullptr
394               cxx11_rvalue_references
395               cxx11_template_aliases
396               cxx11_thread_local
397               cxx11_variadic_templates ]
398    : test_promise_dispatch_asm ]
399
400[ run test_future_post.cpp :
401    : :
402    <context-impl>fcontext
403    [ requires cxx11_auto_declarations
404               cxx11_constexpr
405               cxx11_defaulted_functions
406               cxx11_final
407               cxx11_hdr_mutex
408               cxx11_hdr_thread
409               cxx11_hdr_tuple
410               cxx11_lambdas
411               cxx11_noexcept
412               cxx11_nullptr
413               cxx11_rvalue_references
414               cxx11_template_aliases
415               cxx11_thread_local
416               cxx11_variadic_templates ]
417    : test_future_post_asm ]
418
419[ run test_future_dispatch.cpp :
420    : :
421    <context-impl>fcontext
422    [ requires cxx11_auto_declarations
423               cxx11_constexpr
424               cxx11_defaulted_functions
425               cxx11_final
426               cxx11_hdr_mutex
427               cxx11_hdr_thread
428               cxx11_hdr_tuple
429               cxx11_lambdas
430               cxx11_noexcept
431               cxx11_nullptr
432               cxx11_rvalue_references
433               cxx11_template_aliases
434               cxx11_thread_local
435               cxx11_variadic_templates ]
436    : test_future_dispatch_asm ]
437
438[ run test_shared_future_post.cpp :
439    : :
440    <context-impl>fcontext
441    [ requires cxx11_auto_declarations
442               cxx11_constexpr
443               cxx11_defaulted_functions
444               cxx11_final
445               cxx11_hdr_mutex
446               cxx11_hdr_thread
447               cxx11_hdr_tuple
448               cxx11_lambdas
449               cxx11_noexcept
450               cxx11_nullptr
451               cxx11_rvalue_references
452               cxx11_template_aliases
453               cxx11_thread_local
454               cxx11_variadic_templates ]
455    : test_shared_future_post_asm ]
456
457[ run test_shared_future_dispatch.cpp :
458    : :
459    <context-impl>fcontext
460    [ requires cxx11_auto_declarations
461               cxx11_constexpr
462               cxx11_defaulted_functions
463               cxx11_final
464               cxx11_hdr_mutex
465               cxx11_hdr_thread
466               cxx11_hdr_tuple
467               cxx11_lambdas
468               cxx11_noexcept
469               cxx11_nullptr
470               cxx11_rvalue_references
471               cxx11_template_aliases
472               cxx11_thread_local
473               cxx11_variadic_templates ]
474    : test_shared_future_dispatch_asm ]
475
476[ run test_packaged_task_post.cpp :
477    : :
478    <context-impl>fcontext
479    [ requires cxx11_auto_declarations
480               cxx11_constexpr
481               cxx11_defaulted_functions
482               cxx11_final
483               cxx11_hdr_mutex
484               cxx11_hdr_thread
485               cxx11_hdr_tuple
486               cxx11_lambdas
487               cxx11_noexcept
488               cxx11_nullptr
489               cxx11_rvalue_references
490               cxx11_template_aliases
491               cxx11_thread_local
492               cxx11_variadic_templates ]
493    : test_packaged_task_post_asm ]
494
495[ run test_packaged_task_dispatch.cpp :
496    : :
497    <context-impl>fcontext
498    [ requires cxx11_auto_declarations
499               cxx11_constexpr
500               cxx11_defaulted_functions
501               cxx11_final
502               cxx11_hdr_mutex
503               cxx11_hdr_thread
504               cxx11_hdr_tuple
505               cxx11_lambdas
506               cxx11_noexcept
507               cxx11_nullptr
508               cxx11_rvalue_references
509               cxx11_template_aliases
510               cxx11_thread_local
511               cxx11_variadic_templates ]
512    : test_packaged_task_dispatch_asm ]
513
514[ run test_async_post.cpp :
515    : :
516    <context-impl>fcontext
517    [ requires cxx11_auto_declarations
518               cxx11_constexpr
519               cxx11_defaulted_functions
520               cxx11_final
521               cxx11_hdr_mutex
522               cxx11_hdr_thread
523               cxx11_hdr_tuple
524               cxx11_lambdas
525               cxx11_noexcept
526               cxx11_nullptr
527               cxx11_rvalue_references
528               cxx11_template_aliases
529               cxx11_thread_local
530               cxx11_variadic_templates ]
531    : test_async_post_asm ]
532
533[ run test_async_dispatch.cpp :
534    : :
535    <context-impl>fcontext
536    [ requires cxx11_auto_declarations
537               cxx11_constexpr
538               cxx11_defaulted_functions
539               cxx11_final
540               cxx11_hdr_mutex
541               cxx11_hdr_thread
542               cxx11_hdr_tuple
543               cxx11_lambdas
544               cxx11_noexcept
545               cxx11_nullptr
546               cxx11_rvalue_references
547               cxx11_template_aliases
548               cxx11_thread_local
549               cxx11_variadic_templates ]
550    : test_async_dispatch_asm ] ;
551
552
553# tests using native API
554test-suite native :
555[ run test_fiber_post.cpp :
556    : :
557    <conditional>@native-impl
558    [ requires cxx11_auto_declarations
559               cxx11_constexpr
560               cxx11_defaulted_functions
561               cxx11_final
562               cxx11_hdr_mutex
563               cxx11_hdr_thread
564               cxx11_hdr_tuple
565               cxx11_lambdas
566               cxx11_noexcept
567               cxx11_nullptr
568               cxx11_rvalue_references
569               cxx11_template_aliases
570               cxx11_thread_local
571               cxx11_variadic_templates ]
572    : test_fiber_post_native ]
573
574[ run test_fiber_dispatch.cpp :
575    : :
576    <conditional>@native-impl
577    [ requires cxx11_auto_declarations
578               cxx11_constexpr
579               cxx11_defaulted_functions
580               cxx11_final
581               cxx11_hdr_mutex
582               cxx11_hdr_thread
583               cxx11_hdr_tuple
584               cxx11_lambdas
585               cxx11_noexcept
586               cxx11_nullptr
587               cxx11_rvalue_references
588               cxx11_template_aliases
589               cxx11_thread_local
590               cxx11_variadic_templates ]
591    : test_fiber_dispatch_native ]
592
593[ run test_mutex_post.cpp :
594    : :
595    <conditional>@native-impl
596    [ requires cxx11_auto_declarations
597               cxx11_constexpr
598               cxx11_defaulted_functions
599               cxx11_final
600               cxx11_hdr_mutex
601               cxx11_hdr_thread
602               cxx11_hdr_tuple
603               cxx11_lambdas
604               cxx11_noexcept
605               cxx11_nullptr
606               cxx11_rvalue_references
607               cxx11_template_aliases
608               cxx11_thread_local
609               cxx11_variadic_templates ]
610    : test_mutex_post_native ]
611
612[ run test_mutex_dispatch.cpp :
613    : :
614    <conditional>@native-impl
615    [ requires cxx11_auto_declarations
616               cxx11_constexpr
617               cxx11_defaulted_functions
618               cxx11_final
619               cxx11_hdr_mutex
620               cxx11_hdr_thread
621               cxx11_hdr_tuple
622               cxx11_lambdas
623               cxx11_noexcept
624               cxx11_nullptr
625               cxx11_rvalue_references
626               cxx11_template_aliases
627               cxx11_thread_local
628               cxx11_variadic_templates ]
629    : test_mutex_dispatch_native ]
630
631[ run test_condition_variable_any_post.cpp :
632    : :
633    <conditional>@native-impl
634    [ requires cxx11_auto_declarations
635               cxx11_constexpr
636               cxx11_defaulted_functions
637               cxx11_final
638               cxx11_hdr_mutex
639               cxx11_hdr_thread
640               cxx11_hdr_tuple
641               cxx11_lambdas
642               cxx11_noexcept
643               cxx11_nullptr
644               cxx11_rvalue_references
645               cxx11_template_aliases
646               cxx11_thread_local
647               cxx11_variadic_templates ]
648    : test_cond_var_any_post_native ]
649
650[ run test_condition_variable_any_dispatch.cpp :
651    : :
652    <conditional>@native-impl
653    [ requires cxx11_auto_declarations
654               cxx11_constexpr
655               cxx11_defaulted_functions
656               cxx11_final
657               cxx11_hdr_mutex
658               cxx11_hdr_thread
659               cxx11_hdr_tuple
660               cxx11_lambdas
661               cxx11_noexcept
662               cxx11_nullptr
663               cxx11_rvalue_references
664               cxx11_template_aliases
665               cxx11_thread_local
666               cxx11_variadic_templates ]
667    : test_cond_vare_any_dispatch_native ]
668
669[ run test_condition_variable_post.cpp :
670    : :
671    <conditional>@native-impl
672    [ requires cxx11_auto_declarations
673               cxx11_constexpr
674               cxx11_defaulted_functions
675               cxx11_final
676               cxx11_hdr_mutex
677               cxx11_hdr_thread
678               cxx11_hdr_tuple
679               cxx11_lambdas
680               cxx11_noexcept
681               cxx11_nullptr
682               cxx11_rvalue_references
683               cxx11_template_aliases
684               cxx11_thread_local
685               cxx11_variadic_templates ]
686    : test_cond_var_post_native ]
687
688[ run test_condition_variable_dispatch.cpp :
689    : :
690    <conditional>@native-impl
691    [ requires cxx11_auto_declarations
692               cxx11_constexpr
693               cxx11_defaulted_functions
694               cxx11_final
695               cxx11_hdr_mutex
696               cxx11_hdr_thread
697               cxx11_hdr_tuple
698               cxx11_lambdas
699               cxx11_noexcept
700               cxx11_nullptr
701               cxx11_rvalue_references
702               cxx11_template_aliases
703               cxx11_thread_local
704               cxx11_variadic_templates ]
705    : test_cond_var_dispatch_native ]
706
707[ run test_barrier_post.cpp :
708    : :
709    <conditional>@native-impl
710    [ requires cxx11_auto_declarations
711               cxx11_constexpr
712               cxx11_defaulted_functions
713               cxx11_final
714               cxx11_hdr_mutex
715               cxx11_hdr_thread
716               cxx11_hdr_tuple
717               cxx11_lambdas
718               cxx11_noexcept
719               cxx11_nullptr
720               cxx11_rvalue_references
721               cxx11_template_aliases
722               cxx11_thread_local
723               cxx11_variadic_templates ]
724    : test_barrier_post_native ]
725
726[ run test_barrier_dispatch.cpp :
727    : :
728    <conditional>@native-impl
729    [ requires cxx11_auto_declarations
730               cxx11_constexpr
731               cxx11_defaulted_functions
732               cxx11_final
733               cxx11_hdr_mutex
734               cxx11_hdr_thread
735               cxx11_hdr_tuple
736               cxx11_lambdas
737               cxx11_noexcept
738               cxx11_nullptr
739               cxx11_rvalue_references
740               cxx11_template_aliases
741               cxx11_thread_local
742               cxx11_variadic_templates ]
743    : test_barrier_dispatch_native ]
744
745[ run test_buffered_channel_post.cpp :
746    : :
747    <conditional>@native-impl
748    [ requires cxx11_auto_declarations
749               cxx11_constexpr
750               cxx11_defaulted_functions
751               cxx11_final
752               cxx11_hdr_mutex
753               cxx11_hdr_thread
754               cxx11_hdr_tuple
755               cxx11_lambdas
756               cxx11_noexcept
757               cxx11_nullptr
758               cxx11_rvalue_references
759               cxx11_template_aliases
760               cxx11_thread_local
761               cxx11_variadic_templates ]
762    : test_buf_channel_post_native ]
763
764[ run test_buffered_channel_dispatch.cpp :
765    : :
766    <conditional>@native-impl
767    [ requires cxx11_auto_declarations
768               cxx11_constexpr
769               cxx11_defaulted_functions
770               cxx11_final
771               cxx11_hdr_mutex
772               cxx11_hdr_thread
773               cxx11_hdr_tuple
774               cxx11_lambdas
775               cxx11_noexcept
776               cxx11_nullptr
777               cxx11_rvalue_references
778               cxx11_template_aliases
779               cxx11_thread_local
780               cxx11_variadic_templates ]
781    : test_buf_channel_dispatch_native ]
782
783[ run test_unbuffered_channel_post.cpp :
784    : :
785    <conditional>@native-impl
786    [ requires cxx11_auto_declarations
787               cxx11_constexpr
788               cxx11_defaulted_functions
789               cxx11_final
790               cxx11_hdr_mutex
791               cxx11_hdr_thread
792               cxx11_hdr_tuple
793               cxx11_lambdas
794               cxx11_noexcept
795               cxx11_nullptr
796               cxx11_rvalue_references
797               cxx11_template_aliases
798               cxx11_thread_local
799               cxx11_variadic_templates ]
800    : test_unbuf_channel_post_native ]
801
802[ run test_unbuffered_channel_dispatch.cpp :
803    : :
804    <conditional>@native-impl
805    [ requires cxx11_auto_declarations
806               cxx11_constexpr
807               cxx11_defaulted_functions
808               cxx11_final
809               cxx11_hdr_mutex
810               cxx11_hdr_thread
811               cxx11_hdr_tuple
812               cxx11_lambdas
813               cxx11_noexcept
814               cxx11_nullptr
815               cxx11_rvalue_references
816               cxx11_template_aliases
817               cxx11_thread_local
818               cxx11_variadic_templates ]
819    : test_unbuf_channel_dispatch_native ]
820
821[ run test_fss_post.cpp :
822    : :
823    <conditional>@native-impl
824    [ requires cxx11_auto_declarations
825               cxx11_constexpr
826               cxx11_defaulted_functions
827               cxx11_final
828               cxx11_hdr_mutex
829               cxx11_hdr_thread
830               cxx11_hdr_tuple
831               cxx11_lambdas
832               cxx11_noexcept
833               cxx11_nullptr
834               cxx11_rvalue_references
835               cxx11_template_aliases
836               cxx11_thread_local
837               cxx11_variadic_templates ]
838    : test_fss_post_native ]
839
840[ run test_fss_dispatch.cpp :
841    : :
842    <conditional>@native-impl
843    [ requires cxx11_auto_declarations
844               cxx11_constexpr
845               cxx11_defaulted_functions
846               cxx11_final
847               cxx11_hdr_mutex
848               cxx11_hdr_thread
849               cxx11_hdr_tuple
850               cxx11_lambdas
851               cxx11_noexcept
852               cxx11_nullptr
853               cxx11_rvalue_references
854               cxx11_template_aliases
855               cxx11_thread_local
856               cxx11_variadic_templates ]
857    : test_fss_dispatch_native ]
858
859[ run test_promise_post.cpp :
860    : :
861    <conditional>@native-impl
862    [ requires cxx11_auto_declarations
863               cxx11_constexpr
864               cxx11_defaulted_functions
865               cxx11_final
866               cxx11_hdr_mutex
867               cxx11_hdr_thread
868               cxx11_hdr_tuple
869               cxx11_lambdas
870               cxx11_noexcept
871               cxx11_nullptr
872               cxx11_rvalue_references
873               cxx11_template_aliases
874               cxx11_thread_local
875               cxx11_variadic_templates ]
876    : test_promise_post_native ]
877
878[ run test_promise_dispatch.cpp :
879    : :
880    <conditional>@native-impl
881    [ requires cxx11_auto_declarations
882               cxx11_constexpr
883               cxx11_defaulted_functions
884               cxx11_final
885               cxx11_hdr_mutex
886               cxx11_hdr_thread
887               cxx11_hdr_tuple
888               cxx11_lambdas
889               cxx11_noexcept
890               cxx11_nullptr
891               cxx11_rvalue_references
892               cxx11_template_aliases
893               cxx11_thread_local
894               cxx11_variadic_templates ]
895    : test_promise_dispatch_native ]
896
897[ run test_future_post.cpp :
898    : :
899    <conditional>@native-impl
900    [ requires cxx11_auto_declarations
901               cxx11_constexpr
902               cxx11_defaulted_functions
903               cxx11_final
904               cxx11_hdr_mutex
905               cxx11_hdr_thread
906               cxx11_hdr_tuple
907               cxx11_lambdas
908               cxx11_noexcept
909               cxx11_nullptr
910               cxx11_rvalue_references
911               cxx11_template_aliases
912               cxx11_thread_local
913               cxx11_variadic_templates ]
914    : test_future_post_native ]
915
916[ run test_future_dispatch.cpp :
917    : :
918    <conditional>@native-impl
919    [ requires cxx11_auto_declarations
920               cxx11_constexpr
921               cxx11_defaulted_functions
922               cxx11_final
923               cxx11_hdr_mutex
924               cxx11_hdr_thread
925               cxx11_hdr_tuple
926               cxx11_lambdas
927               cxx11_noexcept
928               cxx11_nullptr
929               cxx11_rvalue_references
930               cxx11_template_aliases
931               cxx11_thread_local
932               cxx11_variadic_templates ]
933    : test_future_dispatch_native ]
934
935[ run test_shared_future_post.cpp :
936    : :
937    <conditional>@native-impl
938    [ requires cxx11_auto_declarations
939               cxx11_constexpr
940               cxx11_defaulted_functions
941               cxx11_final
942               cxx11_hdr_mutex
943               cxx11_hdr_thread
944               cxx11_hdr_tuple
945               cxx11_lambdas
946               cxx11_noexcept
947               cxx11_nullptr
948               cxx11_rvalue_references
949               cxx11_template_aliases
950               cxx11_thread_local
951               cxx11_variadic_templates ]
952    : test_shared_future_post_native ]
953
954[ run test_shared_future_dispatch.cpp :
955    : :
956    <conditional>@native-impl
957    [ requires cxx11_auto_declarations
958               cxx11_constexpr
959               cxx11_defaulted_functions
960               cxx11_final
961               cxx11_hdr_mutex
962               cxx11_hdr_thread
963               cxx11_hdr_tuple
964               cxx11_lambdas
965               cxx11_noexcept
966               cxx11_nullptr
967               cxx11_rvalue_references
968               cxx11_template_aliases
969               cxx11_thread_local
970               cxx11_variadic_templates ]
971    : test_shared_future_dispatch_native ]
972
973[ run test_packaged_task_post.cpp :
974    : :
975    <conditional>@native-impl
976    [ requires cxx11_auto_declarations
977               cxx11_constexpr
978               cxx11_defaulted_functions
979               cxx11_final
980               cxx11_hdr_mutex
981               cxx11_hdr_thread
982               cxx11_hdr_tuple
983               cxx11_lambdas
984               cxx11_noexcept
985               cxx11_nullptr
986               cxx11_rvalue_references
987               cxx11_template_aliases
988               cxx11_thread_local
989               cxx11_variadic_templates ]
990    : test_packaged_task_post_native ]
991
992[ run test_packaged_task_dispatch.cpp :
993    : :
994    <conditional>@native-impl
995    [ requires cxx11_auto_declarations
996               cxx11_constexpr
997               cxx11_defaulted_functions
998               cxx11_final
999               cxx11_hdr_mutex
1000               cxx11_hdr_thread
1001               cxx11_hdr_tuple
1002               cxx11_lambdas
1003               cxx11_noexcept
1004               cxx11_nullptr
1005               cxx11_rvalue_references
1006               cxx11_template_aliases
1007               cxx11_thread_local
1008               cxx11_variadic_templates ]
1009    : test_packaged_task_dispatch_native ]
1010
1011[ run test_async_post.cpp :
1012    : :
1013    <conditional>@native-impl
1014    [ requires cxx11_auto_declarations
1015               cxx11_constexpr
1016               cxx11_defaulted_functions
1017               cxx11_final
1018               cxx11_hdr_mutex
1019               cxx11_hdr_thread
1020               cxx11_hdr_tuple
1021               cxx11_lambdas
1022               cxx11_noexcept
1023               cxx11_nullptr
1024               cxx11_rvalue_references
1025               cxx11_template_aliases
1026               cxx11_thread_local
1027               cxx11_variadic_templates ]
1028    : test_async_post_native ]
1029
1030[ run test_async_dispatch.cpp :
1031    : :
1032    <conditional>@native-impl
1033    [ requires cxx11_auto_declarations
1034               cxx11_constexpr
1035               cxx11_defaulted_functions
1036               cxx11_final
1037               cxx11_hdr_mutex
1038               cxx11_hdr_thread
1039               cxx11_hdr_tuple
1040               cxx11_lambdas
1041               cxx11_noexcept
1042               cxx11_nullptr
1043               cxx11_rvalue_references
1044               cxx11_template_aliases
1045               cxx11_thread_local
1046               cxx11_variadic_templates ]
1047    : test_async_dispatch_native ] ;
1048
1049
1050#etra tests using asm API
1051test-suite extra-asm :
1052[ run test_mutex_mt_post.cpp :
1053    : :
1054    <context-impl>fcontext
1055    [ requires cxx11_auto_declarations
1056               cxx11_constexpr
1057               cxx11_defaulted_functions
1058               cxx11_final
1059               cxx11_hdr_mutex
1060               cxx11_hdr_thread
1061               cxx11_hdr_tuple
1062               cxx11_lambdas
1063               cxx11_noexcept
1064               cxx11_nullptr
1065               cxx11_rvalue_references
1066               cxx11_template_aliases
1067               cxx11_thread_local
1068               cxx11_variadic_templates ]
1069    : test_mutex_mt_post_asm ]
1070
1071[ run test_mutex_mt_dispatch.cpp :
1072    : :
1073    <context-impl>fcontext
1074    [ requires cxx11_auto_declarations
1075               cxx11_constexpr
1076               cxx11_defaulted_functions
1077               cxx11_final
1078               cxx11_hdr_mutex
1079               cxx11_hdr_thread
1080               cxx11_hdr_tuple
1081               cxx11_lambdas
1082               cxx11_noexcept
1083               cxx11_nullptr
1084               cxx11_rvalue_references
1085               cxx11_template_aliases
1086               cxx11_thread_local
1087               cxx11_variadic_templates ]
1088    : test_mutex_mt_dispatch_asm ]
1089
1090[ run test_condition_mt_post.cpp :
1091    : :
1092    <context-impl>fcontext
1093    [ requires cxx11_auto_declarations
1094               cxx11_constexpr
1095               cxx11_defaulted_functions
1096               cxx11_final
1097               cxx11_hdr_mutex
1098               cxx11_hdr_thread
1099               cxx11_hdr_tuple
1100               cxx11_lambdas
1101               cxx11_noexcept
1102               cxx11_nullptr
1103               cxx11_rvalue_references
1104               cxx11_template_aliases
1105               cxx11_thread_local
1106               cxx11_variadic_templates ]
1107    : test_condition_mt_post_asm ]
1108
1109[ run test_condition_mt_dispatch.cpp :
1110    : :
1111    <context-impl>fcontext
1112    [ requires cxx11_auto_declarations
1113               cxx11_constexpr
1114               cxx11_defaulted_functions
1115               cxx11_final
1116               cxx11_hdr_mutex
1117               cxx11_hdr_thread
1118               cxx11_hdr_tuple
1119               cxx11_lambdas
1120               cxx11_noexcept
1121               cxx11_nullptr
1122               cxx11_rvalue_references
1123               cxx11_template_aliases
1124               cxx11_thread_local
1125               cxx11_variadic_templates ]
1126    : test_condition_mt_dispatch_asm ]
1127
1128[ run test_future_mt_post.cpp :
1129    : :
1130    <context-impl>fcontext
1131    [ requires cxx11_auto_declarations
1132               cxx11_constexpr
1133               cxx11_defaulted_functions
1134               cxx11_final
1135               cxx11_hdr_mutex
1136               cxx11_hdr_thread
1137               cxx11_hdr_tuple
1138               cxx11_lambdas
1139               cxx11_noexcept
1140               cxx11_nullptr
1141               cxx11_rvalue_references
1142               cxx11_template_aliases
1143               cxx11_thread_local
1144               cxx11_variadic_templates ]
1145    : test_future_mt_post_asm ]
1146
1147[ run test_future_mt_dispatch.cpp :
1148    : :
1149    <context-impl>fcontext
1150    [ requires cxx11_auto_declarations
1151               cxx11_constexpr
1152               cxx11_defaulted_functions
1153               cxx11_final
1154               cxx11_hdr_mutex
1155               cxx11_hdr_thread
1156               cxx11_hdr_tuple
1157               cxx11_lambdas
1158               cxx11_noexcept
1159               cxx11_nullptr
1160               cxx11_rvalue_references
1161               cxx11_template_aliases
1162               cxx11_thread_local
1163               cxx11_variadic_templates ]
1164    : test_future_mt_dispatch_asm ] ;
1165
1166
1167#etra tests using native API
1168test-suite extra-native :
1169[ run test_mutex_mt_post.cpp :
1170    : :
1171    <conditional>@native-impl
1172    [ requires cxx11_auto_declarations
1173               cxx11_constexpr
1174               cxx11_defaulted_functions
1175               cxx11_final
1176               cxx11_hdr_mutex
1177               cxx11_hdr_thread
1178               cxx11_hdr_tuple
1179               cxx11_lambdas
1180               cxx11_noexcept
1181               cxx11_nullptr
1182               cxx11_rvalue_references
1183               cxx11_template_aliases
1184               cxx11_thread_local
1185               cxx11_variadic_templates ]
1186    : test_mutex_mt_post_native ]
1187
1188[ run test_mutex_mt_dispatch.cpp :
1189    : :
1190    <conditional>@native-impl
1191    [ requires cxx11_auto_declarations
1192               cxx11_constexpr
1193               cxx11_defaulted_functions
1194               cxx11_final
1195               cxx11_hdr_mutex
1196               cxx11_hdr_thread
1197               cxx11_hdr_tuple
1198               cxx11_lambdas
1199               cxx11_noexcept
1200               cxx11_nullptr
1201               cxx11_rvalue_references
1202               cxx11_template_aliases
1203               cxx11_thread_local
1204               cxx11_variadic_templates ]
1205    : test_mutex_mt_dispatch_native ]
1206
1207[ run test_condition_mt_post.cpp :
1208    : :
1209    <conditional>@native-impl
1210    [ requires cxx11_auto_declarations
1211               cxx11_constexpr
1212               cxx11_defaulted_functions
1213               cxx11_final
1214               cxx11_hdr_mutex
1215               cxx11_hdr_thread
1216               cxx11_hdr_tuple
1217               cxx11_lambdas
1218               cxx11_noexcept
1219               cxx11_nullptr
1220               cxx11_rvalue_references
1221               cxx11_template_aliases
1222               cxx11_thread_local
1223               cxx11_variadic_templates ]
1224    : test_condition_mt_post_native ]
1225
1226[ run test_condition_mt_dispatch.cpp :
1227    : :
1228    <conditional>@native-impl
1229    [ requires cxx11_auto_declarations
1230               cxx11_constexpr
1231               cxx11_defaulted_functions
1232               cxx11_final
1233               cxx11_hdr_mutex
1234               cxx11_hdr_thread
1235               cxx11_hdr_tuple
1236               cxx11_lambdas
1237               cxx11_noexcept
1238               cxx11_nullptr
1239               cxx11_rvalue_references
1240               cxx11_template_aliases
1241               cxx11_thread_local
1242               cxx11_variadic_templates ]
1243    : test_condition_mt_dispatch_native ]
1244
1245[ run test_future_mt_post.cpp :
1246    : :
1247    <conditional>@native-impl
1248    [ requires cxx11_auto_declarations
1249               cxx11_constexpr
1250               cxx11_defaulted_functions
1251               cxx11_final
1252               cxx11_hdr_mutex
1253               cxx11_hdr_thread
1254               cxx11_hdr_tuple
1255               cxx11_lambdas
1256               cxx11_noexcept
1257               cxx11_nullptr
1258               cxx11_rvalue_references
1259               cxx11_template_aliases
1260               cxx11_thread_local
1261               cxx11_variadic_templates ]
1262    : test_future_mt_post_native ]
1263
1264[ run test_future_mt_dispatch.cpp :
1265    : :
1266    <conditional>@native-impl
1267    [ requires cxx11_auto_declarations
1268               cxx11_constexpr
1269               cxx11_defaulted_functions
1270               cxx11_final
1271               cxx11_hdr_mutex
1272               cxx11_hdr_thread
1273               cxx11_hdr_tuple
1274               cxx11_lambdas
1275               cxx11_noexcept
1276               cxx11_nullptr
1277               cxx11_rvalue_references
1278               cxx11_template_aliases
1279               cxx11_thread_local
1280               cxx11_variadic_templates ]
1281    : test_future_mt_dispatch_native ] ;
1282
1283
1284test-suite minimal :
1285    asm native ;
1286
1287test-suite extra :
1288    extra-asm extra-native ;
1289
1290explicit minmal ;
1291explicit extra ;
1292
1293test-suite full :
1294    minimal extra ;
1295