1#  Boost.Atomic Library test Jamfile
2#
3#  Copyright (c) 2011 Helge Bahmann
4#  Copyright (c) 2012 Tim Blechmann
5#  Copyright (c) 2020 Andrey Semashev
6#
7#  Distributed under the Boost Software License, Version 1.0. (See
8#  accompanying file LICENSE_1_0.txt or copy at
9#  http://www.boost.org/LICENSE_1_0.txt)
10
11import testing ;
12
13project boost/atomic/test
14    : requirements
15      <threading>multi
16      <library>/boost/chrono//boost_chrono
17      <library>/boost/thread//boost_thread
18      <library>/boost/atomic//boost_atomic
19      <target-os>windows:<define>BOOST_USE_WINDOWS_H
20      <toolset>gcc,<target-os>windows:<linkflags>"-lkernel32"
21      # Variadic macros and empty macro arguments are used by Boost.Preprocessor even in C++03 mode, which makes gcc and clang complain
22      <toolset>gcc:<cxxflags>"-Wno-variadic-macros"
23      <toolset>clang:<cxxflags>"-Wno-c99-extensions"
24    ;
25
26test-suite atomic
27    : [ run atomic_api.cpp ]
28      [ run atomic_ref_api.cpp ]
29      [ run atomic_api.cpp : : : <define>BOOST_ATOMIC_FORCE_FALLBACK : fallback_atomic_api ]
30      [ run atomic_ref_api.cpp : : : <define>BOOST_ATOMIC_FORCE_FALLBACK : fallback_atomic_ref_api ]
31      [ run wait_api.cpp ]
32      [ run wait_ref_api.cpp ]
33      [ run wait_api.cpp : : : <define>BOOST_ATOMIC_FORCE_FALLBACK : fallback_wait_api ]
34      [ run wait_ref_api.cpp : : : <define>BOOST_ATOMIC_FORCE_FALLBACK : fallback_wait_ref_api ]
35      [ run wait_fuzz.cpp ]
36      [ run wait_fuzz.cpp : : : <define>BOOST_ATOMIC_FORCE_FALLBACK : fallback_wait_fuzz ]
37      [ run ipc_atomic_api.cpp ]
38      [ run ipc_atomic_ref_api.cpp ]
39      [ run ipc_wait_api.cpp ]
40      [ run ipc_wait_ref_api.cpp ]
41      [ run atomicity.cpp ]
42      [ run atomicity_ref.cpp ]
43      [ run ordering.cpp ]
44      [ run ordering_ref.cpp ]
45      [ run lockfree.cpp ]
46      [ compile-fail cf_arith_void_ptr.cpp ]
47      [ compile-fail cf_arith_func_ptr.cpp ]
48      [ compile-fail cf_arith_mem_ptr.cpp ]
49      [ compile c_implicit_ctor.cpp ]
50    ;
51