Jamfile.v2 62 KB

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