1#  Boost.SafeNumerics Library test Jamfile
2#
3#  Copyright (c) 2017 Robert Ramey
4#
5#  Distributed under the Boost Software License, Version 1.0.
6#  See accompanying file LICENSE_1_0.txt or copy at
7#  http://www.boost.org/LICENSE_1_0.txt
8
9import testing ;
10import ../../config/checks/config : requires ;
11project
12    : requirements
13        [ requires cxx14_constexpr ]
14        # toolset optimizations
15        <c++-template-depth>1024
16    ;
17
18# compile and run tests
19
20run test_add_automatic.cpp ;
21run test_add_native.cpp ;
22run test_and_automatic.cpp ;
23run test_and_native.cpp ;
24run test_assignment.cpp ;
25run test_auto.cpp ;
26run test_cast.cpp ;
27
28run test_checked_add.cpp ;
29run test_checked_and.cpp ;
30run test_checked_cast.cpp ;
31run test_checked_divide.cpp ;
32run test_checked_equal_to.cpp ;
33run test_checked_left_shift.cpp ;
34run test_checked_less_than.cpp ;
35run test_checked_modulus.cpp ;
36run test_checked_multiply.cpp ;
37run test_checked_or.cpp ;
38run test_checked_right_shift.cpp ;
39run test_checked_subtract.cpp ;
40run test_checked_xor.cpp ;
41
42run test_construction.cpp ;
43run test_cpp.cpp ;
44run test_divide_automatic.cpp ;
45run test_divide_native.cpp ;
46run test_equal_automatic.cpp ;
47run test_equal_native.cpp ;
48run test_float.cpp ;
49run test_interval.cpp ;
50run test_left_shift_automatic.cpp ;
51run test_left_shift_native.cpp ;
52run test_less_than_automatic.cpp ;
53run test_less_than_native.cpp ;
54run test_modulus_automatic.cpp ;
55run test_modulus_native.cpp ;
56run test_multiply_automatic.cpp ;
57run test_multiply_native.cpp ;
58run test_or_automatic.cpp ;
59run test_or_native.cpp ;
60run test_performance.cpp # sources
61    : # args
62    : # input
63    :  <variant>debug:<build>no # requirements
64    ;
65run test_range.cpp ;
66run test_rational.cpp ;
67run test_right_shift_automatic.cpp ;
68run test_right_shift_native.cpp ;
69run test_safe_compare.cpp ;
70run test_subtract_automatic.cpp ;
71run test_subtract_native.cpp ;
72run test_xor_automatic.cpp ;
73run test_xor_native.cpp ;
74run test_z.cpp ;
75
76# compile fail tests
77
78compile-fail test_constexpr.cpp ;
79compile-fail test_trap.cpp ;
80
81# safe integer constexpr tests
82
83compile test_add_automatic_constexpr.cpp ;
84compile test_add_native_constexpr.cpp ;
85compile test_divide_automatic_constexpr.cpp ;
86compile test_divide_native_constexpr.cpp ;
87compile test_equal_automatic_constexpr.cpp ;
88compile test_equal_native_constexpr.cpp ;
89compile test_left_shift_automatic_constexpr.cpp ;
90compile test_left_shift_native_constexpr.cpp ;
91compile test_less_than_automatic_constexpr.cpp ;
92compile test_less_than_native_constexpr.cpp ;
93compile test_modulus_automatic_constexpr.cpp ;
94compile test_modulus_native_constexpr.cpp ;
95compile test_multiply_automatic_constexpr.cpp ;
96compile test_multiply_native_constexpr.cpp ;
97compile test_or_automatic_constexpr.cpp ;
98compile test_or_native_constexpr.cpp ;
99compile test_right_shift_automatic_constexpr.cpp ;
100compile test_right_shift_native_constexpr.cpp ;
101compile test_xor_automatic_constexpr.cpp ;
102compile test_xor_native_constexpr.cpp ;
103compile test_subtract_native_constexpr.cpp ;
104compile test_subtract_automatic_constexpr.cpp ;
105
106# checked results constexpr
107
108compile test_checked_add_constexpr.cpp ;
109compile test_checked_and_constexpr.cpp ;
110compile test_checked_cast_constexpr.cpp ;
111compile test_checked_divide_constexpr.cpp ;
112compile test_checked_equal_to_constexpr.cpp ;
113compile test_checked_left_shift_constexpr.cpp ;
114compile test_checked_less_than_constexpr.cpp ;
115compile test_checked_modulus_constexpr.cpp ;
116compile test_checked_multiply_constexpr.cpp ;
117compile test_checked_or_constexpr.cpp ;
118compile test_checked_right_shift_constexpr.cpp ;
119compile test_checked_subtract_constexpr.cpp ;
120compile test_checked_xor_constexpr.cpp ;
121
122