summaryrefslogtreecommitdiff
path: root/status/Jamfile.v2
blob: c0617542fe147c91bf22c289d8521dff16f847fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
# Boost regression-testing Jamfile
#  (C) Copyright David Abrahams 2002. Permission to copy, use, modify, sell and
#  distribute this software is granted provided this copyright notice appears in
#  all copies. This software is provided "as is" without express or implied
#  warranty, and with no claim as to its suitability for any purpose.

#  Status:
#  - std::locale-support usage is commented out.
#  Two test suite have different names.
#  <no-warn> in config test is commented out.
#  One of the smart_ptr test is run only from invocation dir in V1, and not
#  run in V2 at all.


project status
    : source-location $(BOOST_ROOT)
    : requirements <hardcode-dll-paths>true
    ;

import testing ;
import modules ;
import project ;
import regex ;
import modules ;

local check-libs-only = [ MATCH "^--(check-libs-only)" : [ modules.peek : ARGV ] ] ;
local check-libs-only-targets = ;
local libraries = ;

local rule run-tests ( root : tests * )
{
    local limit-tests = [ MATCH "^--limit-tests=(.*)" : [ modules.peek : ARGV ] ] ;
    local location = [ project.attribute $(__name__) location ] ;
    for local test in $(tests)
    {
        local library = [ regex.split $(test) "/" ] ;
        library = $(library[0]) ;
        if $(limit-tests)
        {
            if ! [ MATCH "^($(limit-tests))" : $(test) ]
            {
                library = ;
            }
        }
        if $(library)
        {
            use-project /boost/$(test) : ../$(root)/$(test) ;
            if $(root) = libs && ( ! ( $(library) in $(libraries) ) )
            {
                libraries += $(library) ;
                local test_module = [ project.find ../$(root)/$(test) : $(location) ] ;
                modules.poke $(test_module) : __LIBRARY__ : $(root)/$(library) ;
                modules.poke $(test_module) : __JAMFILE__ : [ modules.peek project : JAMFILE ] ;
                project.push-current [ project.target $(test_module) ] ;
                module $(test_module)
                {
                    import testing ;
                    testing.make-test run-pyd :
                        $(BOOST_ROOT)/status/boost_check_library.py
                        :
                        <pythonpath>$(BOOST_ROOT)/status
                        <testing.arg>--boost-root=\"$(BOOST_ROOT)\"
                        <testing.arg>--library=$(__LIBRARY__)
                        <testing.arg>--jamfile=\"$(__JAMFILE__:J=;)\"
                        <testing.arg>organization
                        :
                        __boost_check_library__ ;
                }
                project.pop-current ;
                check-libs-only-targets += ../$(root)/$(test)//__boost_check_library__ ;
            }
            if ! $(check-libs-only)
            {
                build-project ../$(root)/$(test) ;
            }
        }
        else
        {
            # use-project /boost/$(test) : ../$(root)/$(test) ;
        }
    }
}

