1#  Boost.SmartPtr Library test Jamfile
2#
3#  Copyright (c) 2003-2018 Peter Dimov
4#  Copyright (c) 2003 Dave Abrahams
5#
6#  Distributed under the Boost Software License, Version 1.0. (See
7#  accompanying file LICENSE_1_0.txt or copy at
8#  http://www.boost.org/LICENSE_1_0.txt)
9
10import testing ;
11
12project
13    : requirements
14      <toolset>gcc:<cxxflags>-Wno-non-virtual-dtor
15      <toolset>gcc:<cxxflags>-Wno-deprecated-declarations
16      #<toolset>gcc:<cxxflags>-Wno-delete-non-virtual-dtor (not in 4.4/4.6)
17    ;
18
19# quick test (for CI)
20run quick.cpp ;
21
22# full test suite
23run smart_ptr_test.cpp ;
24run shared_ptr_basic_test.cpp ;
25run shared_ptr_test.cpp ;
26run weak_ptr_test.cpp ;
27run weak_ptr_move_test.cpp ;
28run shared_from_this_test.cpp ;
29run get_deleter_test.cpp ;
30run intrusive_ptr_test.cpp ;
31run intrusive_ptr_move_test.cpp ;
32run intrusive_ref_counter_test.cpp ;
33run atomic_count_test.cpp ;
34run lw_mutex_test.cpp ;
35run lw_mutex_test.cpp : : : <define>BOOST_USE_WINDOWS_H : lw_mutex_test.win_h ;
36compile-fail shared_ptr_assign_fail.cpp ;
37compile-fail shared_ptr_delete_fail.cpp ;
38compile-fail shared_ptr_compare_fail.cpp ;
39run shared_ptr_alloc2_test.cpp ;
40run pointer_cast_test.cpp ;
41run cpp11_pointer_cast_test.cpp ;
42compile pointer_to_other_test.cpp ;
43run auto_ptr_rv_test.cpp ;
44run shared_ptr_alias_test.cpp ;
45run shared_ptr_rv_test.cpp ;
46run shared_ptr_rv_pointer_cast_test.cpp ;
47run shared_ptr_move_test.cpp ;
48run shared_ptr_alias_move_test.cpp ;
49run shared_ptr_reinterpret_pointer_cast_test.cpp ;
50compile-fail shared_ptr_pv_fail.cpp ;
51run sp_unary_addr_test.cpp ;
52compile-fail scoped_ptr_eq_fail.cpp ;
53compile-fail scoped_array_eq_fail.cpp ;
54run esft_regtest.cpp ;
55run yield_k_test.cpp ;
56run yield_k_test.cpp : : : <threading>multi : yield_k_test.mt ;
57run spinlock_test.cpp ;
58run spinlock_try_test.cpp ;
59run spinlock_try_test.cpp : : : <threading>multi : spinlock_try_test.mt ;
60run spinlock_pool_test.cpp
61  : : :
62  # msvc-8.0, 9.0 optimizer codegen bug for `x % 41`
63  <toolset>msvc-8.0,<variant>release:<build>no
64  <toolset>msvc-9.0,<variant>release:<build>no ;
65
66run make_shared_test.cpp ;
67run make_shared_move_emulation_test.cpp ;
68run make_shared_perfect_forwarding_test.cpp ;
69run shared_ptr_convertible_test.cpp ;
70run wp_convertible_test.cpp ;
71run ip_convertible_test.cpp ;
72run allocate_shared_test.cpp ;
73run sp_atomic_test.cpp ;
74run esft_void_test.cpp ;
75run esft_second_ptr_test.cpp ;
76run make_shared_esft_test.cpp ;
77run allocate_shared_esft_test.cpp ;
78run sp_recursive_assign_test.cpp ;
79run sp_recursive_assign2_test.cpp ;
80run sp_recursive_assign_rv_test.cpp ;
81run sp_recursive_assign2_rv_test.cpp ;
82
83compile-fail auto_ptr_lv_fail.cpp
84  : <toolset>gcc-4.4.7:<build>no ;
85
86run atomic_count_test2.cpp ;
87run sp_typeinfo_test.cpp ;
88compile make_shared_fp_test.cpp ;
89run sp_hash_test.cpp ;
90run get_deleter_array_test.cpp ;
91run ip_hash_test.cpp ;
92run owner_less_test.cpp ;
93run sp_unique_ptr_test.cpp ;
94run sp_array_test.cpp ;
95compile sp_array_cv_test.cpp ;
96run sp_convertible_test.cpp ;
97run sp_array_n_test.cpp ;
98run sp_array_cast_test.cpp ;
99run sp_zero_compare_test.cpp ;
100run sp_nullptr_test.cpp ;
101run sa_nullptr_test.cpp ;
102run shared_ptr_alloc3_test.cpp ;
103run shared_ptr_alloc11_test.cpp ;
104run shared_ptr_alloc_construct11_test.cpp ;
105run allocate_shared_alloc11_test.cpp ;
106run allocate_shared_construct11_test.cpp ;
107run sp_interlocked_test.cpp ;
108
109compile-fail array_fail_spa_sp_c.cpp ;
110compile-fail array_fail_sp_spa_c.cpp ;
111compile-fail array_fail_spa_spa_c.cpp ;
112compile-fail array_fail_spa_wp_c.cpp ;
113compile-fail array_fail_sp_wpa_c.cpp ;
114compile-fail array_fail_spa_wpa_c.cpp ;
115compile-fail array_fail_wpa_wp_c.cpp ;
116compile-fail array_fail_wp_wpa_c.cpp ;
117compile-fail array_fail_wpa_wpa_c.cpp ;
118compile-fail array_fail_ap_spa_c.cpp ;
119compile-fail array_fail_upa_sp_c.cpp ;
120compile-fail array_fail_up_spa_c.cpp ;
121
122compile-fail array_fail_spa_sp_mc.cpp ;
123compile-fail array_fail_sp_spa_mc.cpp ;
124compile-fail array_fail_spa_spa_mc.cpp ;
125compile-fail array_fail_spa_wp_mc.cpp ;
126compile-fail array_fail_sp_wpa_mc.cpp ;
127compile-fail array_fail_spa_wpa_mc.cpp ;
128compile-fail array_fail_wpa_wp_mc.cpp ;
129compile-fail array_fail_wp_wpa_mc.cpp ;
130compile-fail array_fail_wpa_wpa_mc.cpp ;
131compile-fail array_fail_ap_spa_mc.cpp ;
132compile-fail array_fail_upa_sp_mc.cpp ;
133compile-fail array_fail_up_spa_mc.cpp ;
134
135compile-fail array_fail_spa_sp_a.cpp ;
136compile-fail array_fail_sp_spa_a.cpp ;
137compile-fail array_fail_spa_spa_a.cpp ;
138compile-fail array_fail_spa_wp_a.cpp ;
139compile-fail array_fail_sp_wpa_a.cpp ;
140compile-fail array_fail_spa_wpa_a.cpp ;
141compile-fail array_fail_wpa_wp_a.cpp ;
142compile-fail array_fail_wp_wpa_a.cpp ;
143compile-fail array_fail_wpa_wpa_a.cpp ;
144compile-fail array_fail_ap_spa_a.cpp ;
145compile-fail array_fail_upa_sp_a.cpp ;
146compile-fail array_fail_up_spa_a.cpp ;
147
148compile-fail array_fail_spa_sp_ma.cpp ;
149compile-fail array_fail_sp_spa_ma.cpp ;
150compile-fail array_fail_spa_spa_ma.cpp ;
151compile-fail array_fail_spa_wp_ma.cpp ;
152compile-fail array_fail_sp_wpa_ma.cpp ;
153compile-fail array_fail_spa_wpa_ma.cpp ;
154compile-fail array_fail_wpa_wp_ma.cpp ;
155compile-fail array_fail_wp_wpa_ma.cpp ;
156compile-fail array_fail_wpa_wpa_ma.cpp ;
157compile-fail array_fail_ap_spa_ma.cpp ;
158compile-fail array_fail_upa_sp_ma.cpp ;
159compile-fail array_fail_up_spa_ma.cpp ;
160
161compile-fail array_fail_dereference.cpp ;
162compile-fail array_fail_member_access.cpp ;
163compile-fail array_fail_array_access.cpp ;
164
165run make_shared_array_test.cpp
166  : : : <toolset>msvc-8.0:<build>no ;
167run make_shared_arrays_test.cpp ;
168run make_shared_array_throws_test.cpp
169  : : : <toolset>msvc-8.0:<build>no ;
170run make_shared_array_esft_test.cpp
171  : : : <toolset>msvc-8.0:<build>no ;
172run make_shared_array_noinit_test.cpp
173  : : : <toolset>msvc-8.0:<build>no ;
174run make_shared_array_value_test.cpp
175  : : : <toolset>msvc-8.0:<build>no ;
176run allocate_shared_array_test.cpp ;
177run allocate_shared_arrays_test.cpp ;
178run allocate_shared_array_throws_test.cpp
179  : : : <toolset>msvc-8.0:<build>no ;
180run allocate_shared_array_esft_test.cpp
181  : : : <toolset>msvc-8.0:<build>no ;
182run allocate_shared_array_noinit_test.cpp
183  : : : <toolset>msvc-8.0:<build>no ;
184run allocate_shared_array_value_test.cpp
185  : : : <toolset>msvc-8.0:<build>no ;
186run allocate_shared_array_construct_test.cpp ;
187
188run make_unique_test.cpp ;
189run make_unique_args_test.cpp ;
190run make_unique_value_test.cpp
191  : : : <toolset>gcc-4.6:<cxxflags>-fno-deduce-init-list ;
192run make_unique_noinit_test.cpp ;
193run make_unique_throws_test.cpp ;
194run make_unique_array_test.cpp ;
195run make_unique_array_noinit_test.cpp ;
196run make_unique_array_throws_test.cpp ;
197
198run shared_from_raw_test.cpp ;
199run shared_from_raw_test2.cpp ;
200run shared_from_raw_test3.cpp ;
201run shared_from_raw_test4.cpp ;
202run shared_from_raw_test5.cpp ;
203run shared_from_raw_test6.cpp ;
204
205run weak_from_raw_test.cpp ;
206run weak_from_raw_test2.cpp ;
207run weak_from_raw_test3.cpp ;
208run weak_from_raw_test4.cpp ;
209run weak_from_raw_test5.cpp ;
210
211compile sp_explicit_inst_test.cpp ;
212
213run weak_from_this_test.cpp ;
214run weak_from_this_test2.cpp ;
215
216run sp_bml_unique_ptr_test.cpp ;
217
218run sp_hash_test2.cpp ;
219run sp_hash_test3.cpp ;
220
221run pointer_cast_test2.cpp ;
222
223compile-fail pointer_cast_st_fail.cpp ;
224compile-fail pointer_cast_st_fail2.cpp ;
225compile-fail pointer_cast_st_fail3.cpp ;
226
227compile-fail pointer_cast_co_fail.cpp ;
228compile-fail pointer_cast_co_fail2.cpp ;
229compile-fail pointer_cast_co_fail3.cpp ;
230
231compile-fail pointer_cast_dy_fail.cpp ;
232compile-fail pointer_cast_dy_fail2.cpp ;
233compile-fail pointer_cast_dy_fail3.cpp ;
234
235run sp_nothrow_test.cpp ;
236
237compile make_shared_msvc_test.cpp ;
238
239compile lwm_win32_cs_test.cpp ;
240
241run atomic_sp_test.cpp ;
242
243run sp_constexpr_test.cpp ;
244run sp_constexpr_test2.cpp ;
245
246run atomic_sp_constexpr_test.cpp ;
247
248run shared_ptr_fn_test.cpp ;
249
250run get_deleter_test2.cpp ;
251run get_deleter_test3.cpp ;
252run get_deleter_array_test2.cpp ;
253run get_deleter_array_test3.cpp
254  : : : <toolset>msvc-8.0:<build>no ;
255
256run sp_convertible_test2.cpp ;
257
258run local_sp_test.cpp ;
259run lsp_array_test.cpp ;
260run lsp_array_n_test.cpp ;
261run lsp_array_cv_test.cpp ;
262run lsp_array_cast_test.cpp ;
263
264run get_local_deleter_test.cpp ;
265run get_local_deleter_test2.cpp ;
266run get_local_deleter_test3.cpp ;
267run get_local_deleter_array_test.cpp ;
268run get_local_deleter_array_test2.cpp ;
269
270run make_local_shared_test.cpp ;
271run make_local_shared_esft_test.cpp ;
272run allocate_local_shared_test.cpp ;
273run allocate_local_shared_esft_test.cpp ;
274
275run make_local_shared_array_test.cpp ;
276run make_local_shared_arrays_test.cpp
277  : : : <toolset>gcc-4.6.3_0x:<cxxflags>-fno-deduce-init-list ;
278run make_local_shared_array_throws_test.cpp ;
279run make_local_shared_array_esft_test.cpp ;
280run make_local_shared_array_noinit_test.cpp ;
281run make_local_shared_array_value_test.cpp ;
282run allocate_local_shared_array_test.cpp ;
283run allocate_local_shared_arrays_test.cpp
284  : : : <toolset>gcc-4.6.3_0x:<cxxflags>-fno-deduce-init-list ;
285run allocate_local_shared_array_throws_test.cpp ;
286run allocate_local_shared_array_esft_test.cpp ;
287run allocate_local_shared_array_noinit_test.cpp ;
288run allocate_local_shared_array_value_test.cpp ;
289run allocate_local_shared_array_construct_test.cpp ;
290
291run local_sp_fn_test.cpp ;
292run lsp_convertible_test.cpp ;
293run lsp_convertible_test2.cpp ;
294
295run make_shared_array_tmp_test.cpp
296  : : : <toolset>msvc-8.0:<build>no ;
297
298run lw_thread_test.cpp
299  : : : <threading>multi ;
300
301compile sp_windows_h_test.cpp ;
302compile spinlock_windows_h_test.cpp ;
303compile yield_k_windows_h_test.cpp ;
304
305lib dll_test : dll_test_lib.cpp : <link>shared:<define>DLL_TEST_DYN_LINK=1 ;
306explicit dll_test ;
307
308run dll_test_main.cpp dll_test : : : <link>static : dll_test_static ;
309run dll_test_main.cpp dll_test : : : <link>shared : dll_test_shared ;
310
311run make_shared_const_test.cpp ;
312run make_local_shared_const_test.cpp ;
313
314lib abi_test_mt : abi_test_lib.cpp : <link>static ;
315explicit abi_test_mt ;
316
317obj abi_test_lib_nt : abi_test_lib.cpp : <define>BOOST_DISABLE_THREADS ;
318explicit abi_test_lib_nt ;
319
320lib abi_test_nt : abi_test_lib_nt : <link>static ;
321explicit abi_test_nt ;
322
323run abi_test_main.cpp abi_test_mt : : : <define>BOOST_DISABLE_THREADS : abi_test_nt_mt ;
324run abi_test_main.cpp abi_test_nt : : : : abi_test_mt_nt ;
325
326run abi_test_main.cpp abi_test_mt/<cxxstd>0x : : : <cxxstd>98 : abi_test_03_11 ;
327run abi_test_main.cpp abi_test_mt/<cxxstd>98 : : : <cxxstd>0x : abi_test_11_03 ;
328
329run weak_ptr_alias_test.cpp ;
330run weak_ptr_alias_move_test.cpp ;
331
332run sp_typeinfo_test.cpp : : : <rtti>off : sp_typeinfo_test_no_rtti ;
333
334run get_deleter_test.cpp : : : <rtti>off <toolset>gcc-4.4.7,<cxxstd>0x:<build>no : get_deleter_test_no_rtti ;
335run get_deleter_test2.cpp : : : <rtti>off <toolset>gcc-4.4.7,<cxxstd>0x:<build>no : get_deleter_test2_no_rtti ;
336run get_deleter_test3.cpp : : : <rtti>off <toolset>gcc-4.4.7,<cxxstd>0x:<build>no : get_deleter_test3_no_rtti ;
337
338run shared_from_test.cpp ;
339run weak_from_test.cpp ;
340run weak_from_test2.cpp ;
341
342run allocate_unique_aggregate_test.cpp ;
343run allocate_unique_args_test.cpp ;
344run allocate_unique_array_construct_test.cpp ;
345run allocate_unique_array_noinit_test.cpp ;
346run allocate_unique_arrays_test.cpp ;
347run allocate_unique_array_test.cpp ;
348run allocate_unique_array_throws_test.cpp ;
349run allocate_unique_array_value_test.cpp ;
350run allocate_unique_construct_test.cpp ;
351run allocate_unique_noinit_test.cpp ;
352run allocate_unique_test.cpp ;
353run allocate_unique_throws_test.cpp ;
354run allocate_unique_value_test.cpp ;
355
356run sp_guides_test.cpp ;
357run sp_guides_test2.cpp ;
358run wp_guides_test.cpp ;
359
360compile-fail shared_from_fail.cpp ;
361compile-fail weak_from_fail.cpp ;
362
363compile sp_override_test.cpp ;
364compile sp_pedantic_test.cpp
365  : <warnings>pedantic
366    <toolset>msvc:<warnings-as-errors>on
367    <toolset>gcc:<warnings-as-errors>on
368    <toolset>clang:<warnings-as-errors>on ;
369
370run sp_owner_before_test.cpp ;
371run sp_owner_equals_test.cpp ;
372run lsp_owner_before_test.cpp ;
373run lsp_owner_equals_test.cpp ;
374
375run owner_equal_to_test.cpp ;
376run owner_equal_to_test2.cpp ;
377
378run owner_less_test2.cpp ;
379
380run ip_hash_test2.cpp ;
381run sp_hash_test4.cpp ;
382run lsp_hash_test.cpp ;
383run lsp_hash_test2.cpp ;
384
385run atomic_count_mt_test.cpp
386  : : : <threading>multi ;
387
388run spinlock_mt_test.cpp
389  : : : <threading>multi ;
390
391run spinlock_pool_mt_test.cpp
392  : : : <threading>multi ;
393
394run shared_ptr_mt_test.cpp
395  : : : <threading>multi ;
396
397run weak_ptr_mt_test.cpp
398  : : : <threading>multi ;
399
400compile sp_report_implementation.cpp ;
401
402run sp_owner_hash_value_test.cpp ;
403
404run wp_hash_test.cpp ;
405run wp_hash_test2.cpp ;
406
407run wp_unordered_test.cpp ;
408
409run owner_hash_test.cpp ;
410run sp_unordered_test.cpp ;
411