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 topology-impl ( properties * )
40 if ( <target-os>darwin in $(properties) )
47 rule native-impl ( properties * )
50 if ( <target-os>darwin in $(properties) )
54 else if ( ! ( <target-os>windows in $(properties) ) )
56 result = <context-impl>ucontext ;
60 result = <context-impl>winfib ;
67 [ run test_topology.cpp :
69 <conditional>@topology-impl
70 [ requires cxx11_auto_declarations
72 cxx11_defaulted_functions
81 cxx11_rvalue_references
82 cxx11_template_aliases
84 cxx11_variadic_templates ] ] ;
87 # tests using assembler API
89 [ run test_fiber_post.cpp :
91 <context-impl>fcontext
92 [ requires cxx11_auto_declarations
94 cxx11_defaulted_functions
103 cxx11_rvalue_references
104 cxx11_template_aliases
106 cxx11_variadic_templates ]
107 : test_fiber_post_asm ]
109 [ run test_fiber_dispatch.cpp :
111 <context-impl>fcontext
112 [ requires cxx11_auto_declarations
114 cxx11_defaulted_functions
123 cxx11_rvalue_references
124 cxx11_template_aliases
126 cxx11_variadic_templates ]
127 : test_fiber_dispatch_asm ]
129 [ run test_mutex_post.cpp :
131 <context-impl>fcontext
132 [ requires cxx11_auto_declarations
134 cxx11_defaulted_functions
143 cxx11_rvalue_references
144 cxx11_template_aliases
146 cxx11_variadic_templates ]
147 : test_mutex_post_asm ]
149 [ run test_mutex_dispatch.cpp :
151 <context-impl>fcontext
152 [ requires cxx11_auto_declarations
154 cxx11_defaulted_functions
163 cxx11_rvalue_references
164 cxx11_template_aliases
166 cxx11_variadic_templates ]
167 : test_mutex_dispatch_asm ]
169 [ run test_condition_variable_any_post.cpp :
171 <context-impl>fcontext
172 [ requires cxx11_auto_declarations
174 cxx11_defaulted_functions
183 cxx11_rvalue_references
184 cxx11_template_aliases
186 cxx11_variadic_templates ]
187 : test_condition_variable_any_post_asm ]
189 [ run test_condition_variable_any_dispatch.cpp :
191 <context-impl>fcontext
192 [ requires cxx11_auto_declarations
194 cxx11_defaulted_functions
203 cxx11_rvalue_references
204 cxx11_template_aliases
206 cxx11_variadic_templates ]
207 : test_condition_variable_any_dispatch_asm ]
209 [ run test_condition_variable_post.cpp :
211 <context-impl>fcontext
212 [ requires cxx11_auto_declarations
214 cxx11_defaulted_functions
223 cxx11_rvalue_references
224 cxx11_template_aliases
226 cxx11_variadic_templates ]
227 : test_condition_variable_post_asm ]
229 [ run test_condition_variable_dispatch.cpp :
231 <context-impl>fcontext
232 [ requires cxx11_auto_declarations
234 cxx11_defaulted_functions
243 cxx11_rvalue_references
244 cxx11_template_aliases
246 cxx11_variadic_templates ]
247 : test_condition_variable_dispatch_asm ]
249 [ run test_barrier_post.cpp :
251 <context-impl>fcontext
252 [ requires cxx11_auto_declarations
254 cxx11_defaulted_functions
263 cxx11_rvalue_references
264 cxx11_template_aliases
266 cxx11_variadic_templates ]
267 : test_barrier_post_asm ]
269 [ run test_barrier_dispatch.cpp :
271 <context-impl>fcontext
272 [ requires cxx11_auto_declarations
274 cxx11_defaulted_functions
283 cxx11_rvalue_references
284 cxx11_template_aliases
286 cxx11_variadic_templates ]
287 : test_barrier_dispatch_asm ]
289 [ run test_buffered_channel_post.cpp :
291 <context-impl>fcontext
292 [ requires cxx11_auto_declarations
294 cxx11_defaulted_functions
303 cxx11_rvalue_references
304 cxx11_template_aliases
306 cxx11_variadic_templates ]
307 : test_buffered_channel_post_asm ]
309 [ run test_buffered_channel_dispatch.cpp :
311 <context-impl>fcontext
312 [ requires cxx11_auto_declarations
314 cxx11_defaulted_functions
323 cxx11_rvalue_references
324 cxx11_template_aliases
326 cxx11_variadic_templates ]
327 : test_buffered_channel_dispatch_asm ]
329 [ run test_unbuffered_channel_post.cpp :
331 <context-impl>fcontext
332 [ requires cxx11_auto_declarations
334 cxx11_defaulted_functions
343 cxx11_rvalue_references
344 cxx11_template_aliases
346 cxx11_variadic_templates ]
347 : test_unbuffered_channel_post_asm ]
349 [ run test_unbuffered_channel_dispatch.cpp :
351 <context-impl>fcontext
352 [ requires cxx11_auto_declarations
354 cxx11_defaulted_functions
363 cxx11_rvalue_references
364 cxx11_template_aliases
366 cxx11_variadic_templates ]
367 : test_unbuffered_channel_dispatch_asm ]
369 [ run test_fss_post.cpp :
371 <context-impl>fcontext
372 [ requires cxx11_auto_declarations
374 cxx11_defaulted_functions
383 cxx11_rvalue_references
384 cxx11_template_aliases
386 cxx11_variadic_templates ]
387 : test_fss_post_asm ]
389 [ run test_fss_dispatch.cpp :
391 <context-impl>fcontext
392 [ requires cxx11_auto_declarations
394 cxx11_defaulted_functions
403 cxx11_rvalue_references
404 cxx11_template_aliases
406 cxx11_variadic_templates ]
407 : test_fss_dispatch_asm ]
409 [ run test_promise_post.cpp :
411 <context-impl>fcontext
412 [ requires cxx11_auto_declarations
414 cxx11_defaulted_functions
423 cxx11_rvalue_references
424 cxx11_template_aliases
426 cxx11_variadic_templates ]
427 : test_promise_post_asm ]
429 [ run test_promise_dispatch.cpp :
431 <context-impl>fcontext
432 [ requires cxx11_auto_declarations
434 cxx11_defaulted_functions
443 cxx11_rvalue_references
444 cxx11_template_aliases
446 cxx11_variadic_templates ]
447 : test_promise_dispatch_asm ]
449 [ run test_future_post.cpp :
451 <context-impl>fcontext
452 [ requires cxx11_auto_declarations
454 cxx11_defaulted_functions
463 cxx11_rvalue_references
464 cxx11_template_aliases
466 cxx11_variadic_templates ]
467 : test_future_post_asm ]
469 [ run test_future_dispatch.cpp :
471 <context-impl>fcontext
472 [ requires cxx11_auto_declarations
474 cxx11_defaulted_functions
483 cxx11_rvalue_references
484 cxx11_template_aliases
486 cxx11_variadic_templates ]
487 : test_future_dispatch_asm ]
489 [ run test_shared_future_post.cpp :
491 <context-impl>fcontext
492 [ requires cxx11_auto_declarations
494 cxx11_defaulted_functions
503 cxx11_rvalue_references
504 cxx11_template_aliases
506 cxx11_variadic_templates ]
507 : test_shared_future_post_asm ]
509 [ run test_shared_future_dispatch.cpp :
511 <context-impl>fcontext
512 [ requires cxx11_auto_declarations
514 cxx11_defaulted_functions
523 cxx11_rvalue_references
524 cxx11_template_aliases
526 cxx11_variadic_templates ]
527 : test_shared_future_dispatch_asm ]
529 [ run test_packaged_task_post.cpp :
531 <context-impl>fcontext
532 [ requires cxx11_auto_declarations
534 cxx11_defaulted_functions
543 cxx11_rvalue_references
544 cxx11_template_aliases
546 cxx11_variadic_templates ]
547 : test_packaged_task_post_asm ]
549 [ run test_packaged_task_dispatch.cpp :
551 <context-impl>fcontext
552 [ requires cxx11_auto_declarations
554 cxx11_defaulted_functions
563 cxx11_rvalue_references
564 cxx11_template_aliases
566 cxx11_variadic_templates ]
567 : test_packaged_task_dispatch_asm ]
569 [ run test_async_post.cpp :
571 <context-impl>fcontext
572 [ requires cxx11_auto_declarations
574 cxx11_defaulted_functions
583 cxx11_rvalue_references
584 cxx11_template_aliases
586 cxx11_variadic_templates ]
587 : test_async_post_asm ]
589 [ run test_async_dispatch.cpp :
591 <context-impl>fcontext
592 [ requires cxx11_auto_declarations
594 cxx11_defaulted_functions
603 cxx11_rvalue_references
604 cxx11_template_aliases
606 cxx11_variadic_templates ]
607 : test_async_dispatch_asm ] ;
610 # tests using native API
612 [ run test_fiber_post.cpp :
614 <conditional>@native-impl
615 [ requires cxx11_auto_declarations
617 cxx11_defaulted_functions
626 cxx11_rvalue_references
627 cxx11_template_aliases
629 cxx11_variadic_templates ]
630 : test_fiber_post_native ]
632 [ run test_fiber_dispatch.cpp :
634 <conditional>@native-impl
635 [ requires cxx11_auto_declarations
637 cxx11_defaulted_functions
646 cxx11_rvalue_references
647 cxx11_template_aliases
649 cxx11_variadic_templates ]
650 : test_fiber_dispatch_native ]
652 [ run test_mutex_post.cpp :
654 <conditional>@native-impl
655 [ requires cxx11_auto_declarations
657 cxx11_defaulted_functions
666 cxx11_rvalue_references
667 cxx11_template_aliases
669 cxx11_variadic_templates ]
670 : test_mutex_post_native ]
672 [ run test_mutex_dispatch.cpp :
674 <conditional>@native-impl
675 [ requires cxx11_auto_declarations
677 cxx11_defaulted_functions
686 cxx11_rvalue_references
687 cxx11_template_aliases
689 cxx11_variadic_templates ]
690 : test_mutex_dispatch_native ]
692 [ run test_condition_variable_any_post.cpp :
694 <conditional>@native-impl
695 [ requires cxx11_auto_declarations
697 cxx11_defaulted_functions
706 cxx11_rvalue_references
707 cxx11_template_aliases
709 cxx11_variadic_templates ]
710 : test_cond_var_any_post_native ]
712 [ run test_condition_variable_any_dispatch.cpp :
714 <conditional>@native-impl
715 [ requires cxx11_auto_declarations
717 cxx11_defaulted_functions
726 cxx11_rvalue_references
727 cxx11_template_aliases
729 cxx11_variadic_templates ]
730 : test_cond_vare_any_dispatch_native ]
732 [ run test_condition_variable_post.cpp :
734 <conditional>@native-impl
735 [ requires cxx11_auto_declarations
737 cxx11_defaulted_functions
746 cxx11_rvalue_references
747 cxx11_template_aliases
749 cxx11_variadic_templates ]
750 : test_cond_var_post_native ]
752 [ run test_condition_variable_dispatch.cpp :
754 <conditional>@native-impl
755 [ requires cxx11_auto_declarations
757 cxx11_defaulted_functions
766 cxx11_rvalue_references
767 cxx11_template_aliases
769 cxx11_variadic_templates ]
770 : test_cond_var_dispatch_native ]
772 [ run test_barrier_post.cpp :
774 <conditional>@native-impl
775 [ requires cxx11_auto_declarations
777 cxx11_defaulted_functions
786 cxx11_rvalue_references
787 cxx11_template_aliases
789 cxx11_variadic_templates ]
790 : test_barrier_post_native ]
792 [ run test_barrier_dispatch.cpp :
794 <conditional>@native-impl
795 [ requires cxx11_auto_declarations
797 cxx11_defaulted_functions
806 cxx11_rvalue_references
807 cxx11_template_aliases
809 cxx11_variadic_templates ]
810 : test_barrier_dispatch_native ]
812 [ run test_buffered_channel_post.cpp :
814 <conditional>@native-impl
815 [ requires cxx11_auto_declarations
817 cxx11_defaulted_functions
826 cxx11_rvalue_references
827 cxx11_template_aliases
829 cxx11_variadic_templates ]
830 : test_buf_channel_post_native ]
832 [ run test_buffered_channel_dispatch.cpp :
834 <conditional>@native-impl
835 [ requires cxx11_auto_declarations
837 cxx11_defaulted_functions
846 cxx11_rvalue_references
847 cxx11_template_aliases
849 cxx11_variadic_templates ]
850 : test_buf_channel_dispatch_native ]
852 [ run test_unbuffered_channel_post.cpp :
854 <conditional>@native-impl
855 [ requires cxx11_auto_declarations
857 cxx11_defaulted_functions
866 cxx11_rvalue_references
867 cxx11_template_aliases
869 cxx11_variadic_templates ]
870 : test_unbuf_channel_post_native ]
872 [ run test_unbuffered_channel_dispatch.cpp :
874 <conditional>@native-impl
875 [ requires cxx11_auto_declarations
877 cxx11_defaulted_functions
886 cxx11_rvalue_references
887 cxx11_template_aliases
889 cxx11_variadic_templates ]
890 : test_unbuf_channel_dispatch_native ]
892 [ run test_fss_post.cpp :
894 <conditional>@native-impl
895 [ requires cxx11_auto_declarations
897 cxx11_defaulted_functions
906 cxx11_rvalue_references
907 cxx11_template_aliases
909 cxx11_variadic_templates ]
910 : test_fss_post_native ]
912 [ run test_fss_dispatch.cpp :
914 <conditional>@native-impl
915 [ requires cxx11_auto_declarations
917 cxx11_defaulted_functions
926 cxx11_rvalue_references
927 cxx11_template_aliases
929 cxx11_variadic_templates ]
930 : test_fss_dispatch_native ]
932 [ run test_promise_post.cpp :
934 <conditional>@native-impl
935 [ requires cxx11_auto_declarations
937 cxx11_defaulted_functions
946 cxx11_rvalue_references
947 cxx11_template_aliases
949 cxx11_variadic_templates ]
950 : test_promise_post_native ]
952 [ run test_promise_dispatch.cpp :
954 <conditional>@native-impl
955 [ requires cxx11_auto_declarations
957 cxx11_defaulted_functions
966 cxx11_rvalue_references
967 cxx11_template_aliases
969 cxx11_variadic_templates ]
970 : test_promise_dispatch_native ]
972 [ run test_future_post.cpp :
974 <conditional>@native-impl
975 [ requires cxx11_auto_declarations
977 cxx11_defaulted_functions
986 cxx11_rvalue_references
987 cxx11_template_aliases
989 cxx11_variadic_templates ]
990 : test_future_post_native ]
992 [ run test_future_dispatch.cpp :
994 <conditional>@native-impl
995 [ requires cxx11_auto_declarations
997 cxx11_defaulted_functions
1006 cxx11_rvalue_references
1007 cxx11_template_aliases
1009 cxx11_variadic_templates ]
1010 : test_future_dispatch_native ]
1012 [ run test_shared_future_post.cpp :
1014 <conditional>@native-impl
1015 [ requires cxx11_auto_declarations
1017 cxx11_defaulted_functions
1026 cxx11_rvalue_references
1027 cxx11_template_aliases
1029 cxx11_variadic_templates ]
1030 : test_shared_future_post_native ]
1032 [ run test_shared_future_dispatch.cpp :
1034 <conditional>@native-impl
1035 [ requires cxx11_auto_declarations
1037 cxx11_defaulted_functions
1046 cxx11_rvalue_references
1047 cxx11_template_aliases
1049 cxx11_variadic_templates ]
1050 : test_shared_future_dispatch_native ]
1052 [ run test_packaged_task_post.cpp :
1054 <conditional>@native-impl
1055 [ requires cxx11_auto_declarations
1057 cxx11_defaulted_functions
1066 cxx11_rvalue_references
1067 cxx11_template_aliases
1069 cxx11_variadic_templates ]
1070 : test_packaged_task_post_native ]
1072 [ run test_packaged_task_dispatch.cpp :
1074 <conditional>@native-impl
1075 [ requires cxx11_auto_declarations
1077 cxx11_defaulted_functions
1086 cxx11_rvalue_references
1087 cxx11_template_aliases
1089 cxx11_variadic_templates ]
1090 : test_packaged_task_dispatch_native ]
1092 [ run test_async_post.cpp :
1094 <conditional>@native-impl
1095 [ requires cxx11_auto_declarations
1097 cxx11_defaulted_functions
1106 cxx11_rvalue_references
1107 cxx11_template_aliases
1109 cxx11_variadic_templates ]
1110 : test_async_post_native ]
1112 [ run test_async_dispatch.cpp :
1114 <conditional>@native-impl
1115 [ requires cxx11_auto_declarations
1117 cxx11_defaulted_functions
1126 cxx11_rvalue_references
1127 cxx11_template_aliases
1129 cxx11_variadic_templates ]
1130 : test_async_dispatch_native ] ;
1133 #etra tests using asm API
1134 test-suite extra-asm :
1135 [ run test_mutex_mt_post.cpp :
1137 <context-impl>fcontext
1138 [ requires cxx11_auto_declarations
1140 cxx11_defaulted_functions
1149 cxx11_rvalue_references
1150 cxx11_template_aliases
1152 cxx11_variadic_templates ]
1153 : test_mutex_mt_post_asm ]
1155 [ run test_mutex_mt_dispatch.cpp :
1157 <context-impl>fcontext
1158 [ requires cxx11_auto_declarations
1160 cxx11_defaulted_functions
1169 cxx11_rvalue_references
1170 cxx11_template_aliases
1172 cxx11_variadic_templates ]
1173 : test_mutex_mt_dispatch_asm ]
1175 [ run test_condition_mt_post.cpp :
1177 <context-impl>fcontext
1178 [ requires cxx11_auto_declarations
1180 cxx11_defaulted_functions
1189 cxx11_rvalue_references
1190 cxx11_template_aliases
1192 cxx11_variadic_templates ]
1193 : test_condition_mt_post_asm ]
1195 [ run test_condition_mt_dispatch.cpp :
1197 <context-impl>fcontext
1198 [ requires cxx11_auto_declarations
1200 cxx11_defaulted_functions
1209 cxx11_rvalue_references
1210 cxx11_template_aliases
1212 cxx11_variadic_templates ]
1213 : test_condition_mt_dispatch_asm ]
1215 [ run test_future_mt_post.cpp :
1217 <context-impl>fcontext
1218 [ requires cxx11_auto_declarations
1220 cxx11_defaulted_functions
1229 cxx11_rvalue_references
1230 cxx11_template_aliases
1232 cxx11_variadic_templates ]
1233 : test_future_mt_post_asm ]
1235 [ run test_future_mt_dispatch.cpp :
1237 <context-impl>fcontext
1238 [ requires cxx11_auto_declarations
1240 cxx11_defaulted_functions
1249 cxx11_rvalue_references
1250 cxx11_template_aliases
1252 cxx11_variadic_templates ]
1253 : test_future_mt_dispatch_asm ] ;
1256 #etra tests using native API
1257 test-suite extra-native :
1258 [ run test_mutex_mt_post.cpp :
1260 <conditional>@native-impl
1261 [ requires cxx11_auto_declarations
1263 cxx11_defaulted_functions
1272 cxx11_rvalue_references
1273 cxx11_template_aliases
1275 cxx11_variadic_templates ]
1276 : test_mutex_mt_post_native ]
1278 [ run test_mutex_mt_dispatch.cpp :
1280 <conditional>@native-impl
1281 [ requires cxx11_auto_declarations
1283 cxx11_defaulted_functions
1292 cxx11_rvalue_references
1293 cxx11_template_aliases
1295 cxx11_variadic_templates ]
1296 : test_mutex_mt_dispatch_native ]
1298 [ run test_condition_mt_post.cpp :
1300 <conditional>@native-impl
1301 [ requires cxx11_auto_declarations
1303 cxx11_defaulted_functions
1312 cxx11_rvalue_references
1313 cxx11_template_aliases
1315 cxx11_variadic_templates ]
1316 : test_condition_mt_post_native ]
1318 [ run test_condition_mt_dispatch.cpp :
1320 <conditional>@native-impl
1321 [ requires cxx11_auto_declarations
1323 cxx11_defaulted_functions
1332 cxx11_rvalue_references
1333 cxx11_template_aliases
1335 cxx11_variadic_templates ]
1336 : test_condition_mt_dispatch_native ]
1338 [ run test_future_mt_post.cpp :
1340 <conditional>@native-impl
1341 [ requires cxx11_auto_declarations
1343 cxx11_defaulted_functions
1352 cxx11_rvalue_references
1353 cxx11_template_aliases
1355 cxx11_variadic_templates ]
1356 : test_future_mt_post_native ]
1358 [ run test_future_mt_dispatch.cpp :
1360 <conditional>@native-impl
1361 [ requires cxx11_auto_declarations
1363 cxx11_defaulted_functions
1372 cxx11_rvalue_references
1373 cxx11_template_aliases
1375 cxx11_variadic_templates ]
1376 : test_future_mt_dispatch_native ] ;
1379 test-suite minimal :
1383 extra-asm extra-native ;