# Tests from Jamfiles in individual library test subdirectories
# Please keep these in alphabetic order by test-suite name
run-tests libs :
    accumulators/test           # test-suite accumulators
    algorithm/test              # test-suite algorithm
    algorithm/minmax/test       # test-suite algorith/minmax
    algorithm/string/test       # test-suite algorithm/string
    align/test                  # test-suite align
    array/test                  # test-suite array
    asio/test                   # test-suite asio
    assert/test                 # test-suite assert
    assign/test                 # test-suite assign
    atomic/test                 # test-suite atomic
    any/test                    # test-suite any
    bimap/test                  # test-suite bimap
    bind/test                   # test-suite bind
    chrono/test                 # test-suite chrono
    circular_buffer/test        # test-suite circular_buffer
    compute/test                # test-suite compute
    concept_check               # test-suite concept_check
    config/test                 # test-suite config
    container/bench             # test-suite container benchmarks
    container/example           # test-suite container_example
    container/test              # test-suite container_test
    context/test                # test-suite context
    conversion/test             # test-suite conversion
    convert/test                # test-suite convert
    core/test                   # test-suite core
    core/test/swap              # test-suite core/swap
    coroutine/test              # test-suite coroutine
    coroutine2/test             # test-suite coroutine2
    crc/test                    # test-suite crc
    date_time/test              # test-suite date_time
    detail/test                 # test-suite detail
    disjoint_sets               # test-suite disjoint_sets
    dll/test                    # test-suite dll
    dynamic_bitset              # test-suite dynamic_bitset
    endian/test                 # test-suite endian
    exception/test
    filesystem/test             # test-suite filesystem
    flyweight/test              # test-suite flyweight
    foreach/test                # test-suite foreach
    format/test                 # test-suite format
    function/test               # test-suite function
    functional/test             # test-suite functional
    functional/factory/test     # test-suite functional/factory
    functional/forward/test     # test-suite functional/forward
    functional/hash/test/extra  # test-suite functional/hash
    functional/overloaded_function/test # test-suite func./overloaded_function
    function_types/test         # test-suite function_types
    fusion/test                 # test-suite fusion
    geometry/test               # test-suite geometry
    geometry/index/test         # test-suite geometry/index
    geometry/extensions/test    # test-suite geometry/extensions
    gil/test                    # test-suite gil
    graph/test                  # test-suite graph
    graph_parallel/test         # test-suite graph/parallel
    hana/test                   # test-suite hana
    heap/test                   # test-suite heap
    icl/test                    # test-suite icl
    integer/test                # test-suite integer
    interprocess/example        # test-suite interprocess_example
    interprocess/test           # test-suite interprocess_test
    intrusive/example           # test-suite intrusive_example
    intrusive/test              # test-suite intrusive_test
    io/test                     # test-suite io
    iostreams/test              # test-suite iostreams
    iterator/test               # test-suite iterator
    lambda/test                 # test-suite lambda
    lexical_cast/test           # test-suite lexical_cast
    local_function/test         # test-suite local_function
    locale/test                 # test-suite locale
    log/test                    # test-suite log
    logic/test                  # test-suite logic
    lockfree/test               # test-suite lockfree
    math/test                   # test-suite math
    metaparse/test              # test-suite metaparse
    move/example                # test-suite move_example
    move/test                   # test-suite move_test
    mpi/test                    # test-suite mpi
    mpl/test                    # test-suite mpl
    msm/test                    # msm-unit-tests
    multi_array/test            # test-suite multi_array
    multi_index/test            # test-suite multi_index
    multiprecision/test         # test-suite multiprecision
    numeric/conversion/test     # test-suite numeric/conversion
    numeric/interval/test       # test-suite numeric/interval
    numeric/odeint/test         # test-suite numeric/odeint
    numeric/ublas/test          # test-suite numeirc/uBLAS
    optional/test               # test-suite optional
    parameter/test              # test-suite parameter
    phoenix/test                # test-suite phoenix
    polygon/test                # test-suite polygon
    pool/test                   # test-suite pool
    predef/test                 # test-suite predef
    preprocessor/test           # test-suite preprocessor
    program_options/test        # test-suite program_options
    property_map/test           # test-suite property_map
    property_tree/test          # test-suite property_test
    proto/test                  # test-suite proto
    ptr_container/test          # test-suite ptr_container
    python/test                 # test-suite python
    qvm/test                    # test-suite qvm
    random/test                 # test-suite random
    range/test                  # test-suite range
    ratio/test                  # test-suite ratio
    rational/test               # test-suite rational
    regex/test                  # test-suite regex
    regex/example               # test-suite regex-examples
    scope_exit/test             # test-suite scope_exit
    serialization/test          # test-suite serialization
    signals/test                # test-suite signals
    signals2/test               # test-suite signals2
    smart_ptr/test              # test-suite smart_ptr
    sort/test                   # test-suite sort
    spirit/classic/test         # test-suite classic spirit
    spirit/test                 # test-suite spirit_v2
    spirit/repository/test      # test-suite spirit_v2 repository
    statechart/test             # test-suite statechart
    static_assert               # test-suite static_assert
    sync/test                   # test-suite sync
    system/test                 # test-suite system
    test/test                   # test-suite test
    thread/test                 # test-suite thread
    throw_exception/test        # test-suite throw_exception
    timer/test                  # test-suite timer
    tokenizer/test              # test-suite tokenizer
    tr1/test                    # test-suite tr1
    tti/test                    # test-suite tti
    tuple/test                  # test-suite tuple
    type_erasure/test           # test-suite type_erasure
    type_index/test             # test-suite type_index
    type_traits/test            # test-suite type_traits
    typeof/test                 # test-suite typeof
    units/test                  # test-suite units
    unordered/test/unordered    # test-suite unordered
    unordered/test/exception    # test-suite unordered-exception
    utility/identity_type/test  # test-suite utility/identity_type
    utility/test                # test-suite utility
    uuid/test                   # test-suite uuid
    variant/test                # test-suite variant
    vmd/test                    # test-suite vmd
    wave/test/build             # test-suite wave
    winapi/test                 # test-suite winapi
    xpressive/test              # test-suite xpressive
    ;

run-tests tools :
    bcp/test
    ;

if $(check-libs-only-targets)
{
    alias check-libs-only : $(check-libs-only-targets) ;
}