Imported Upstream version 1.72.0
[platform/upstream/boost.git] / libs / histogram / test / Jamfile
1 # Copyright 2016-2017 Klemens David Morgenstern
2 # Copyright 2018 Mateusz Loskot <mateusz@loskot.net>
3 # Copyright 2018-2019 Hans Dembinski
4 #
5 # Use, modification and distribution is subject to the Boost Software License,
6 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
7 # http://www.boost.org/LICENSE_1_0.txt)
8
9 import python ;
10 import os ;
11 import regex ;
12 import testing ;
13 import ../../config/checks/config : requires ;
14
15 if ! [ python.configured ]
16 {
17     using python ;
18 }
19
20 path-constant THIS_PATH : . ;
21
22 project
23     : requirements
24     [ requires
25       cxx14_constexpr cxx14_decltype_auto cxx14_generic_lambdas cxx14_return_type_deduction cxx11_user_defined_literals
26       # list could go on...
27     ]
28     ;
29
30 # Check consistency of build systems
31 testing.make-test run-pyd : check_build_system.py :
32     <dependency>Jamfile <dependency>CMakeLists.txt ;
33
34 # Verify One Definition Rule by linking two object files which include everything
35 testing.make-test run-pyd : check_odr_test.py : <dependency>odr_test.cpp ;
36 alias odr :
37     [ link odr_main_test.cpp odr_test.cpp ]
38     ;
39
40 alias cxx14 :
41     [ run accumulators_test.cpp ]
42     [ run algorithm_project_test.cpp ]
43     [ run algorithm_reduce_test.cpp ]
44     [ run algorithm_sum_test.cpp ]
45     [ run algorithm_empty_test.cpp ]
46     [ run axis_category_test.cpp ]
47     [ run axis_integer_test.cpp ]
48     [ run axis_option_test.cpp ]
49     [ run axis_regular_test.cpp ]
50     [ run axis_size.cpp ]
51     [ run axis_traits_test.cpp ]
52     [ run axis_variable_test.cpp ]
53     [ run axis_variant_test.cpp ]
54     [ run detail_accumulator_traits_test.cpp ]
55     [ run detail_argument_traits_test.cpp ]
56     [ run detail_args_type_test.cpp ]
57     [ run detail_axes_test.cpp ]
58     [ run detail_convert_integer_test.cpp ]
59     [ run detail_detect_test.cpp ]
60     [ run detail_limits_test.cpp ]
61     [ run detail_make_default_test.cpp ]
62     [ run detail_misc_test.cpp ]
63     [ run detail_iterator_adaptor_test.cpp ]
64     [ run detail_large_int_test.cpp ]
65     [ run detail_operators_test.cpp ]
66     [ run detail_relaxed_equal_test.cpp ]
67     [ run detail_replace_type_test.cpp ]
68     [ run detail_safe_comparison_test.cpp ]
69     [ run detail_static_if_test.cpp ]
70     [ run detail_tuple_slice_test.cpp ]
71     [ run histogram_custom_axis_test.cpp ]
72     [ run histogram_dynamic_test.cpp ]
73     [ run histogram_fill_test.cpp ]
74     [ run histogram_growing_test.cpp ]
75     [ run histogram_mixed_test.cpp ]
76     [ run histogram_operators_test.cpp ]
77     [ run histogram_ostream_test.cpp ]
78     [ run histogram_test.cpp ]
79     [ run indexed_test.cpp ]
80     [ run storage_adaptor_test.cpp ]
81     [ run unlimited_storage_test.cpp ]
82     [ run utility_test.cpp ]
83     ;
84
85 alias cxx17 :
86     [ run deduction_guides_test.cpp ] :
87     [ requires cpp_deduction_guides ]
88     ;
89
90 # check that useful error messages are produced when library is used incorrectly
91 alias failure :
92     [ compile-fail axis_category_fail0.cpp ]
93     [ compile-fail axis_category_fail1.cpp ]
94     [ compile-fail axis_category_fail2.cpp ]
95     [ compile-fail axis_integer_fail0.cpp ]
96     [ compile-fail axis_integer_fail1.cpp ]
97     [ compile-fail axis_integer_fail2.cpp ]
98     [ compile-fail axis_integer_fail3.cpp ]
99     [ compile-fail axis_integer_fail4.cpp ]
100     [ compile-fail axis_regular_fail0.cpp ]
101     [ compile-fail axis_regular_fail1.cpp ]
102     [ compile-fail axis_variable_fail0.cpp ]
103     [ compile-fail axis_variable_fail1.cpp ]
104     [ compile-fail make_histogram_fail0.cpp ]
105     [ compile-fail make_histogram_fail1.cpp ]
106     [ compile-fail histogram_fail0.cpp ]
107     [ compile-fail histogram_fail1.cpp ]
108     [ compile-fail histogram_fail2.cpp ]
109     [ compile-fail histogram_fail3.cpp ]
110     [ compile-fail histogram_fail4.cpp ]
111     ;
112
113 alias threading :
114     [ run histogram_threaded_test.cpp ]
115     [ run storage_adaptor_threaded_test.cpp ]
116     :
117     <threading>multi
118     ;
119
120 # warnings are off for these other boost libraries, which tend to be not warning-free
121 alias accumulators : [ run boost_accumulators_support_test.cpp ] : <warnings>off ;
122 alias range : [ run boost_range_support_test.cpp ] : <warnings>off ;
123 alias units : [ run boost_units_support_test.cpp ] : <warnings>off ;
124 alias serialization :
125     [ run accumulators_serialization_test.cpp libserial : $(THIS_PATH) ]
126     [ run detail_array_wrapper_serialization_test.cpp libserial ]
127     [ run axis_variant_serialization_test.cpp libserial : $(THIS_PATH) ]
128     [ run histogram_serialization_test.cpp libserial : $(THIS_PATH) ]
129     [ run storage_adaptor_serialization_test.cpp libserial : $(THIS_PATH) ]
130     [ run unlimited_storage_serialization_test.cpp libserial : $(THIS_PATH) ]
131     ;
132
133 alias libserial :
134     /boost/serialization//boost_serialization
135     :
136     <link>static <warnings>off <rtti>on
137     ;
138
139 # for builds without optional boost dependencies
140 alias minimal : odr cxx14 cxx17 failure threading ;
141
142 # all tests
143 alias all : minimal accumulators range units serialization ;
144
145 # all except "failure", because it is distracting during development
146 alias develop : odr cxx14 cxx17 threading accumulators range units serialization ;
147
148 explicit minimal ;
149 explicit all ;
150 explicit odr ;
151 explicit cxx14 ;
152 explicit cxx17 ;
153 explicit failure ;
154 explicit threading ;
155 explicit accumulators ;
156 explicit range ;
157 explicit units ;
158 explicit serialization ;
159 explicit libserial ;