1# (C) Copyright William E. Kempf 2001. 2# (C) Copyright 2007 Anthony Williams. 3# (C) Copyright 2011-2012 Vicente J.Botet Escriba. 4# Distributed under the Boost Software License, Version 1.0. (See accompanying 5# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6# 7# Boost.Threads test Jamfile 8# 9# Additional configuration variables used: 10# 1. PTW32 may be used on Win32 platforms to specify that the pthreads-win32 11# library should be used instead of "native" threads. This feature is 12# mostly used for testing and it's generally recommended you use the 13# native threading libraries instead. PTW32 should be set to be a list 14# of two strings, the first specifying the installation path of the 15# pthreads-win32 library and the second specifying which library 16# variant to link against (see the pthreads-win32 documentation). 17# Example: jam -sPTW32="c:\pthreads-win32 pthreadVCE.lib" 18 19# bring in rules for testing 20import testing ; 21import regex ; 22import path ; 23import os ; 24 25project 26 : requirements 27 <threading>multi 28 29 <define>BOOST_THREAD_THROW_IF_PRECONDITION_NOT_SATISFIED 30 31 <warnings>all 32 <toolset>gcc:<cxxflags>-Wextra 33 <toolset>gcc:<cxxflags>-pedantic 34 <toolset>gcc:<cxxflags>-Wno-long-long 35 #<toolset>gcc:<cxxflags>-ansi 36 #<toolset>gcc:<cxxflags>-fpermissive 37 <toolset>gcc-4:<cxxflags>-Wno-variadic-macros 38 <toolset>gcc-5:<cxxflags>-Wno-variadic-macros 39 #<toolset>gcc:<cxxflags>-Wunused-local-typedefs 40 <toolset>gcc:<cxxflags>-Wunused-function 41 <toolset>gcc:<cxxflags>-Wno-unused-parameter 42 43 <toolset>darwin:<cxxflags>-Wextra 44 <toolset>darwin:<cxxflags>-pedantic 45 <toolset>darwin:<cxxflags>-Wno-long-long 46 #<toolset>darwin:<cxxflags>-ansi # doesn't work for 4.1.2 47 <toolset>darwin:<cxxflags>-fpermissive 48 <toolset>darwin:<cxxflags>-Wno-variadic-macros 49 #<toolset>darwin:<cxxflags>-Wunused-local-typedefs 50 <toolset>darwin:<cxxflags>-Wunused-function 51 <toolset>darwin:<cxxflags>-Wno-unused-parameter 52 53 #<toolset>pathscale:<cxxflags>-Wextra 54 <toolset>pathscale:<cxxflags>-Wno-long-long 55 <toolset>pathscale:<cxxflags>-pedantic 56 57 <toolset>clang:<warnings>on 58 <toolset>clang:<cxxflags>-Wextra 59 #<toolset>clang:<cxxflags>-pedantic 60 <toolset>clang:<cxxflags>-Wno-long-long 61 #<toolset>clang:<cxxflags>-ansi 62 #<toolset>clang:<cxxflags>-fpermissive # doesn't work 63 <toolset>clang:<cxxflags>-Wunused-function 64 <toolset>clang:<cxxflags>-Wno-unused-parameter 65 66 #<toolset>gcc-mingw-4.4.0:<cxxflags>-fdiagnostics-show-option 67 #<toolset>gcc-mingw-4.5.0:<cxxflags>-fdiagnostics-show-option 68 #<toolset>gcc-mingw-4.6.0:<cxxflags>-fdiagnostics-show-option 69 #<toolset>gcc-mingw-4.6.3:<cxxflags>-fdiagnostics-show-option 70 #<toolset>gcc-mingw-4.7.0:<cxxflags>-fdiagnostics-show-option 71 #<toolset>gcc-mingw-4.8.0:<cxxflags>-fdiagnostics-show-option 72 73 <toolset>darwin-4.6.2:<cxxflags>-ansi 74 #<toolset>darwin-4.6.2:<cxxflags>-Wno-delete-non-virtual-dtor # doesn't work 75 <toolset>darwin-4.7.0:<cxxflags>-ansi 76 <toolset>darwin-4.7.0:<cxxflags>-Wno-delete-non-virtual-dtor 77 #<toolset>darwin-4.6.2:<cxxflags>-Wno-unused-local-typedefs 78 #<toolset>darwin-4.7.1:<cxxflags>-Wno-unused-local-typedefs 79 #<toolset>darwin-4.7.2:<cxxflags>-Wno-unused-local-typedefs 80 #<toolset>darwin-4.8.0:<cxxflags>-Wno-unused-local-typedefs 81 #<toolset>darwin-4.6.2x:<cxxflags>-Wno-unused-local-typedefs 82 #<toolset>darwin-4.7.1x:<cxxflags>-Wno-unused-local-typedefs 83 #<toolset>darwin-4.7.2x:<cxxflags>-Wno-unused-local-typedefs 84 #<toolset>darwin-4.8.0x:<cxxflags>-Wno-unused-local-typedefs 85 86 #<toolset>clang-2.8:<cxxflags>-Wno-delete-non-virtual-dtor 87 #<toolset>clang-2.8:<cxxflags>-Wno-unused-function 88 #<toolset>clang-2.9:<cxxflags>-Wno-delete-non-virtual-dtor 89 #<toolset>clang-2.9:<cxxflags>-Wno-unused-function 90 <toolset>clang-3.0:<cxxflags>-Wno-delete-non-virtual-dtor 91 #<toolset>clang-3.0:<cxxflags>-Wno-unused-function 92 #<toolset>clang-3.0:<cxxflags>-Wno-unused-variable 93 #<toolset>clang-3.1:<cxxflags>-Wno-bind-to-temporary-copy 94 #<toolset>clang-3.2:<cxxflags>-Wno-bind-to-temporary-copy 95 96# Note: Some of the remarks from the Intel compiler are disabled 97# remark #193: zero used for undefined preprocessing identifier "XXX" 98# remark #304: access control not specified ("public" by default) 99# remark #593: variable "XXX" was set but never used 100# remark #1418: external function definition with no prior declaration 101# remark #2415: variable "XXX" of static storage duration was declared but never referenced 102 103 <toolset>intel:<cxxflags>-wd193,304,383,444 104 <toolset>intel:<cxxflags>-wd593,981 105 <toolset>intel:<cxxflags>-wd1418 106 <toolset>intel:<cxxflags>-wd2415 107 108 <toolset>msvc:<cxxflags>/wd4100 109 <toolset>msvc:<cxxflags>/wd4512 110 <toolset>msvc:<cxxflags>/wd6246 111 ; 112 113rule thread-run ( sources ) 114{ 115 sources = $(sources) winrt_init.cpp ; 116 return 117 [ run $(sources) ../build//boost_thread ] 118 [ run $(sources) ../src/tss_null.cpp ../build//boost_thread/<link>static 119 : : : : $(sources[1]:B)_lib ] 120 ; 121} 122 123 124rule thread-test ( sources ) 125{ 126 sources = $(sources) winrt_init.cpp ; 127 return 128 [ run $(sources) ../build//boost_thread : : : 129 <library>/boost/test//boost_unit_test_framework 130 ] 131 [ run $(sources) ../src/tss_null.cpp ../build//boost_thread/<link>static 132 : : : 133 <library>/boost/test//boost_unit_test_framework/<link>static 134 : $(sources[1]:B)_lib 135 ] 136 ; 137} 138 139rule thread-run2 ( sources : name ) 140{ 141 sources = $(sources) winrt_init.cpp ; 142 return 143 [ run $(sources) ../build//boost_thread : : : 144 : $(name) ] 145 [ run $(sources) ../src/tss_null.cpp ../build//boost_thread/<link>static 146 : : : 147 : $(name)_lib ] 148 ; 149} 150 151rule thread-run2-noit ( sources : name : reqs * ) 152{ 153 sources = $(sources) winrt_init.cpp ; 154 return 155 [ run $(sources) ../build//boost_thread : : : $(reqs) 156 : $(name) ] 157 [ run $(sources) ../src/tss_null.cpp ../build//boost_thread/<link>static 158 : : : $(reqs) 159 : $(name)_lib ] 160 #[ run $(sources) ../build//boost_thread : : : 161 # <define>BOOST_THREAD_DONT_PROVIDE_INTERRUPTIONS 162 # : $(name)_noit ] 163 ; 164} 165 166rule thread-run2-noit-pthread ( sources : name ) 167{ 168 sources = $(sources) winrt_init.cpp ; 169 return 170 [ run $(sources) ../build//boost_thread : : : <threadapi>win32:<build>no 171 : $(name) ] 172 [ run $(sources) ../src/tss_null.cpp ../build//boost_thread/<link>static 173 : : : <threadapi>win32:<build>no 174 : $(name)_lib ] 175 #[ run $(sources) ../build//boost_thread : : : 176 # <define>BOOST_THREAD_DONT_PROVIDE_INTERRUPTIONS 177 # : $(name)_noit ] 178 ; 179} 180 181rule thread-run2-h ( sources : name ) 182{ 183 sources = $(sources) winrt_init.cpp ; 184 return 185 [ run $(sources) : : : 186 <define>BOOST_THREAD_DONT_PROVIDE_INTERRUPTIONS 187 <define>BOOST_THREAD_VERSION=3 188 : $(name)_h ] 189 ; 190} 191 192 193rule thread-run-lib2 ( sources : name ) 194{ 195 sources = $(sources) winrt_init.cpp ; 196 return 197 [ run $(sources) ../src/tss_null.cpp ../build//boost_thread/<link>static 198 : : : 199 : $(name)_lib ] 200 ; 201} 202 203 204rule thread-compile-fail ( sources : reqs * : name ) 205{ 206 return 207 [ compile-fail $(sources) 208 : $(reqs) 209 : $(name) ] 210 ; 211} 212 213rule clang-thread-safety ( properties * ) 214{ 215 if <toolset>clang in $(properties) 216 { 217 return <cxxflags>-Werror=thread-safety <define>BOOST_THREAD_ENABLE_THREAD_SAFETY_ANALYSIS ; 218 } 219 else 220 { 221 return <build>no ; 222 } 223} 224 225rule thread-safety-compile ( sources : reqs * : name ) 226{ 227 return 228 [ compile $(sources) 229 : $(reqs) <conditional>@clang-thread-safety 230 : $(name) ] 231 ; 232} 233 234rule thread-safety-compile-fail ( sources : reqs * : name ) 235{ 236 return 237 [ compile-fail $(sources) 238 : $(reqs) <conditional>@clang-thread-safety 239 : $(name) ] 240 ; 241} 242 243rule thread-compile ( sources : reqs * : name ) 244{ 245 return 246 [ compile $(sources) 247 : $(reqs) 248 : $(name) ] 249 ; 250} 251 252rule windows-cygwin-specific ( properties * ) 253{ 254 if <target-os>windows in $(properties) || <target-os>cygwin in $(properties) 255 { 256 return <build>yes ; 257 } 258 else 259 { 260 return <build>no ; 261 } 262} 263 264rule generate_self_contained_header_tests 265{ 266 local all_rules ; 267 local file ; 268 269 if ! [ os.environ BOOST_THREAD_TEST_WITHOUT_SELF_CONTAINED_HEADER_TESTS ] 270 { 271 local headers_path = [ path.make $(BOOST_ROOT)/libs/thread/include/boost/thread ] ; 272 for file in [ path.glob-tree $(headers_path) : *.hpp : detail pthread win32 ] 273 { 274 local rel_file = [ path.relative-to $(headers_path) $(file) ] ; 275 # Note: The test name starts with '~' in order to group these tests in the test report table, preferably at the end. 276 # All '/' are replaced with '-' because apparently test scripts have a problem with test names containing slashes. 277 local test_name = [ regex.replace ~hdr/$(rel_file) "/" "-" ] ; 278 #ECHO $(rel_file) ; 279 all_rules += [ compile self_contained_header.cpp : <define>"BOOST_THREAD_TEST_HEADER=$(rel_file)" <dependency>$(file) : $(test_name) ] ; 280 all_rules += [ compile self_contained_header.cpp : <define>"BOOST_THREAD_TEST_HEADER=$(rel_file)" <define>"BOOST_THREAD_TEST_POST_WINDOWS_H" <dependency>$(file) <conditional>@windows-cygwin-specific : $(test_name)-post_winh ] ; 281 } 282 } 283 284 #ECHO All rules: $(all_rules) ; 285 return $(all_rules) ; 286} 287 288{ 289 test-suite t_threads 290 : 291 [ thread-test test_thread.cpp ] 292 [ thread-test test_thread_id.cpp ] 293 [ thread-test test_hardware_concurrency.cpp ] 294 [ thread-test test_physical_concurrency.cpp ] 295 [ thread-test test_thread_move.cpp ] 296 [ thread-test test_thread_return_local.cpp ] 297 [ thread-test test_thread_move_return.cpp ] 298 [ thread-test test_thread_launching.cpp ] 299 [ thread-test test_thread_mf.cpp ] 300 [ thread-test test_thread_exit.cpp ] 301 [ thread-test test_move_function.cpp ] 302 [ compile-fail no_implicit_move_from_lvalue_thread.cpp ] 303 [ compile-fail no_implicit_assign_from_lvalue_thread.cpp ] 304 [ thread-test test_tss.cpp ] 305 [ thread-test test_xtime.cpp ] 306 ; 307 308 test-suite t_sync 309 : 310 [ thread-test test_mutex.cpp ] 311 [ thread-test test_condition_notify_one.cpp ] 312 [ thread-test test_condition_timed_wait_times_out.cpp ] 313 [ thread-test test_condition_notify_all.cpp ] 314 [ thread-test test_condition.cpp ] 315 [ thread-test test_once.cpp ] 316 [ thread-run test_barrier.cpp ] 317 [ thread-run test_barrier_void_fct.cpp ] 318 [ thread-run test_barrier_size_fct.cpp ] 319 [ thread-test test_lock_concept.cpp ] 320 [ thread-test test_generic_locks.cpp ] 321 [ thread-run test_latch.cpp ] 322 [ thread-run test_completion_latch.cpp ] 323 ; 324 325 test-suite t_shared 326 : 327 [ thread-test test_shared_mutex.cpp ] 328 [ thread-test test_shared_mutex_part_2.cpp ] 329 [ thread-test test_shared_mutex_timed_locks.cpp ] 330 [ thread-test test_shared_mutex_timed_locks_chrono.cpp ] 331 #uncomment the following once these works on windows 332 #[ thread-test test_vhh_shared_mutex.cpp ] 333 #[ thread-test test_vhh_shared_mutex_part_2.cpp ] 334 #[ thread-test test_vhh_shared_mutex_timed_locks.cpp ] 335 ; 336 337 explicit t_futures_too_long ; 338 test-suite t_futures_too_long 339 : 340 [ thread-test test_futures.cpp ] 341 ; 342 343 344 #explicit tickets ; 345 test-suite tickets 346 : 347 [ thread-test test_2309.cpp ] 348 [ thread-run test_2501.cpp ] 349 [ thread-test test_2741.cpp ] 350 [ thread-run test_3628.cpp ] 351 [ thread-run test_4521.cpp ] 352 [ thread-run test_4648.cpp ] 353 [ thread-run test_4882.cpp ] 354 [ thread-run test_5542_1.cpp ] 355 [ thread-run test_5542_2.cpp ] 356 [ thread-run test_5542_3.cpp ] 357 [ thread-run test_5891.cpp ] 358 #[ thread-run test_6130.cpp ] 359 #[ thread-run test_6170.cpp ] 360 [ thread-run test_6174.cpp ] 361 #[ thread-run test_7160.cpp ] 362 [ thread-run test_7328.cpp ] 363 [ thread-run test_7571.cpp ] 364 [ thread-run test_9319.cpp ] 365 #[ thread-run test_9711.cpp ] This is an invalid use of ::then deferred. 366 [ thread-run test_9856.cpp ] 367 [ thread-compile test_10963.cpp : : test_10963_c ] 368 [ thread-run test_10964.cpp ] 369 [ thread-test test_11053.cpp ] 370 [ thread-run test_11266.cpp ] 371 ; 372 373 374 explicit oth_tickets ; 375 test-suite oth_tickets 376 : 377 [ thread-run test_5351.cpp ] 378 [ thread-run test_5502.cpp ] 379 ; 380 381 382 383 #explicit ts_conditions ; 384 test-suite ts_conditions 385 : 386 [ thread-compile-fail ./sync/conditions/condition_variable/assign_fail.cpp : : condition_variable__assign_f ] 387 [ thread-compile-fail ./sync/conditions/condition_variable/copy_fail.cpp : : condition_variable__copy_f ] 388 [ thread-run2-noit ./sync/conditions/condition_variable/default_pass.cpp : condition_variable__default_p ] 389 [ thread-run2-noit ./sync/conditions/condition_variable/dtor_pass.cpp : condition_variable__dtor_p ] 390 [ thread-run2-noit-pthread ./sync/conditions/condition_variable/native_handle_pass.cpp : condition_variable__native_handle_p ] 391 [ thread-run2-noit ./sync/conditions/condition_variable/wait_pass.cpp : condition_variable__wait_p ] 392 [ thread-run2-noit ./sync/conditions/condition_variable/wait_for_pass.cpp : condition_variable__wait_for_p ] 393 [ thread-run2-noit ./sync/conditions/condition_variable/wait_for_pred_pass.cpp : condition_variable__wait_for_pred_p ] 394 [ thread-run2-noit ./sync/conditions/condition_variable/wait_until_pass.cpp : condition_variable__wait_until_p ] 395 [ thread-run2-noit ./sync/conditions/condition_variable/wait_until_pred_pass.cpp : condition_variable__wait_until_pred_p ] 396 [ thread-run2-noit ./sync/conditions/condition_variable/lost_notif_pass.cpp : condition_variable__lost_notif_p ] 397 398 [ thread-compile-fail ./sync/conditions/condition_variable_any/assign_fail.cpp : : condition_variable_any__assign_f ] 399 [ thread-compile-fail ./sync/conditions/condition_variable_any/copy_fail.cpp : : condition_variable_any__copy_f ] 400 [ thread-run2-noit ./sync/conditions/condition_variable_any/default_pass.cpp : condition_variable_any__default_p ] 401 [ thread-run2-noit ./sync/conditions/condition_variable_any/dtor_pass.cpp : condition_variable_any__dtor_p ] 402 [ thread-run2-noit ./sync/conditions/condition_variable_any/wait_for_pass.cpp : condition_variable_any__wait_for_p ] 403 [ thread-run2-noit ./sync/conditions/condition_variable_any/wait_for_pred_pass.cpp : condition_variable_any__wait_for_pred_p ] 404 [ thread-run2-noit ./sync/conditions/condition_variable_any/wait_until_pass.cpp : condition_variable_any__wait_until_p ] 405 [ thread-run2-noit ./sync/conditions/condition_variable_any/wait_until_pred_pass.cpp : condition_variable_any__wait_until_pred_p ] 406 [ thread-run2-noit ./sync/conditions/condition_variable_any/lost_notif_pass.cpp : condition_variable_any__lost_notif_p ] 407 [ thread-run2-noit ./sync/conditions/cv_status/cv_status_pass.cpp : cv_status__cv_status_p ] 408 [ thread-run2-noit ./sync/conditions/notify_all_at_thread_exit_pass.cpp : notify_all_at_thread_exit_p ] 409 ; 410 411 #explicit ts_async ; 412 test-suite ts_async 413 : 414 [ thread-run2-noit ./sync/futures/async/async_pass.cpp : async__async_p ] 415 [ thread-run2-noit ./sync/futures/async/async_executor_pass.cpp : async__async_executor_p ] 416 ; 417 418 #explicit ts_promise ; 419 test-suite ts_promise 420 : 421 [ thread-compile-fail ./sync/futures/promise/copy_assign_fail.cpp : : promise__copy_assign_f ] 422 [ thread-compile-fail ./sync/futures/promise/copy_ctor_fail.cpp : : promise__copy_ctor_f ] 423 [ thread-run2-noit ./sync/futures/promise/alloc_ctor_pass.cpp : promise__alloc_ctor_p ] 424 [ thread-run2-noit ./sync/futures/promise/default_pass.cpp : promise__default_p ] 425 [ thread-run2-noit ./sync/futures/promise/dtor_pass.cpp : promise__dtor_p ] 426 [ thread-run2-noit ./sync/futures/promise/get_future_pass.cpp : promise__get_future_p ] 427 [ thread-run2-noit ./sync/futures/promise/move_ctor_pass.cpp : promise__move_ctor_p ] 428 [ thread-run2-noit ./sync/futures/promise/move_assign_pass.cpp : promise__move_asign_p ] 429 [ thread-run2-noit ./sync/futures/promise/set_exception_pass.cpp : promise__set_exception_p ] 430 [ thread-run2-noit ./sync/futures/promise/set_lvalue_pass.cpp : promise__set_lvalue_p ] 431 [ thread-run2-noit ./sync/futures/promise/set_rvalue_pass.cpp : promise__set_rvalue_p ] 432 [ thread-run2-noit ./sync/futures/promise/set_value_const_pass.cpp : promise__set_value_const_p ] 433 [ thread-run2-noit ./sync/futures/promise/set_value_void_pass.cpp : promise__set_value_void_p ] 434 [ thread-run2-noit ./sync/futures/promise/emplace_pass.cpp : promise__emplace_p ] 435 [ thread-run2-noit ./sync/futures/promise/use_allocator_pass.cpp : promise__use_allocator_p ] 436 [ thread-run2-noit ./sync/futures/promise/set_exception_at_thread_exit_pass.cpp : promise__set_exception_at_thread_exit_p ] 437 [ thread-run2-noit ./sync/futures/promise/set_lvalue_at_thread_exit_pass.cpp : promise__set_lvalue_at_thread_exit_p ] 438 [ thread-run2-noit ./sync/futures/promise/set_rvalue_at_thread_exit_pass.cpp : promise__set_rvalue_at_thread_exit_p ] 439 [ thread-run2-noit ./sync/futures/promise/set_value_at_thread_exit_const_pass.cpp : promise__set_value_at_thread_exit_const_p ] 440 [ thread-run2-noit ./sync/futures/promise/set_value_at_thread_exit_void_pass.cpp : promise__set_value_at_thread_exit_void_p ] 441 ; 442 443 #explicit ts_make_ready_future ; 444 test-suite ts_make_ready_future 445 : 446 [ thread-run2-noit ./sync/futures/make_ready_future_pass.cpp : make_ready_future_p ] 447 ; 448 449 #explicit ts_future ; 450 test-suite ts_future 451 : 452 [ thread-compile-fail ./sync/futures/future/copy_assign_fail.cpp : : future__copy_assign_f ] 453 [ thread-compile-fail ./sync/futures/future/copy_ctor_fail.cpp : : future__copy_ctor_f ] 454 [ thread-run2-noit ./sync/futures/future/default_pass.cpp : future__default_p ] 455 [ thread-run2-noit ./sync/futures/future/dtor_pass.cpp : future__dtor_p ] 456 [ thread-run2-noit ./sync/futures/future/get_pass.cpp : future__get_p ] 457 [ thread-run2-noit ./sync/futures/future/get_or_pass.cpp : future__get_or_p ] 458 [ thread-run2-noit ./sync/futures/future/move_ctor_pass.cpp : future__move_ctor_p ] 459 [ thread-run2-noit ./sync/futures/future/move_assign_pass.cpp : future__move_asign_p ] 460 [ thread-run2-noit ./sync/futures/future/share_pass.cpp : future__share_p ] 461 [ thread-run2-noit ./sync/futures/future/wait_pass.cpp : future__wait_p ] 462 [ thread-run2-noit ./sync/futures/future/wait_for_pass.cpp : future__wait_for_p ] 463 [ thread-run2-noit ./sync/futures/future/wait_until_pass.cpp : future__wait_until_p ] 464 [ thread-run2-noit ./sync/futures/future/then_pass.cpp : future__then_p ] 465 [ thread-run2-noit ./sync/futures/future/then_executor_pass.cpp : future__then_executor_p ] 466 [ thread-run2-noit ./sync/futures/future/async_deferred_then_pass.cpp : future__async_def_then_p ] 467 [ thread-run2-noit ./sync/futures/future/then_deferred_pass.cpp : future__then_def_p ] 468 ; 469 470 #explicit ts_shared_future ; 471 test-suite ts_shared_future 472 : 473 [ thread-run2-noit ./sync/futures/shared_future/copy_assign_pass.cpp : shared_future__copy_assign_p ] 474 [ thread-run2-noit ./sync/futures/shared_future/copy_ctor_pass.cpp : shared_future__copy_ctor_p ] 475 [ thread-run2-noit ./sync/futures/shared_future/default_pass.cpp : shared_future__default_p ] 476 [ thread-run2-noit ./sync/futures/shared_future/dtor_pass.cpp : shared_future__dtor_p ] 477 [ thread-run2-noit ./sync/futures/shared_future/get_pass.cpp : shared_future__get_p ] 478 [ thread-run2-noit ./sync/futures/shared_future/move_ctor_pass.cpp : shared_future__move_ctor_p ] 479 [ thread-run2-noit ./sync/futures/shared_future/move_assign_pass.cpp : shared_future__move_asign_p ] 480 [ thread-run2-noit ./sync/futures/shared_future/wait_pass.cpp : shared_future__wait_p ] 481 [ thread-run2-noit ./sync/futures/shared_future/wait_for_pass.cpp : shared_future__wait_for_p ] 482 [ thread-run2-noit ./sync/futures/shared_future/wait_until_pass.cpp : shared_future__wait_until_p ] 483 [ thread-run2-noit ./sync/futures/shared_future/then_pass.cpp : shared_future__then_p ] 484 [ thread-run2-noit ./sync/futures/shared_future/then_executor_pass.cpp : shared_future__then_executor_p ] 485 ; 486 487 #explicit ts_packaged_task ; 488 test-suite ts_packaged_task 489 : 490 [ thread-run2-noit ./sync/futures/packaged_task/alloc_ctor_pass.cpp : packaged_task__alloc_ctor_p ] 491 [ thread-compile-fail ./sync/futures/packaged_task/copy_assign_fail.cpp : : packaged_task__copy_assign_f ] 492 [ thread-compile-fail ./sync/futures/packaged_task/copy_ctor_fail.cpp : : packaged_task__copy_ctor_f ] 493 [ thread-run2-noit ./sync/futures/packaged_task/default_ctor_pass.cpp : packaged_task__default_ctor_p ] 494 [ thread-run2-noit ./sync/futures/packaged_task/func_ctor_pass.cpp : packaged_task__func_ctor_p ] 495 [ thread-run2-noit ./sync/futures/packaged_task/dtor_pass.cpp : packaged_task__dtor_p ] 496 [ thread-run2-noit ./sync/futures/packaged_task/get_future_pass.cpp : packaged_task__get_future_p ] 497 [ thread-run2-noit ./sync/futures/packaged_task/move_ctor_pass.cpp : packaged_task__move_ctor_p ] 498 [ thread-run2-noit ./sync/futures/packaged_task/move_assign_pass.cpp : packaged_task__move_asign_p ] 499 [ thread-run2-noit ./sync/futures/packaged_task/operator_pass.cpp : packaged_task__operator_p ] 500 [ thread-run2-noit ./sync/futures/packaged_task/reset_pass.cpp : packaged_task__reset_p ] 501 [ thread-run2-noit ./sync/futures/packaged_task/use_allocator_pass.cpp : packaged_task__use_allocator_p ] 502 [ thread-run2-noit ./sync/futures/packaged_task/types_pass.cpp : packaged_task__types_p ] 503 [ thread-run2-noit ./sync/futures/packaged_task/member_swap_pass.cpp : packaged_task__member_swap_p ] 504 [ thread-run2-noit ./sync/futures/packaged_task/non_member_swap_pass.cpp : packaged_task__non_member_swap_p ] 505 [ thread-run2-noit ./sync/futures/packaged_task/make_ready_at_thread_exit_pass.cpp : packaged_task__make_ready_at_thread_exit_p ] 506 ; 507 508 509 #explicit ts_when_all ; 510 test-suite ts_when_all 511 : 512 [ thread-run2-noit ./sync/futures/when_all/none_pass.cpp : when_all__none_p ] 513 [ thread-run2-noit ./sync/futures/when_all/one_pass.cpp : when_all__one_p ] 514 [ thread-run2-noit ./sync/futures/when_all/iterators_pass.cpp : when_all__iterators_p ] 515 [ thread-run2-noit ./sync/futures/when_all/variadic_pass.cpp : when_all__variadic_p ] 516 ; 517 518 #explicit ts_when_any ; 519 test-suite ts_when_any 520 : 521 [ thread-run2-noit ./sync/futures/when_any/none_pass.cpp : when_any__none_p ] 522 [ thread-run2-noit ./sync/futures/when_any/one_pass.cpp : when_any__one_p ] 523 [ thread-run2-noit ./sync/futures/when_any/iterators_pass.cpp : when_any__iterators_p ] 524 [ thread-run2-noit ./sync/futures/when_any/variadic_pass.cpp : when_any__variadic_p ] 525 ; 526 527 #explicit ts_lock_guard ; 528 test-suite ts_lock_guard 529 : 530 [ thread-compile-fail ./sync/mutual_exclusion/locks/lock_guard/copy_assign_fail.cpp : : lock_guard__cons__copy_assign_f ] 531 [ thread-compile-fail ./sync/mutual_exclusion/locks/lock_guard/copy_ctor_fail.cpp : : lock_guard__cons__copy_ctor_f ] 532 [ thread-safety-compile ./sync/mutual_exclusion/locks/lock_guard/lock_guard_compile_pass.cpp : : lock_guard__lock_compile_p ] 533 [ thread-safety-compile-fail ./sync/mutual_exclusion/locks/lock_guard/lock_guard_compile_fail.cpp : : lock_guard__lock_compile_f ] 534 [ thread-safety-compile ./sync/mutual_exclusion/locks/lock_guard/lock_guard_adopt_lock_compile_pass.cpp : : lock_guard__adopt_lock_compile_p ] 535 [ thread-safety-compile-fail ./sync/mutual_exclusion/locks/lock_guard/lock_guard_adopt_lock_compile_fail.cpp : : lock_guard__adopt_lock_compile_f ] 536 [ thread-run2-noit ./sync/mutual_exclusion/locks/lock_guard/adopt_lock_pass.cpp : lock_guard__cons__adopt_lock_p ] 537 [ thread-run2-noit ./sync/mutual_exclusion/locks/lock_guard/default_pass.cpp : lock_guard__cons__default_p ] 538 [ thread-run2-noit ./sync/mutual_exclusion/locks/lock_guard/types_pass.cpp : lock_guard__types_p ] 539 [ thread-run2-noit ./sync/mutual_exclusion/locks/lock_guard/make_lock_guard_pass.cpp : make_lock_guard_p ] 540 [ thread-run2-noit ./sync/mutual_exclusion/locks/lock_guard/make_lock_guard_adopt_lock_pass.cpp : make_lock_guard__adopt_lock_p ] 541 ; 542 543 #explicit ts_unique_lock ; 544 test-suite ts_unique_lock 545 : 546 [ thread-compile-fail ./sync/mutual_exclusion/locks/unique_lock/cons/copy_assign_fail.cpp : : unique_lock__cons__copy_assign_f ] 547 [ thread-compile-fail ./sync/mutual_exclusion/locks/unique_lock/cons/copy_ctor_fail.cpp : : unique_lock__cons__copy_ctor_f ] 548 [ thread-run2-noit ./sync/mutual_exclusion/locks/unique_lock/cons/adopt_lock_pass.cpp : unique_lock__cons__adopt_lock_p ] 549 [ thread-run2-noit ./sync/mutual_exclusion/locks/unique_lock/cons/default_pass.cpp : unique_lock__cons__default_p ] 550 [ thread-run2-noit ./sync/mutual_exclusion/locks/unique_lock/cons/defer_lock_pass.cpp : unique_lock__cons__defer_lock_p ] 551 [ thread-run2-noit ./sync/mutual_exclusion/locks/unique_lock/cons/duration_pass.cpp : unique_lock__cons__duration_p ] 552 [ thread-run2-noit ./sync/mutual_exclusion/locks/unique_lock/cons/move_assign_pass.cpp : unique_lock__cons__move_assign_p ] 553 [ thread-run2-noit ./sync/mutual_exclusion/locks/unique_lock/cons/move_ctor_pass.cpp : unique_lock__cons__move_ctor_p ] 554 [ thread-run2-noit ./sync/mutual_exclusion/locks/unique_lock/cons/move_ctor_upgrade_lock_pass.cpp : uq_lk_cons_mv_c_upg_lk_p ] 555 [ thread-run2-noit ./sync/mutual_exclusion/locks/unique_lock/cons/move_ctor_upgrade_lock_try_pass.cpp : uq_lk_cons_mv_c_upg_lk_t_p ] 556 [ thread-run2-noit ./sync/mutual_exclusion/locks/unique_lock/cons/move_ctor_upgrade_lock_for_pass.cpp : uq_lk_cons_mv_c_upg_lk_f_p ] 557 [ thread-run2-noit ./sync/mutual_exclusion/locks/unique_lock/cons/move_ctor_upgrade_lock_until_pass.cpp : uq_lk_cons_mv_c_upg_lk_u_p ] 558 [ thread-run2-noit ./sync/mutual_exclusion/locks/unique_lock/cons/mutex_pass.cpp : unique_lock__cons__mutex_p ] 559 [ thread-run2-noit ./sync/mutual_exclusion/locks/unique_lock/cons/time_point_pass.cpp : unique_lock__cons__time_point_p ] 560 [ thread-run2-noit ./sync/mutual_exclusion/locks/unique_lock/cons/try_to_lock_pass.cpp : unique_lock__cons__try_to_lock_p ] 561 [ thread-run2-noit ./sync/mutual_exclusion/locks/unique_lock/locking/lock_pass.cpp : unique_lock__lock_p ] 562 [ thread-run2-noit ./sync/mutual_exclusion/locks/unique_lock/locking/try_lock_for_pass.cpp : unique_lock__try_lock_for_p ] 563 [ thread-run2-noit ./sync/mutual_exclusion/locks/unique_lock/locking/try_lock_pass.cpp : unique_lock__try_lock_p ] 564 [ thread-run2-noit ./sync/mutual_exclusion/locks/unique_lock/locking/try_lock_until_pass.cpp : unique_lock__try_lock_until_p ] 565 [ thread-run2-noit ./sync/mutual_exclusion/locks/unique_lock/locking/unlock_pass.cpp : unique_lock__unlock_p ] 566 [ thread-run2-noit ./sync/mutual_exclusion/locks/unique_lock/mod/member_swap_pass.cpp : unique_lock__member_swap_p ] 567 [ thread-run2-noit ./sync/mutual_exclusion/locks/unique_lock/mod/non_member_swap_pass.cpp : unique_lock__non_member_swap_p ] 568 [ thread-run2-noit ./sync/mutual_exclusion/locks/unique_lock/mod/release_pass.cpp : unique_lock__release_p ] 569 [ thread-run2-noit ./sync/mutual_exclusion/locks/unique_lock/obs/mutex_pass.cpp : unique_lock__mutex_p ] 570 [ thread-run2-noit ./sync/mutual_exclusion/locks/unique_lock/obs/op_bool_pass.cpp : unique_lock__op_bool_p ] 571 #[ thread-compile-fail ./sync/mutual_exclusion/locks/unique_lock/obs/op_int_fail.cpp : : unique_lock__op_int_f ] 572 [ thread-run2-noit ./sync/mutual_exclusion/locks/unique_lock/obs/owns_lock_pass.cpp : unique_lock__owns_lock_p ] 573 [ thread-run2-noit ./sync/mutual_exclusion/locks/unique_lock/types_pass.cpp : unique_lock__types_p ] 574 575 576 ; 577 578 #explicit ts_make_unique_lock ; 579 test-suite ts_make_unique_lock 580 : 581 [ thread-run2-noit ./sync/mutual_exclusion/locks/unique_lock/cons/make_unique_lock_mutex_pass.cpp : make_unique_lock__mutex_p ] 582 [ thread-run2-noit ./sync/mutual_exclusion/locks/unique_lock/cons/make_unique_lock_adopt_lock_pass.cpp : make_unique_lock__adopt_lock_p ] 583 [ thread-run2-noit ./sync/mutual_exclusion/locks/unique_lock/cons/make_unique_lock_defer_lock_pass.cpp : make_unique_lock__defer_lock_p ] 584 [ thread-run2-noit ./sync/mutual_exclusion/locks/unique_lock/cons/make_unique_lock_try_to_lock_pass.cpp : make_unique_lock__try_to_lock_p ] 585 586 [ thread-run2-noit ./sync/mutual_exclusion/locks/unique_lock/cons/make_unique_locks_mutex_pass.cpp : make_unique_locks__mutex_p ] 587 588 ; 589 590 #explicit ts_shared_lock ; 591 test-suite ts_shared_lock 592 : 593 [ thread-compile-fail ./sync/mutual_exclusion/locks/shared_lock/cons/copy_assign_fail.cpp : : shared_lock__cons__copy_assign_f ] 594 [ thread-compile-fail ./sync/mutual_exclusion/locks/shared_lock/cons/copy_ctor_fail.cpp : : shared_lock__cons__copy_ctor_f ] 595 [ thread-run2-noit ./sync/mutual_exclusion/locks/shared_lock/cons/adopt_lock_pass.cpp : shared_lock__cons__adopt_lock_p ] 596 [ thread-run2-noit ./sync/mutual_exclusion/locks/shared_lock/cons/default_pass.cpp : shared_lock__cons__default_p ] 597 [ thread-run2-noit ./sync/mutual_exclusion/locks/shared_lock/cons/defer_lock_pass.cpp : shared_lock__cons__defer_lock_p ] 598 [ thread-run2-noit ./sync/mutual_exclusion/locks/shared_lock/cons/duration_pass.cpp : shared_lock__cons__duration_p ] 599 [ thread-run2-noit ./sync/mutual_exclusion/locks/shared_lock/cons/move_assign_pass.cpp : shared_lock__cons__move_assign_p ] 600 [ thread-run2-noit ./sync/mutual_exclusion/locks/shared_lock/cons/move_ctor_pass.cpp : shared_lock__cons__move_ctor_p ] 601 [ thread-run2-noit ./sync/mutual_exclusion/locks/shared_lock/cons/move_ctor_unique_lock_pass.cpp : sh_lock_cons_move_ctor_unq_lock_p ] 602 [ thread-run2-noit ./sync/mutual_exclusion/locks/shared_lock/cons/move_ctor_upgrade_lock_pass.cpp : sh_lock_cons_move_ctor_upg_lock_p ] 603 [ thread-run2-noit ./sync/mutual_exclusion/locks/shared_lock/cons/mutex_pass.cpp : shared_lock__cons__mutex_p ] 604 [ thread-run2-noit ./sync/mutual_exclusion/locks/shared_lock/cons/time_point_pass.cpp : shared_lock__cons__time_point_p ] 605 [ thread-run2-noit ./sync/mutual_exclusion/locks/shared_lock/cons/try_to_lock_pass.cpp : shared_lock__cons__try_to_lock_p ] 606 [ thread-run2-noit ./sync/mutual_exclusion/locks/shared_lock/locking/lock_pass.cpp : shared_lock__lock_p ] 607 [ thread-run2-noit ./sync/mutual_exclusion/locks/shared_lock/locking/try_lock_for_pass.cpp : shared_lock__try_lock_for_p ] 608 [ thread-run2-noit ./sync/mutual_exclusion/locks/shared_lock/locking/try_lock_pass.cpp : shared_lock__try_lock_p ] 609 [ thread-run2-noit ./sync/mutual_exclusion/locks/shared_lock/locking/try_lock_until_pass.cpp : shared_lock__try_lock_until_p ] 610 [ thread-run2-noit ./sync/mutual_exclusion/locks/shared_lock/locking/unlock_pass.cpp : shared_lock__unlock_p ] 611 [ thread-run2-noit ./sync/mutual_exclusion/locks/shared_lock/mod/member_swap_pass.cpp : shared_lock__member_swap_p ] 612 [ thread-run2-noit ./sync/mutual_exclusion/locks/shared_lock/mod/non_member_swap_pass.cpp : shared_lock__non_member_swap_p ] 613 [ thread-run2-noit ./sync/mutual_exclusion/locks/shared_lock/mod/release_pass.cpp : shared_lock__release_p ] 614 [ thread-run2-noit ./sync/mutual_exclusion/locks/shared_lock/obs/mutex_pass.cpp : shared_lock__mutex_p ] 615 [ thread-run2-noit ./sync/mutual_exclusion/locks/shared_lock/obs/op_bool_pass.cpp : shared_lock__op_bool_p ] 616 [ thread-run2-noit ./sync/mutual_exclusion/locks/shared_lock/obs/owns_lock_pass.cpp : shared_lock__owns_lock_p ] 617 [ thread-run2-noit ./sync/mutual_exclusion/locks/shared_lock/types_pass.cpp : shared_lock__types_p ] 618 619 #[ thread-run2-h ./sync/mutual_exclusion/locks/shared_lock/cons/default_pass.cpp : shared_lock__cons__default_p ] 620 #[ thread-run2-h ./sync/mutual_exclusion/locks/shared_lock/cons/defer_lock_pass.cpp : shared_lock__cons__defer_lock_p ] 621 622 ; 623 624 #explicit ts_upgrade_lock ; 625 test-suite ts_upgrade_lock 626 : 627 [ thread-compile-fail ./sync/mutual_exclusion/locks/upgrade_lock/cons/copy_assign_fail.cpp : : upgrade_lock__cons__copy_assign_f ] 628 [ thread-compile-fail ./sync/mutual_exclusion/locks/upgrade_lock/cons/copy_ctor_fail.cpp : : upgrade_lock__cons__copy_ctor_f ] 629 [ thread-run2-noit ./sync/mutual_exclusion/locks/upgrade_lock/cons/adopt_lock_pass.cpp : upgrade_lock__cons__adopt_lock_p ] 630 [ thread-run2-noit ./sync/mutual_exclusion/locks/upgrade_lock/cons/default_pass.cpp : upgrade_lock__cons__default_p ] 631 [ thread-run2-noit ./sync/mutual_exclusion/locks/upgrade_lock/cons/defer_lock_pass.cpp : upgrade_lock__cons__defer_lock_p ] 632 [ thread-run2-noit ./sync/mutual_exclusion/locks/upgrade_lock/cons/duration_pass.cpp : upgrade_lock__cons__duration_p ] 633 [ thread-run2-noit ./sync/mutual_exclusion/locks/upgrade_lock/cons/move_assign_pass.cpp : upgrade_lock__cons__move_assign_p ] 634 [ thread-run2-noit ./sync/mutual_exclusion/locks/upgrade_lock/cons/move_ctor_pass.cpp : upgrade_lock__cons__move_ctor_p ] 635 [ thread-run2-noit ./sync/mutual_exclusion/locks/upgrade_lock/cons/move_ctor_unique_lock_pass.cpp : upg_lock_cons_mv_ctor_uq_lock_p ] 636 [ thread-run2-noit ./sync/mutual_exclusion/locks/upgrade_lock/cons/mutex_pass.cpp : upgrade_lock__cons__mutex_p ] 637 [ thread-run2-noit ./sync/mutual_exclusion/locks/upgrade_lock/cons/time_point_pass.cpp : upgrade_lock__cons__time_point_p ] 638 [ thread-run2-noit ./sync/mutual_exclusion/locks/upgrade_lock/cons/try_to_lock_pass.cpp : upgrade_lock__cons__try_to_lock_p ] 639 [ thread-run2-noit ./sync/mutual_exclusion/locks/upgrade_lock/locking/lock_pass.cpp : upgrade_lock__lock_p ] 640 [ thread-run2-noit ./sync/mutual_exclusion/locks/upgrade_lock/locking/try_lock_for_pass.cpp : upgrade_lock__try_lock_for_p ] 641 [ thread-run2-noit ./sync/mutual_exclusion/locks/upgrade_lock/locking/try_lock_pass.cpp : upgrade_lock__try_lock_p ] 642 [ thread-run2-noit ./sync/mutual_exclusion/locks/upgrade_lock/locking/try_lock_until_pass.cpp : upgrade_lock__try_lock_until_p ] 643 [ thread-run2-noit ./sync/mutual_exclusion/locks/upgrade_lock/locking/unlock_pass.cpp : upgrade_lock__unlock_p ] 644 [ thread-run2-noit ./sync/mutual_exclusion/locks/upgrade_lock/mod/member_swap_pass.cpp : upgrade_lock__member_swap_p ] 645 [ thread-run2-noit ./sync/mutual_exclusion/locks/upgrade_lock/mod/non_member_swap_pass.cpp : upgrade_lock__non_member_swap_p ] 646 [ thread-run2-noit ./sync/mutual_exclusion/locks/upgrade_lock/mod/release_pass.cpp : upgrade_lock__release_p ] 647 [ thread-run2-noit ./sync/mutual_exclusion/locks/upgrade_lock/obs/mutex_pass.cpp : upgrade_lock__mutex_p ] 648 [ thread-run2-noit ./sync/mutual_exclusion/locks/upgrade_lock/obs/op_bool_pass.cpp : upgrade_lock__op_bool_p ] 649 [ thread-run2-noit ./sync/mutual_exclusion/locks/upgrade_lock/obs/owns_lock_pass.cpp : upgrade_lock__owns_lock_p ] 650 [ thread-run2-noit ./sync/mutual_exclusion/locks/upgrade_lock/types_pass.cpp : upgrade_lock__types_p ] 651 ; 652 653 #explicit ts_strict_lock ; 654 test-suite ts_strict_lock 655 : 656 [ thread-compile-fail ./sync/mutual_exclusion/locks/strict_lock/copy_assign_fail.cpp : : strict_lock__cons__copy_assign_f ] 657 [ thread-compile-fail ./sync/mutual_exclusion/locks/strict_lock/copy_ctor_fail.cpp : : strict_lock__cons__copy_ctor_f ] 658 [ thread-run2-noit ./sync/mutual_exclusion/locks/strict_lock/default_pass.cpp : strict_lock__cons__default_p ] 659 [ thread-run2-noit ./sync/mutual_exclusion/locks/strict_lock/owns_lock_pass.cpp : strict_lock__owns_lock_p ] 660 [ thread-run2-noit ./sync/mutual_exclusion/locks/strict_lock/types_pass.cpp : strict_lock__types_p ] 661 [ thread-run2-noit ./sync/mutual_exclusion/locks/strict_lock/make_strict_lock_pass.cpp : make_strict_lock_p ] 662 ; 663 664 #explicit ts_nested_strict_lock ; 665 test-suite ts_nested_strict_lock 666 : 667 [ thread-compile-fail ./sync/mutual_exclusion/locks/nested_strict_lock/copy_assign_fail.cpp : : nested_strict_lock_cons_copy_assign_f ] 668 [ thread-compile-fail ./sync/mutual_exclusion/locks/nested_strict_lock/copy_ctor_fail.cpp : : nested_strict_lock_cons_copy_ctor_f ] 669 [ thread-run2-noit ./sync/mutual_exclusion/locks/nested_strict_lock/default_pass.cpp : nested_strict_lock__cons__default_p ] 670 [ thread-run2-noit ./sync/mutual_exclusion/locks/nested_strict_lock/owns_lock_pass.cpp : nested_strict_lock__owns_lock_p ] 671 [ thread-run2-noit ./sync/mutual_exclusion/locks/nested_strict_lock/types_pass.cpp : nested_strict_lock__types_p ] 672 [ thread-run2-noit ./sync/mutual_exclusion/locks/nested_strict_lock/make_nested_strict_lock_pass.cpp : make_nested_strict_lock_p ] 673 ; 674 675 676 #explicit ts_once ; 677 test-suite ts_once 678 : 679 #[ thread-compile-fail ./sync/mutual_exclusion/once/once_flag/assign_fail.cpp : : once_flag__assign_f ] 680 #[ thread-compile-fail ./sync/mutual_exclusion/once/once_flag/copy_fail.cpp : : once_flag__copy_f ] 681 #[ thread-run2-noit ./sync/mutual_exclusion/once/once_flag/default_pass.cpp : once_flag__default_p ] 682 [ thread-run2-noit ./sync/mutual_exclusion/once/call_once/call_once_pass.cpp : call_once_p ] 683 ; 684 685 #explicit ts_mutex ; 686 test-suite ts_mutex 687 : 688 [ thread-compile-fail ./sync/mutual_exclusion/mutex/assign_fail.cpp : : mutex__assign_f ] 689 [ thread-compile-fail ./sync/mutual_exclusion/mutex/copy_fail.cpp : : mutex__copy_f ] 690 [ thread-safety-compile ./sync/mutual_exclusion/mutex/lock_compile_pass.cpp : : mutex__lock_compile_p ] 691 [ thread-safety-compile-fail ./sync/mutual_exclusion/mutex/lock_compile_fail.cpp : : mutex__lock_compile_f ] 692 # https://bugs.llvm.org/show_bug.cgi?id=32954 693 # http://clang-developers.42468.n3.nabble.com/thread-safety-warnings-specifically-try-acquire-capability-td4059337.html 694 #[ thread-safety-compile ./sync/mutual_exclusion/mutex/try_lock_compile_pass.cpp : : mutex__try_lock_compile_p ] 695 [ thread-safety-compile-fail ./sync/mutual_exclusion/mutex/try_lock_compile_fail.cpp : : mutex__try_lock_compile_f ] 696 [ thread-run2-noit ./sync/mutual_exclusion/mutex/default_pass.cpp : mutex__default_p ] 697 [ thread-run2-noit ./sync/mutual_exclusion/mutex/lock_pass.cpp : mutex__lock_p ] 698 [ thread-run2-noit-pthread ./sync/mutual_exclusion/mutex/native_handle_pass.cpp : mutex__native_handle_p ] 699 [ thread-run2-noit ./sync/mutual_exclusion/mutex/try_lock_pass.cpp : mutex__try_lock_p ] 700 ; 701 702 #explicit ts_recursive_mutex ; 703 test-suite ts_recursive_mutex 704 : 705 [ thread-compile-fail ./sync/mutual_exclusion/recursive_mutex/assign_fail.cpp : : recursive_mutex__assign_f ] 706 [ thread-compile-fail ./sync/mutual_exclusion/recursive_mutex/copy_fail.cpp : : recursive_mutex__copy_f ] 707 [ thread-run2-noit ./sync/mutual_exclusion/recursive_mutex/default_pass.cpp : recursive_mutex__default_p ] 708 [ thread-run2-noit ./sync/mutual_exclusion/recursive_mutex/lock_pass.cpp : recursive_mutex__lock_p ] 709 [ thread-run2-noit-pthread ./sync/mutual_exclusion/recursive_mutex/native_handle_pass.cpp : recursive_mutex__native_handle_p ] 710 [ thread-run2-noit ./sync/mutual_exclusion/recursive_mutex/try_lock_pass.cpp : recursive_mutex__try_lock_p ] 711 ; 712 713 #explicit ts_recursive_timed_mutex ; 714 test-suite ts_recursive_timed_mutex 715 : 716 [ thread-compile-fail ./sync/mutual_exclusion/recursive_timed_mutex/assign_fail.cpp : : recursive_timed_mutex__assign_f ] 717 [ thread-compile-fail ./sync/mutual_exclusion/recursive_timed_mutex/copy_fail.cpp : : recursive_timed_mutex__copy_f ] 718 [ thread-run2-noit ./sync/mutual_exclusion/recursive_timed_mutex/default_pass.cpp : recursive_timed_mutex__default_p ] 719 [ thread-run2-noit ./sync/mutual_exclusion/recursive_timed_mutex/lock_pass.cpp : recursive_timed_mutex__lock_p ] 720 [ thread-run2-noit-pthread ./sync/mutual_exclusion/recursive_timed_mutex/native_handle_pass.cpp : rec_timed_mutex_native_handle_p ] 721 [ thread-run2-noit ./sync/mutual_exclusion/recursive_timed_mutex/try_lock_for_pass.cpp : rec_timed_mutex_try_lock_for_p ] 722 [ thread-run2-noit ./sync/mutual_exclusion/recursive_timed_mutex/try_lock_pass.cpp : recursive_timed_mutex__try_lock_p ] 723 [ thread-run2-noit ./sync/mutual_exclusion/recursive_timed_mutex/try_lock_until_pass.cpp : rec_timed_mutex_try_lock_until_p ] 724 ; 725 726 #explicit ts_timed_mutex ; 727 test-suite ts_timed_mutex 728 : 729 [ thread-compile-fail ./sync/mutual_exclusion/timed_mutex/assign_fail.cpp : : timed_mutex__assign_f ] 730 [ thread-compile-fail ./sync/mutual_exclusion/timed_mutex/copy_fail.cpp : : timed_mutex__copy_f ] 731 [ thread-run2-noit ./sync/mutual_exclusion/timed_mutex/default_pass.cpp : timed_mutex__default_p ] 732 [ thread-run2-noit ./sync/mutual_exclusion/timed_mutex/lock_pass.cpp : timed_mutex__lock_p ] 733 [ thread-run2-noit-pthread ./sync/mutual_exclusion/timed_mutex/native_handle_pass.cpp : timed_mutex__native_handle_p ] 734 [ thread-run2-noit ./sync/mutual_exclusion/timed_mutex/try_lock_for_pass.cpp : timed_mutex__try_lock_for_p ] 735 [ thread-run2-noit ./sync/mutual_exclusion/timed_mutex/try_lock_pass.cpp : timed_mutex__try_lock_p ] 736 [ thread-run2-noit ./sync/mutual_exclusion/timed_mutex/try_lock_until_pass.cpp : timed_mutex__try_lock_until_p ] 737 ; 738 739 #explicit ts_shared_mutex ; 740 test-suite ts_shared_mutex 741 : 742 [ thread-compile-fail ./sync/mutual_exclusion/shared_mutex/assign_fail.cpp : : shared_mutex__assign_f ] 743 [ thread-compile-fail ./sync/mutual_exclusion/shared_mutex/copy_fail.cpp : : shared_mutex__copy_f ] 744 [ thread-run2-noit ./sync/mutual_exclusion/shared_mutex/default_pass.cpp : shared_mutex__default_p ] 745 [ thread-run2-noit ./sync/mutual_exclusion/shared_mutex/lock_pass.cpp : shared_mutex__lock_p ] 746 [ thread-run2-noit ./sync/mutual_exclusion/shared_mutex/try_lock_for_pass.cpp : shared_mutex__try_lock_for_p ] 747 [ thread-run2-noit ./sync/mutual_exclusion/shared_mutex/try_lock_pass.cpp : shared_mutex__try_lock_p ] 748 [ thread-run2-noit ./sync/mutual_exclusion/shared_mutex/try_lock_until_pass.cpp : shared_mutex__try_lock_until_p ] 749 750 #[ thread-run2-h ./sync/mutual_exclusion/shared_mutex/default_pass.cpp : shared_mutex__default_p ] 751 ; 752 753 #explicit ts_null_mutex ; 754 test-suite ts_null_mutex 755 : 756 [ thread-compile-fail ./sync/mutual_exclusion/null_mutex/assign_fail.cpp : : null_mutex__assign_f ] 757 [ thread-compile-fail ./sync/mutual_exclusion/null_mutex/copy_fail.cpp : : null_mutex__copy_f ] 758 [ thread-run2-noit ./sync/mutual_exclusion/null_mutex/default_pass.cpp : null_mutex__default_p ] 759 [ thread-run2-noit ./sync/mutual_exclusion/null_mutex/lock_pass.cpp : null_mutex__lock_p ] 760 [ thread-run2-noit ./sync/mutual_exclusion/null_mutex/try_lock_for_pass.cpp : null_mutex__try_lock_for_p ] 761 [ thread-run2-noit ./sync/mutual_exclusion/null_mutex/try_lock_pass.cpp : null_mutex__try_lock_p ] 762 [ thread-run2-noit ./sync/mutual_exclusion/null_mutex/try_lock_until_pass.cpp : null_mutex__try_lock_until_p ] 763 ; 764 765 test-suite ts_sync_queue 766 : 767 [ thread-run2-noit ./sync/mutual_exclusion/sync_queue/single_thread_pass.cpp : sync_queue__single_thread_p ] 768 [ thread-run2-noit ./sync/mutual_exclusion/sync_queue/multi_thread_pass.cpp : sync_queue__multi_thread_p ] 769 ; 770 771 test-suite ts_sync_deque 772 : 773 [ thread-run2-noit ./sync/mutual_exclusion/sync_deque/single_thread_pass.cpp : sync_deque__single_thread_p ] 774 [ thread-run2-noit ./sync/mutual_exclusion/sync_deque/multi_thread_pass.cpp : sync_deque__multi_thread_p ] 775 ; 776 777 test-suite ts_sync_bounded_queue 778 : 779 [ thread-run2-noit ./sync/mutual_exclusion/sync_bounded_queue/single_thread_pass.cpp : sync_bounded_q_single_thread_p ] 780 [ thread-run2-noit ./sync/mutual_exclusion/sync_bounded_queue/multi_thread_pass.cpp : sync_bounded_q_multi_thread_p ] 781 ; 782 783 test-suite ts_sync_pq 784 : 785 [ thread-run2-noit ./sync/mutual_exclusion/sync_pq/pq_single_thread_pass.cpp : sync_pq_single_thread_p ] 786 [ thread-run2-noit ./sync/mutual_exclusion/sync_pq/pq_multi_thread_pass.cpp : sync_pq_multi_thread_p ] 787 ; 788 789 test-suite ts_sync_tq 790 : 791 [ thread-run2-noit ./sync/mutual_exclusion/sync_pq/tq_single_thread_pass.cpp : sync_tq_single_thread_p ] 792 [ thread-run2-noit ./sync/mutual_exclusion/sync_pq/tq_multi_thread_pass.cpp : sync_tq_multi_thread_p ] 793 ; 794 795 test-suite ts_scheduler 796 : 797 [ thread-run2-noit ./test_scheduled_tp.cpp : test_scheduled_tp_p ] 798 [ thread-run2-noit ./test_scheduling_adaptor.cpp : test_scheduling_adaptor_p ] 799 [ thread-run2-noit ./test_scheduler.cpp : test_scheduler_p ] 800 ; 801 802 test-suite ts_queue_views 803 : 804 [ thread-run2-noit ./sync/mutual_exclusion/queue_views/single_thread_pass.cpp : queue_views__single_thread_p ] 805 #[ thread-run2-noit ./sync/mutual_exclusion/queue_views/multi_thread_pass.cpp : queue_views__multi_thread_p ] 806 ; 807 808 test-suite ts_deque_views 809 : 810 [ thread-run2-noit ./sync/mutual_exclusion/deque_views/single_thread_pass.cpp : deque_views__single_thread_p ] 811 #[ thread-run2-noit ./sync/mutual_exclusion/deque_views/multi_thread_pass.cpp : deque_views__multi_thread_p ] 812 ; 813 814 #explicit ts_this_thread ; 815 test-suite ts_this_thread 816 : 817 [ thread-run2-noit ./threads/this_thread/get_id/get_id_pass.cpp : this_thread__get_id_p ] 818 [ thread-run2-noit ./threads/this_thread/sleep_for/sleep_for_pass.cpp : this_thread__sleep_for_p ] 819 [ thread-run2-noit ./threads/this_thread/sleep_until/sleep_until_pass.cpp : this_thread__sleep_until_p ] 820 ; 821 822 #explicit ts_thread ; 823 test-suite ts_thread 824 : 825 [ thread-compile-fail ./threads/thread/assign/copy_fail.cpp : : thread__assign__copy_f ] 826 [ thread-run2-noit ./threads/thread/assign/move_pass.cpp : thread__assign__move_p ] 827 [ thread-compile-fail ./threads/thread/constr/copy_fail.cpp : : thread__constr__copy_f ] 828 [ thread-run2-noit ./threads/thread/constr/default_pass.cpp : thread__constr__default_p ] 829 [ thread-run-lib2 ./threads/thread/constr/lambda_pass.cpp : thread__constr__lambda_p ] 830 [ thread-run-lib2 ./threads/thread/constr/F_pass.cpp : thread__constr__F_p ] 831 [ thread-run-lib2 ./threads/thread/constr/FArgs_pass.cpp : thread__constr__FArgs_p ] 832 [ thread-run2-noit ./threads/thread/constr/Frvalue_pass.cpp : thread__constr__Frvalue_p ] 833 [ thread-run2-noit ./threads/thread/constr/FrvalueArgs_pass.cpp : thread__constr__FrvalueArgs_p ] 834 [ thread-run2-noit ./threads/thread/constr/move_pass.cpp : thread__constr__move_p ] 835 [ thread-run2-noit ./threads/thread/destr/dtor_pass.cpp : thread__destr__dtor_p ] 836 [ thread-run2-noit ./threads/thread/id/hash_pass.cpp : thread__id__hash_p ] 837 [ thread-run2-noit ./threads/thread/members/detach_pass.cpp : thread__detach_p ] 838 [ thread-run2-noit ./threads/thread/members/get_id_pass.cpp : thread__get_id_p ] 839 [ thread-run2-noit ./threads/thread/members/join_pass.cpp : thread__join_p ] 840 [ thread-run2-noit ./threads/thread/members/try_join_until_pass.cpp : thread__join_until_p ] 841 [ thread-run2-noit ./threads/thread/members/try_join_for_pass.cpp : thread__join_for_p ] 842 [ thread-run2-noit ./threads/thread/members/joinable_pass.cpp : thread__joinable_p ] 843 [ thread-run2-noit ./threads/thread/members/native_handle_pass.cpp : thread__native_handle_p ] 844 [ thread-run2-noit ./threads/thread/members/swap_pass.cpp : thread__swap_p ] 845 [ thread-run2-noit ./threads/thread/non_members/swap_pass.cpp : swap_threads_p ] 846 [ thread-run2-noit ./threads/thread/static/hardware_concurrency_pass.cpp : thread__hardware_concurrency_p ] 847 ; 848 849 #explicit ts_container ; 850 test-suite ts_container 851 : 852 [ thread-run2-noit ./threads/container/thread_vector_pass.cpp : container__thread_vector_p ] 853 [ thread-run2-noit ./threads/container/thread_ptr_list_pass.cpp : container__thread_ptr_list_p ] 854 ; 855 856 explicit ts_examples_too_long ; 857 test-suite ts_examples_too_long 858 : 859 [ thread-run2 ../example/shared_mutex.cpp : ex_shared_mutex ] 860 ; 861 862 #explicit ts_examples ; 863 test-suite ts_examples 864 : 865 [ thread-run2-noit ../example/monitor.cpp : ex_monitor ] 866 [ thread-compile ../example/starvephil.cpp : : ex_starvephil ] 867 [ thread-run2 ../example/tennis.cpp : ex_tennis ] 868 [ thread-compile ../example/condition.cpp : : ex_condition ] 869 [ thread-run2-noit ../example/mutex.cpp : ex_mutex ] 870 [ thread-run2-noit ../example/once.cpp : ex_once ] 871 [ thread-run2-noit ../example/recursive_mutex.cpp : ex_recursive_mutex ] 872 [ thread-run2-noit ../example/thread.cpp : ex_thread ] 873 [ thread-run2-noit ../example/thread_group.cpp : ex_thread_group ] 874 [ thread-run2-noit ../example/tss.cpp : ex_tss ] 875 [ thread-run2 ../example/xtime.cpp : ex_xtime ] 876 [ thread-run2 ../example/shared_monitor.cpp : ex_shared_monitor ] 877 #[ thread-run ../example/vhh_shared_monitor.cpp ] 878 #[ thread-run ../example/vhh_shared_mutex.cpp ] 879 [ thread-run2 ../example/make_future.cpp : ex_make_future ] 880 [ thread-run2 ../example/future_then.cpp : ex_future_then ] 881 [ thread-run2 ../example/future_fallback_to.cpp : ex_future_fallback_to ] 882 [ thread-run2 ../example/future_unwrap.cpp : ex_future_unwrap ] 883 [ thread-run2-noit ../example/synchronized_value.cpp : ex_synchronized_value ] 884 [ thread-run2-noit ../example/synchronized_person.cpp : ex_synchronized_person ] 885 [ thread-run2-noit ../example/thread_guard.cpp : ex_thread_guard ] 886 [ thread-run2-noit ../example/std_thread_guard.cpp : ex_std_thread_guard : <toolset>gcc-4.8:<build>no ] 887 [ thread-run2-noit ../example/scoped_thread.cpp : ex_scoped_thread ] 888 [ thread-run2-noit ../example/std_scoped_thread.cpp : ex_std_scoped_thread : <toolset>gcc-4.8:<build>no ] 889 [ thread-run2-noit ../example/strict_lock.cpp : ex_strict_lock ] 890 [ thread-run2-noit ../example/ba_externallly_locked.cpp : ex_ba_externallly_locked ] 891 [ thread-run2 ../example/producer_consumer_bounded.cpp : ex_producer_consumer_bounded ] 892 [ thread-run2 ../example/producer_consumer.cpp : ex_producer_consumer ] 893 [ thread-run2 ../example/producer_consumer2.cpp : ex_producer_consumer2 ] 894 [ thread-run2 ../example/not_interleaved.cpp : ex_not_interleaved ] 895 [ thread-run2 ../example/lambda_future.cpp : ex_lambda_future ] 896 [ thread-run2 ../example/not_interleaved2.cpp : ex_not_interleaved2 ] 897 [ thread-run2 ../example/thread_pool.cpp : ex_thread_pool ] 898 [ thread-run2 ../example/user_scheduler.cpp : ex_user_scheduler ] 899 [ thread-run2 ../example/executor.cpp : ex_executor ] 900 [ thread-run2 ../example/generic_executor_ref.cpp : ex_generic_executor_ref ] 901 [ thread-run2 ../example/serial_executor.cpp : ex_serial_executor ] 902 #[ thread-run2 ../example/serial_executor_cont.cpp : ex_serial_executor_cont ] 903 [ thread-run2 ../example/future_when_all.cpp : ex_future_when_all ] 904 [ thread-run2 ../example/parallel_accumulate.cpp : ex_parallel_accumulate ] 905 [ thread-run2 ../example/parallel_quick_sort.cpp : ex_parallel_quick_sort ] 906 [ thread-run2 ../example/with_lock_guard.cpp : ex_with_lock_guard ] 907 [ thread-run2 ../example/fib_task_region.cpp : ex_fib_task_region ] 908 ; 909 910 #explicit ts_shared_upwards ; 911 test-suite ts_shared_upwards 912 : 913 [ thread-run2-noit ./sync/mutual_exclusion/locks/unique_lock/cons/move_ctor_shared_lock_try_pass.cpp : uq_lock_cons_mv_ctor_sh_lock_try_p ] 914 [ thread-run2-noit ./sync/mutual_exclusion/locks/unique_lock/cons/move_ctor_shared_lock_for_pass.cpp : uq_lock_cons_mv_ctor_sh_lock_for_p ] 915 [ thread-run2-noit ./sync/mutual_exclusion/locks/unique_lock/cons/move_ctor_shared_lock_until_pass.cpp : uq_lock_cons_mv_ctor_sh_lock_until_p ] 916 917 [ thread-run2-noit ./sync/mutual_exclusion/locks/upgrade_lock/cons/move_ctor_shared_lock_try_pass.cpp : upg_lock_cons_move_ctor_sh_lock_try_p ] 918 [ thread-run2-noit ./sync/mutual_exclusion/locks/upgrade_lock/cons/move_ctor_shared_lock_for_pass.cpp : upg_lock_cons_move_ctor_sh_lock_for_p ] 919 [ thread-run2-noit ./sync/mutual_exclusion/locks/upgrade_lock/cons/move_ctor_shared_lock_until_pass.cpp : upg_lock_cons_move_ctor_sh_lock_untl_p ] 920 ; 921 922 923 #explicit ts_shared_lock_guard ; 924 test-suite ts_shared_lock_guard 925 : 926 [ thread-compile-fail ./sync/mutual_exclusion/locks/shared_lock_guard/copy_assign_fail.cpp : : shared_lock_guard__cons__copy_assign_f ] 927 [ thread-compile-fail ./sync/mutual_exclusion/locks/shared_lock_guard/copy_ctor_fail.cpp : : shared_lock_guard__cons__copy_ctor_f ] 928 [ thread-run2-noit ./sync/mutual_exclusion/locks/shared_lock_guard/adopt_lock_pass.cpp : shared_lock_guard__cons__adopt_lock_p ] 929 [ thread-run2-noit ./sync/mutual_exclusion/locks/shared_lock_guard/default_pass.cpp : shared_lock_guard__cons__default_p ] 930 [ thread-run2-noit ./sync/mutual_exclusion/locks/shared_lock_guard/types_pass.cpp : shared_lock_guard__types_p ] 931 ; 932 933 #explicit ts_reverse_lock ; 934 test-suite ts_reverse_lock 935 : 936 [ thread-compile-fail ./sync/mutual_exclusion/locks/reverse_lock/copy_assign_fail.cpp : : reverse_lock__copy_assign_f ] 937 [ thread-compile-fail ./sync/mutual_exclusion/locks/reverse_lock/copy_ctor_fail.cpp : : reverse_lock__copy_ctor_f ] 938 [ thread-run2-noit ./sync/mutual_exclusion/locks/reverse_lock/unique_lock_ctor_pass.cpp : reverse_lock__unique_lock_ctor_p ] 939 [ thread-run2-noit ./sync/mutual_exclusion/locks/reverse_lock/types_pass.cpp : reverse_lock__types_p ] 940 ; 941 942 943 #explicit ts_synchronized_value ; 944 test-suite ts_synchronized_value 945 : 946 [ thread-run2-noit ./sync/mutual_exclusion/synchronized_value/copy_assign_pass.cpp : synchronized_value__copy_assign_p ] 947 [ thread-run2-noit ./sync/mutual_exclusion/synchronized_value/copy_ctor_pass.cpp : synchronized_value__copy_ctor_p ] 948 [ thread-run2-noit ./sync/mutual_exclusion/synchronized_value/copy_T_assign_pass.cpp : synchronized_value__copy_T_assign_p ] 949 [ thread-run2-noit ./sync/mutual_exclusion/synchronized_value/copy_T_ctor_pass.cpp : synchronized_value__copy_T_ctor_p ] 950 [ thread-run2-noit ./sync/mutual_exclusion/synchronized_value/default_ctor_pass.cpp : synchronized_value__default_ctor_p ] 951 [ thread-run2-noit ./sync/mutual_exclusion/synchronized_value/indirect_pass.cpp : synchronized_value__indirect_p ] 952 [ thread-run2-noit ./sync/mutual_exclusion/synchronized_value/move_assign_pass.cpp : synchronized_value__move_assign_p ] 953 [ thread-run2-noit ./sync/mutual_exclusion/synchronized_value/move_ctor_pass.cpp : synchronized_value__move_ctor_p ] 954 [ thread-run2-noit ./sync/mutual_exclusion/synchronized_value/move_T_assign_pass.cpp : synchronized_value__move_T_assign_p ] 955 [ thread-run2-noit ./sync/mutual_exclusion/synchronized_value/move_T_ctor_pass.cpp : synchronized_value__move_T_ctor_p ] 956 [ thread-run2-noit ./sync/mutual_exclusion/synchronized_value/swap_pass.cpp : synchronized_value__swap_p ] 957 [ thread-run2-noit ./sync/mutual_exclusion/synchronized_value/swap_T_pass.cpp : synchronized_value__swap_T_p ] 958 [ thread-run2-noit ./sync/mutual_exclusion/synchronized_value/synchronize_pass.cpp : synchronized_value__synchronize_p ] 959 [ thread-run2-noit ./sync/mutual_exclusion/synchronized_value/call_pass.cpp : synchronized_value__call_p ] 960 961 ; 962 963 964 test-suite ts_with_lock_guard 965 : 966 [ thread-run2-noit ./sync/mutual_exclusion/with_lock_guard/with_lock_guard_simple.cpp : with_lock_guard_simple_p ] 967 [ thread-run2-noit ./sync/mutual_exclusion/with_lock_guard/with_lock_guard_bind.cpp : with_lock_guard_bind_p ] 968 [ thread-run2-noit ./sync/mutual_exclusion/with_lock_guard/with_lock_guard_move.cpp : with_lock_guard_move_p ] 969 [ thread-run2-noit ./sync/mutual_exclusion/with_lock_guard/with_lock_guard_lambda.cpp : with_lock_guard_lambda_p ] 970 ; 971 972 explicit ts_invoke ; 973 test-suite ts_invoke 974 : 975 [ thread-run2-noit ./functional/invoke/invoke_int_0_pass.cpp : invoke_int_0_p ] 976 [ thread-run2-noit ./functional/invoke/invoke_lvalue_pass.cpp : invoke_lvalue_p ] 977 [ thread-run2-noit ./functional/invoke/invoke_rvalue_pass.cpp : invoke_rvalue_p ] 978 ; 979 980 explicit ts_invoker ; 981 test-suite ts_invoker 982 : 983 [ thread-run2-noit ./functional/invoker/invoker_int_0_pass.cpp : invoker_int_0_p ] 984 [ thread-run2-noit ./functional/invoker/invoker_lvalue_pass.cpp : invoker_lvalue_p ] 985 [ thread-run2-noit ./functional/invoker/invoker_rvalue_pass.cpp : invoker_rvalue_p ] 986 ; 987 988 989 990 explicit ts_more ; 991 test-suite ts_more 992 : 993 [ thread-run test_7666.cpp ] 994 [ thread-run test_7720.cpp ] 995 [ thread-run test_7755.cpp ] 996 [ thread-run test_8455.cpp ] 997 [ thread-run test_8508.cpp ] 998 #[ thread-run test_8557.cpp ] 999 [ thread-run test_8586.cpp ] 1000 [ thread-run test_8943.cpp ] 1001 [ thread-run test_8960.cpp ] 1002 [ thread-run test_9079_a.cpp ] 1003 [ thread-run test_9079_b.cpp ] 1004 [ thread-run test_9192.cpp ] 1005 #[ thread-run test_9303.cpp ] 1006 #[ thread-run test_9720.cpp ] 1007 #[ thread-run test_10125.cpp ] 1008 #[ thread-run test_10128.cpp ] 1009 #[ thread-run test_10340.cpp ] 1010 ; 1011 1012 explicit ts_more_cpp11 ; 1013 test-suite ts_more_cpp11 1014 : 1015 [ thread-run test_8596.cpp ] 1016 [ thread-run test_8600.cpp ] 1017 ; 1018 1019 explicit perf ; 1020 test-suite perf 1021 : 1022 #[ thread-run ../example/perf_condition_variable.cpp ] 1023 #[ thread-run ../example/perf_shared_mutex.cpp ] 1024 ; 1025 1026 1027 #explicit ts_exception_list ; 1028 test-suite ts_exception_list 1029 : 1030 [ thread-run2-noit ./experimental/parallel/v1/exception_list_pass.cpp : exception_list_p ] 1031 ; 1032 1033 #explicit ts_task_region ; 1034 test-suite ts_task_region 1035 : 1036 [ thread-run2-noit ./experimental/parallel/v2/task_region_pass.cpp : task_region_p ] 1037 ; 1038 1039 explicit ts_other ; 1040 test-suite ts_other 1041 : 1042 [ thread-run2 ../example/this_executor.cpp : ex_this_executor ] 1043 [ thread-run2 ../example/default_executor.cpp : ex_default_executor ] 1044 ; 1045 1046 explicit ts_ ; 1047 test-suite ts_ 1048 : 1049 #[ thread-run test_11256.cpp ] 1050 #[ thread-run test_11256.cpp ] 1051 #[ thread-run test_11499.cpp ] 1052 #[ thread-run test_11611.cpp ] 1053 #[ thread-run test_11818.cpp ] 1054 #[ thread-run test_11796.cpp ] 1055 #[ thread-run test_12293.cpp ] 1056 #[ thread-run test_12949.cpp ] 1057 #[ thread-run test_13480b.cpp ] 1058 [ thread-run test_13561.cpp ] 1059 1060 ; 1061 1062 explicit test_time_jumps_1_obj ; 1063 obj test_time_jumps_1_obj : test_time_jumps.cpp : 1064 # BOOST_THREAD_USES_MOVE is required to prevent ambiguity between the two definitions 1065 # of boost::move when using sync_priority_queue/sync_timed_queue with POD data types. 1066 <define>BOOST_THREAD_USES_MOVE 1067 <define>BOOST_THREAD_PROVIDES_FUTURE 1068 ; 1069 1070 explicit test_time_jumps_2_obj ; 1071 obj test_time_jumps_2_obj : test_time_jumps.cpp : 1072 # BOOST_THREAD_USES_MOVE is required to prevent ambiguity between the two definitions 1073 # of boost::move when using sync_priority_queue/sync_timed_queue with POD data types. 1074 <define>BOOST_THREAD_USES_MOVE 1075 <define>BOOST_THREAD_PROVIDES_FUTURE 1076 <define>BOOST_THREAD_PROVIDES_SHARED_MUTEX_UPWARDS_CONVERSIONS 1077 ; 1078 1079 explicit test_time_jumps_3_obj ; 1080 obj test_time_jumps_3_obj : test_time_jumps.cpp : 1081 # BOOST_THREAD_USES_MOVE is required to prevent ambiguity between the two definitions 1082 # of boost::move when using sync_priority_queue/sync_timed_queue with POD data types. 1083 <define>BOOST_THREAD_USES_MOVE 1084 <define>BOOST_THREAD_PROVIDES_FUTURE 1085 <define>BOOST_THREAD_PROVIDES_SHARED_MUTEX_UPWARDS_CONVERSIONS 1086 <define>BOOST_THREAD_V2_SHARED_MUTEX 1087 ; 1088 1089 explicit test_time_jumps ; 1090 test-suite test_time_jumps 1091 : 1092 [ exe test_time_jumps_1 : test_time_jumps_1_obj ../build//boost_thread ] 1093 [ exe test_time_jumps_2 : test_time_jumps_2_obj ../build//boost_thread ] 1094 [ exe test_time_jumps_3 : test_time_jumps_3_obj ../build//boost_thread ] 1095 ; 1096 1097 test-suite test_self_contained_headers : [ generate_self_contained_header_tests ] ; 1098} 1099