1 # Boost.Fiber Library Tests Jamfile
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)
16 import ../../config/checks/config : requires ;
18 project boost/fiber/test
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 <toolset>gcc,<segmented-stacks>on:<cxxflags>-fsplit-stack
27 <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
37 rule native-impl ( properties * )
40 if ( <target-os>darwin in $(properties) || <target-os>android in $(properties) )
44 else if ( ! ( <target-os>windows in $(properties) ) )
46 result = <context-impl>ucontext ;
50 result = <context-impl>winfib ;
56 # tests using assembler API
58 [ run test_fiber_post.cpp :
60 <context-impl>fcontext
61 [ requires cxx11_auto_declarations
63 cxx11_defaulted_functions
71 cxx11_rvalue_references
72 cxx11_template_aliases
74 cxx11_variadic_templates ]
75 : test_fiber_post_asm ]
77 [ run test_fiber_dispatch.cpp :
79 <context-impl>fcontext
80 [ requires cxx11_auto_declarations
82 cxx11_defaulted_functions
90 cxx11_rvalue_references
91 cxx11_template_aliases
93 cxx11_variadic_templates ]
94 : test_fiber_dispatch_asm ]
96 [ run test_mutex_post.cpp :
98 <context-impl>fcontext
99 [ requires cxx11_auto_declarations
101 cxx11_defaulted_functions
109 cxx11_rvalue_references
110 cxx11_template_aliases
112 cxx11_variadic_templates ]
113 : test_mutex_post_asm ]
115 [ run test_mutex_dispatch.cpp :
117 <context-impl>fcontext
118 [ requires cxx11_auto_declarations
120 cxx11_defaulted_functions
128 cxx11_rvalue_references
129 cxx11_template_aliases
131 cxx11_variadic_templates ]
132 : test_mutex_dispatch_asm ]
134 [ run test_condition_variable_any_post.cpp :
136 <context-impl>fcontext
137 [ requires cxx11_auto_declarations
139 cxx11_defaulted_functions
147 cxx11_rvalue_references
148 cxx11_template_aliases
150 cxx11_variadic_templates ]
151 : test_condition_variable_any_post_asm ]
153 [ run test_condition_variable_any_dispatch.cpp :
155 <context-impl>fcontext
156 [ requires cxx11_auto_declarations
158 cxx11_defaulted_functions
166 cxx11_rvalue_references
167 cxx11_template_aliases
169 cxx11_variadic_templates ]
170 : test_condition_variable_any_dispatch_asm ]
172 [ run test_condition_variable_post.cpp :
174 <context-impl>fcontext
175 [ requires cxx11_auto_declarations
177 cxx11_defaulted_functions
185 cxx11_rvalue_references
186 cxx11_template_aliases
188 cxx11_variadic_templates ]
189 : test_condition_variable_post_asm ]
191 [ run test_condition_variable_dispatch.cpp :
193 <context-impl>fcontext
194 [ requires cxx11_auto_declarations
196 cxx11_defaulted_functions
204 cxx11_rvalue_references
205 cxx11_template_aliases
207 cxx11_variadic_templates ]
208 : test_condition_variable_dispatch_asm ]
210 [ run test_barrier_post.cpp :
212 <context-impl>fcontext
213 [ requires cxx11_auto_declarations
215 cxx11_defaulted_functions
223 cxx11_rvalue_references
224 cxx11_template_aliases
226 cxx11_variadic_templates ]
227 : test_barrier_post_asm ]
229 [ run test_barrier_dispatch.cpp :
231 <context-impl>fcontext
232 [ requires cxx11_auto_declarations
234 cxx11_defaulted_functions
242 cxx11_rvalue_references
243 cxx11_template_aliases
245 cxx11_variadic_templates ]
246 : test_barrier_dispatch_asm ]
248 [ run test_buffered_channel_post.cpp :
250 <context-impl>fcontext
251 [ requires cxx11_auto_declarations
253 cxx11_defaulted_functions
261 cxx11_rvalue_references
262 cxx11_template_aliases
264 cxx11_variadic_templates ]
265 : test_buffered_channel_post_asm ]
267 [ run test_buffered_channel_dispatch.cpp :
269 <context-impl>fcontext
270 [ requires cxx11_auto_declarations
272 cxx11_defaulted_functions
280 cxx11_rvalue_references
281 cxx11_template_aliases
283 cxx11_variadic_templates ]
284 : test_buffered_channel_dispatch_asm ]
286 [ run test_unbuffered_channel_post.cpp :
288 <context-impl>fcontext
289 [ requires cxx11_auto_declarations
291 cxx11_defaulted_functions
299 cxx11_rvalue_references
300 cxx11_template_aliases
302 cxx11_variadic_templates ]
303 : test_unbuffered_channel_post_asm ]
305 [ run test_unbuffered_channel_dispatch.cpp :
307 <context-impl>fcontext
308 [ requires cxx11_auto_declarations
310 cxx11_defaulted_functions
318 cxx11_rvalue_references
319 cxx11_template_aliases
321 cxx11_variadic_templates ]
322 : test_unbuffered_channel_dispatch_asm ]
324 [ run test_fss_post.cpp :
326 <context-impl>fcontext
327 [ requires cxx11_auto_declarations
329 cxx11_defaulted_functions
337 cxx11_rvalue_references
338 cxx11_template_aliases
340 cxx11_variadic_templates ]
341 : test_fss_post_asm ]
343 [ run test_fss_dispatch.cpp :
345 <context-impl>fcontext
346 [ requires cxx11_auto_declarations
348 cxx11_defaulted_functions
356 cxx11_rvalue_references
357 cxx11_template_aliases
359 cxx11_variadic_templates ]
360 : test_fss_dispatch_asm ]
362 [ run test_promise_post.cpp :
364 <context-impl>fcontext
365 [ requires cxx11_auto_declarations
367 cxx11_defaulted_functions
375 cxx11_rvalue_references
376 cxx11_template_aliases
378 cxx11_variadic_templates ]
379 : test_promise_post_asm ]
381 [ run test_promise_dispatch.cpp :
383 <context-impl>fcontext
384 [ requires cxx11_auto_declarations
386 cxx11_defaulted_functions
394 cxx11_rvalue_references
395 cxx11_template_aliases
397 cxx11_variadic_templates ]
398 : test_promise_dispatch_asm ]
400 [ run test_future_post.cpp :
402 <context-impl>fcontext
403 [ requires cxx11_auto_declarations
405 cxx11_defaulted_functions
413 cxx11_rvalue_references
414 cxx11_template_aliases
416 cxx11_variadic_templates ]
417 : test_future_post_asm ]
419 [ run test_future_dispatch.cpp :
421 <context-impl>fcontext
422 [ requires cxx11_auto_declarations
424 cxx11_defaulted_functions
432 cxx11_rvalue_references
433 cxx11_template_aliases
435 cxx11_variadic_templates ]
436 : test_future_dispatch_asm ]
438 [ run test_shared_future_post.cpp :
440 <context-impl>fcontext
441 [ requires cxx11_auto_declarations
443 cxx11_defaulted_functions
451 cxx11_rvalue_references
452 cxx11_template_aliases
454 cxx11_variadic_templates ]
455 : test_shared_future_post_asm ]
457 [ run test_shared_future_dispatch.cpp :
459 <context-impl>fcontext
460 [ requires cxx11_auto_declarations
462 cxx11_defaulted_functions
470 cxx11_rvalue_references
471 cxx11_template_aliases
473 cxx11_variadic_templates ]
474 : test_shared_future_dispatch_asm ]
476 [ run test_packaged_task_post.cpp :
478 <context-impl>fcontext
479 [ requires cxx11_auto_declarations
481 cxx11_defaulted_functions
489 cxx11_rvalue_references
490 cxx11_template_aliases
492 cxx11_variadic_templates ]
493 : test_packaged_task_post_asm ]
495 [ run test_packaged_task_dispatch.cpp :
497 <context-impl>fcontext
498 [ requires cxx11_auto_declarations
500 cxx11_defaulted_functions
508 cxx11_rvalue_references
509 cxx11_template_aliases
511 cxx11_variadic_templates ]
512 : test_packaged_task_dispatch_asm ]
514 [ run test_async_post.cpp :
516 <context-impl>fcontext
517 [ requires cxx11_auto_declarations
519 cxx11_defaulted_functions
527 cxx11_rvalue_references
528 cxx11_template_aliases
530 cxx11_variadic_templates ]
531 : test_async_post_asm ]
533 [ run test_async_dispatch.cpp :
535 <context-impl>fcontext
536 [ requires cxx11_auto_declarations
538 cxx11_defaulted_functions
546 cxx11_rvalue_references
547 cxx11_template_aliases
549 cxx11_variadic_templates ]
550 : test_async_dispatch_asm ] ;
553 # tests using native API
555 [ run test_fiber_post.cpp :
557 <conditional>@native-impl
558 [ requires cxx11_auto_declarations
560 cxx11_defaulted_functions
568 cxx11_rvalue_references
569 cxx11_template_aliases
571 cxx11_variadic_templates ]
572 : test_fiber_post_native ]
574 [ run test_fiber_dispatch.cpp :
576 <conditional>@native-impl
577 [ requires cxx11_auto_declarations
579 cxx11_defaulted_functions
587 cxx11_rvalue_references
588 cxx11_template_aliases
590 cxx11_variadic_templates ]
591 : test_fiber_dispatch_native ]
593 [ run test_mutex_post.cpp :
595 <conditional>@native-impl
596 [ requires cxx11_auto_declarations
598 cxx11_defaulted_functions
606 cxx11_rvalue_references
607 cxx11_template_aliases
609 cxx11_variadic_templates ]
610 : test_mutex_post_native ]
612 [ run test_mutex_dispatch.cpp :
614 <conditional>@native-impl
615 [ requires cxx11_auto_declarations
617 cxx11_defaulted_functions
625 cxx11_rvalue_references
626 cxx11_template_aliases
628 cxx11_variadic_templates ]
629 : test_mutex_dispatch_native ]
631 [ run test_condition_variable_any_post.cpp :
633 <conditional>@native-impl
634 [ requires cxx11_auto_declarations
636 cxx11_defaulted_functions
644 cxx11_rvalue_references
645 cxx11_template_aliases
647 cxx11_variadic_templates ]
648 : test_cond_var_any_post_native ]
650 [ run test_condition_variable_any_dispatch.cpp :
652 <conditional>@native-impl
653 [ requires cxx11_auto_declarations
655 cxx11_defaulted_functions
663 cxx11_rvalue_references
664 cxx11_template_aliases
666 cxx11_variadic_templates ]
667 : test_cond_vare_any_dispatch_native ]
669 [ run test_condition_variable_post.cpp :
671 <conditional>@native-impl
672 [ requires cxx11_auto_declarations
674 cxx11_defaulted_functions
682 cxx11_rvalue_references
683 cxx11_template_aliases
685 cxx11_variadic_templates ]
686 : test_cond_var_post_native ]
688 [ run test_condition_variable_dispatch.cpp :
690 <conditional>@native-impl
691 [ requires cxx11_auto_declarations
693 cxx11_defaulted_functions
701 cxx11_rvalue_references
702 cxx11_template_aliases
704 cxx11_variadic_templates ]
705 : test_cond_var_dispatch_native ]
707 [ run test_barrier_post.cpp :
709 <conditional>@native-impl
710 [ requires cxx11_auto_declarations
712 cxx11_defaulted_functions
720 cxx11_rvalue_references
721 cxx11_template_aliases
723 cxx11_variadic_templates ]
724 : test_barrier_post_native ]
726 [ run test_barrier_dispatch.cpp :
728 <conditional>@native-impl
729 [ requires cxx11_auto_declarations
731 cxx11_defaulted_functions
739 cxx11_rvalue_references
740 cxx11_template_aliases
742 cxx11_variadic_templates ]
743 : test_barrier_dispatch_native ]
745 [ run test_buffered_channel_post.cpp :
747 <conditional>@native-impl
748 [ requires cxx11_auto_declarations
750 cxx11_defaulted_functions
758 cxx11_rvalue_references
759 cxx11_template_aliases
761 cxx11_variadic_templates ]
762 : test_buf_channel_post_native ]
764 [ run test_buffered_channel_dispatch.cpp :
766 <conditional>@native-impl
767 [ requires cxx11_auto_declarations
769 cxx11_defaulted_functions
777 cxx11_rvalue_references
778 cxx11_template_aliases
780 cxx11_variadic_templates ]
781 : test_buf_channel_dispatch_native ]
783 [ run test_unbuffered_channel_post.cpp :
785 <conditional>@native-impl
786 [ requires cxx11_auto_declarations
788 cxx11_defaulted_functions
796 cxx11_rvalue_references
797 cxx11_template_aliases
799 cxx11_variadic_templates ]
800 : test_unbuf_channel_post_native ]
802 [ run test_unbuffered_channel_dispatch.cpp :
804 <conditional>@native-impl
805 [ requires cxx11_auto_declarations
807 cxx11_defaulted_functions
815 cxx11_rvalue_references
816 cxx11_template_aliases
818 cxx11_variadic_templates ]
819 : test_unbuf_channel_dispatch_native ]
821 [ run test_fss_post.cpp :
823 <conditional>@native-impl
824 [ requires cxx11_auto_declarations
826 cxx11_defaulted_functions
834 cxx11_rvalue_references
835 cxx11_template_aliases
837 cxx11_variadic_templates ]
838 : test_fss_post_native ]
840 [ run test_fss_dispatch.cpp :
842 <conditional>@native-impl
843 [ requires cxx11_auto_declarations
845 cxx11_defaulted_functions
853 cxx11_rvalue_references
854 cxx11_template_aliases
856 cxx11_variadic_templates ]
857 : test_fss_dispatch_native ]
859 [ run test_promise_post.cpp :
861 <conditional>@native-impl
862 [ requires cxx11_auto_declarations
864 cxx11_defaulted_functions
872 cxx11_rvalue_references
873 cxx11_template_aliases
875 cxx11_variadic_templates ]
876 : test_promise_post_native ]
878 [ run test_promise_dispatch.cpp :
880 <conditional>@native-impl
881 [ requires cxx11_auto_declarations
883 cxx11_defaulted_functions
891 cxx11_rvalue_references
892 cxx11_template_aliases
894 cxx11_variadic_templates ]
895 : test_promise_dispatch_native ]
897 [ run test_future_post.cpp :
899 <conditional>@native-impl
900 [ requires cxx11_auto_declarations
902 cxx11_defaulted_functions
910 cxx11_rvalue_references
911 cxx11_template_aliases
913 cxx11_variadic_templates ]
914 : test_future_post_native ]
916 [ run test_future_dispatch.cpp :
918 <conditional>@native-impl
919 [ requires cxx11_auto_declarations
921 cxx11_defaulted_functions
929 cxx11_rvalue_references
930 cxx11_template_aliases
932 cxx11_variadic_templates ]
933 : test_future_dispatch_native ]
935 [ run test_shared_future_post.cpp :
937 <conditional>@native-impl
938 [ requires cxx11_auto_declarations
940 cxx11_defaulted_functions
948 cxx11_rvalue_references
949 cxx11_template_aliases
951 cxx11_variadic_templates ]
952 : test_shared_future_post_native ]
954 [ run test_shared_future_dispatch.cpp :
956 <conditional>@native-impl
957 [ requires cxx11_auto_declarations
959 cxx11_defaulted_functions
967 cxx11_rvalue_references
968 cxx11_template_aliases
970 cxx11_variadic_templates ]
971 : test_shared_future_dispatch_native ]
973 [ run test_packaged_task_post.cpp :
975 <conditional>@native-impl
976 [ requires cxx11_auto_declarations
978 cxx11_defaulted_functions
986 cxx11_rvalue_references
987 cxx11_template_aliases
989 cxx11_variadic_templates ]
990 : test_packaged_task_post_native ]
992 [ run test_packaged_task_dispatch.cpp :
994 <conditional>@native-impl
995 [ requires cxx11_auto_declarations
997 cxx11_defaulted_functions
1005 cxx11_rvalue_references
1006 cxx11_template_aliases
1008 cxx11_variadic_templates ]
1009 : test_packaged_task_dispatch_native ]
1011 [ run test_async_post.cpp :
1013 <conditional>@native-impl
1014 [ requires cxx11_auto_declarations
1016 cxx11_defaulted_functions
1024 cxx11_rvalue_references
1025 cxx11_template_aliases
1027 cxx11_variadic_templates ]
1028 : test_async_post_native ]
1030 [ run test_async_dispatch.cpp :
1032 <conditional>@native-impl
1033 [ requires cxx11_auto_declarations
1035 cxx11_defaulted_functions
1043 cxx11_rvalue_references
1044 cxx11_template_aliases
1046 cxx11_variadic_templates ]
1047 : test_async_dispatch_native ] ;
1050 #etra tests using asm API
1051 test-suite extra-asm :
1052 [ run test_mutex_mt_post.cpp :
1054 <context-impl>fcontext
1055 [ requires cxx11_auto_declarations
1057 cxx11_defaulted_functions
1065 cxx11_rvalue_references
1066 cxx11_template_aliases
1068 cxx11_variadic_templates ]
1069 : test_mutex_mt_post_asm ]
1071 [ run test_mutex_mt_dispatch.cpp :
1073 <context-impl>fcontext
1074 [ requires cxx11_auto_declarations
1076 cxx11_defaulted_functions
1084 cxx11_rvalue_references
1085 cxx11_template_aliases
1087 cxx11_variadic_templates ]
1088 : test_mutex_mt_dispatch_asm ]
1090 [ run test_condition_mt_post.cpp :
1092 <context-impl>fcontext
1093 [ requires cxx11_auto_declarations
1095 cxx11_defaulted_functions
1103 cxx11_rvalue_references
1104 cxx11_template_aliases
1106 cxx11_variadic_templates ]
1107 : test_condition_mt_post_asm ]
1109 [ run test_condition_mt_dispatch.cpp :
1111 <context-impl>fcontext
1112 [ requires cxx11_auto_declarations
1114 cxx11_defaulted_functions
1122 cxx11_rvalue_references
1123 cxx11_template_aliases
1125 cxx11_variadic_templates ]
1126 : test_condition_mt_dispatch_asm ]
1128 [ run test_future_mt_post.cpp :
1130 <context-impl>fcontext
1131 [ requires cxx11_auto_declarations
1133 cxx11_defaulted_functions
1141 cxx11_rvalue_references
1142 cxx11_template_aliases
1144 cxx11_variadic_templates ]
1145 : test_future_mt_post_asm ]
1147 [ run test_future_mt_dispatch.cpp :
1149 <context-impl>fcontext
1150 [ requires cxx11_auto_declarations
1152 cxx11_defaulted_functions
1160 cxx11_rvalue_references
1161 cxx11_template_aliases
1163 cxx11_variadic_templates ]
1164 : test_future_mt_dispatch_asm ] ;
1167 #etra tests using native API
1168 test-suite extra-native :
1169 [ run test_mutex_mt_post.cpp :
1171 <conditional>@native-impl
1172 [ requires cxx11_auto_declarations
1174 cxx11_defaulted_functions
1182 cxx11_rvalue_references
1183 cxx11_template_aliases
1185 cxx11_variadic_templates ]
1186 : test_mutex_mt_post_native ]
1188 [ run test_mutex_mt_dispatch.cpp :
1190 <conditional>@native-impl
1191 [ requires cxx11_auto_declarations
1193 cxx11_defaulted_functions
1201 cxx11_rvalue_references
1202 cxx11_template_aliases
1204 cxx11_variadic_templates ]
1205 : test_mutex_mt_dispatch_native ]
1207 [ run test_condition_mt_post.cpp :
1209 <conditional>@native-impl
1210 [ requires cxx11_auto_declarations
1212 cxx11_defaulted_functions
1220 cxx11_rvalue_references
1221 cxx11_template_aliases
1223 cxx11_variadic_templates ]
1224 : test_condition_mt_post_native ]
1226 [ run test_condition_mt_dispatch.cpp :
1228 <conditional>@native-impl
1229 [ requires cxx11_auto_declarations
1231 cxx11_defaulted_functions
1239 cxx11_rvalue_references
1240 cxx11_template_aliases
1242 cxx11_variadic_templates ]
1243 : test_condition_mt_dispatch_native ]
1245 [ run test_future_mt_post.cpp :
1247 <conditional>@native-impl
1248 [ requires cxx11_auto_declarations
1250 cxx11_defaulted_functions
1258 cxx11_rvalue_references
1259 cxx11_template_aliases
1261 cxx11_variadic_templates ]
1262 : test_future_mt_post_native ]
1264 [ run test_future_mt_dispatch.cpp :
1266 <conditional>@native-impl
1267 [ requires cxx11_auto_declarations
1269 cxx11_defaulted_functions
1277 cxx11_rvalue_references
1278 cxx11_template_aliases
1280 cxx11_variadic_templates ]
1281 : test_future_mt_dispatch_native ] ;
1284 test-suite minimal :
1288 extra-asm extra-native ;