]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/serialization/util/test.jam
import new upstream nautilus stable release 14.2.8
[ceph.git] / ceph / src / boost / libs / serialization / util / test.jam
CommitLineData
7c673cae
FG
1# Boost serialization Library utility test Jamfile
2
3# (C) Copyright Robert Ramey 2002-2004.
4# Use, modification, and distribution are subject to the
5# Boost Software License, Version 1.0. (See accompanying file
6# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7#
8
9# the file contains Jam rules which are used in both the normal
10# boost test, as well as the performance test and comprehensive
11# tests.
12
92f5a8d4
TL
13# import rules for testing conditional on config file variables
14import ../../config/checks/config : requires ;
15
7c673cae
FG
16BOOST_ARCHIVE_LIST = [ modules.peek : BOOST_ARCHIVE_LIST ] ;
17
18# these are used to shorten testing while in development. It permits
19# testing to be applied to just a particular type of archive
20if ! $(BOOST_ARCHIVE_LIST) {
21 BOOST_ARCHIVE_LIST =
22 "text_archive.hpp"
23 "text_warchive.hpp"
24 "binary_archive.hpp"
25 "xml_archive.hpp"
26 "xml_warchive.hpp"
27 ;
28 # enable the tests which don't depend on a particular archive
29 BOOST_SERIALIZATION_TEST = true ;
30}
31
92f5a8d4 32rule run-template ( test-name : sources * : files * : requirements * ) {
7c673cae
FG
33 return [
34 run
35 $(sources)
36 : # command
92f5a8d4
TL
37 : #input files
38 $(files)
7c673cae
FG
39 : # requirements
40 # toolset warnings
41 <toolset>borland:<cxxflags>"-w-8080 -w-8071 -w-8057 -w-8062 -w-8008 -w-0018 -w-8066"
42 #<toolset>gcc:<warnings>all # ?
43 <toolset>gcc:<cxxflags>"-Wno-unused-variable -Wno-long-long"
b32b8144
FG
44 # <toolset>gcc:<variant>debug><define>_STLP_DEBUG
45 # <toolset>gcc:<variant>debug><define>_GLIBCXX_DEBUG
7c673cae
FG
46 <toolset>darwin:<cxxflags>"-Wno-unused-variable -Wno-long-long"
47 <toolset>msvc:<warnings>all # == /W4
48 <toolset>msvc:<define>_SCL_SECURE_NO_WARNINGS
49 <toolset>msvc:<define>_SCL_SECURE_NO_DEPRECATE
50 <toolset>msvc:<define>_CRT_SECURE_NO_WARNINGS
51 <toolset>msvc:<define>_CRT_SECURE_NO_DEPRECATE
52 <toolset>msvc:<cxxflags>"-wd4996"
53 <toolset>clang:<variant>debug:<cxxflags>"-fsanitize=memory"
54 # toolset optimizations
55 <toolset>gcc:<cxxflags>"-ftemplate-depth-255"
56 <toolset>clang:<cxxflags>"-ftemplate-depth-255"
57 <toolset>darwin:<cxxflags>"-ftemplate-depth-255"
58 <toolset>msvc:<cxxflags>"-Gy"
b32b8144
FG
59 # linking
60 <link>shared:<define>BOOST_SERIALIZATION_DYN_LINK=1
61 <link>shared:<define>BOOST_WSERIALIZATION_DYN_LINK=1
7c673cae
FG
62 $(requirements)
63 : # test name
64 $(test-name)
65 ] ;
66}
67
68# Given a name of test, return the 'save' test that must be run
69# before the named test, or empty string if there's no such test.
70rule dependency-save-test ( test )
71{
72 local m = [ MATCH (.*)load(.*) : $(test) ] ;
73 if $(m)
74 {
75 return $(m[1])save$(m[2]) ;
76 }
77}
78
79# each of the following tests is run with each type of archive
92f5a8d4 80rule run-invoke ( test-name : sources * : files * : requirements * )
7c673cae
FG
81{
82 local save-test = [ dependency-save-test $(test-name) ] ;
83
84 local tests ;
85 tests += [
86 run-template $(test-name)
87 : # sources
88 $(sources)
89 ../build//boost_serialization
92f5a8d4 90 : # input files
7c673cae
FG
91 : # requirements
92 $(requirements)
93 <define>BOOST_LIB_DIAGNOSTIC=1
94 <dependency>$(save-test)
95 ] ;
96 return $(tests) ;
97}
98
99# each of the following tests is run with each type of archive
92f5a8d4 100rule run-winvoke ( test-name : sources * : files * : requirements * )
7c673cae
FG
101{
102 local save-test = [ dependency-save-test $(test-name) ] ;
103
104 local tests ;
105 tests += [
106 run-template $(test-name)
107 : # sources
108 $(sources)
109 ../build//boost_serialization
110 ../build//boost_wserialization
92f5a8d4 111 : # input files
7c673cae
FG
112 : # requirements
113 $(requirements)
114 <define>BOOST_LIB_DIAGNOSTIC=1
115 # both stlport and msvc6 define iswspace
116 <toolset>msvc,<stdlib>stlport:<linkflags>"-force:multiple"
117 <dependency>$(save-test)
92f5a8d4 118 [ requires std_wstreambuf ]
7c673cae
FG
119 ] ;
120 return $(tests) ;
121}
122
123# for tests which don't use library code - usually just headers
124rule test-bsl-run-no-lib ( test-name : sources * : requirements * )
125{
126 local tests ;
127 tests += [
128 run-template $(test-name)
129 : # sources
130 $(test-name).cpp $(sources).cpp
92f5a8d4
TL
131 : # input files
132 : # requirements
7c673cae
FG
133 $(requirements)
134 ] ;
135 return $(tests) ;
136}
137
138# for tests which are run just once rather than for every archive
139rule test-bsl-run ( test-name : sources * : libs * : requirements * )
140{
141 local tests ;
142 tests += [
143 run-invoke $(test-name)
144 : # sources
145 $(test-name).cpp $(sources).cpp $(libs)
92f5a8d4
TL
146 : # input files
147 : # requirements
7c673cae
FG
148 $(requirements)
149 ] ;
150 return $(tests) ;
151}
152
153rule test-bsl-run_archive ( test-name : archive-name : sources * : libs * : requirements * ) {
154 local tests ;
155 switch $(archive-name) {
156 case "*_warchive" :
157 tests += [
158 run-winvoke $(test-name)_$(archive-name)
92f5a8d4 159 : # sources
7c673cae 160 $(sources).cpp $(libs)
92f5a8d4
TL
161 : # input files
162 : # requirements
7c673cae
FG
163 <define>BOOST_ARCHIVE_TEST=$(archive-name).hpp
164 $(requirements)
165 ] ;
166 case "*" :
167 tests += [
168 run-invoke $(test-name)_$(archive-name)
92f5a8d4 169 : # sources
7c673cae 170 $(sources).cpp $(libs)
92f5a8d4
TL
171 : # input files
172 : # requirements
7c673cae
FG
173 <define>BOOST_ARCHIVE_TEST=$(archive-name).hpp
174 $(requirements)
175 ] ;
176 }
177 return $(tests) ;
178}
179
180rule test-bsl-run_files ( test-name : sources * : libs * : requirements * ) {
181 local tests ;
182 for local defn in $(BOOST_ARCHIVE_LIST) {
183 tests += [
184 test-bsl-run_archive $(test-name)
185 : $(defn:LB)
186 : $(test-name) $(sources)
92f5a8d4
TL
187 : $(libs)
188 : $(requirements)
7c673cae
FG
189 ] ;
190 }
191 return $(tests) ;
192}
193
92f5a8d4 194rule test-bsl-run_polymorphic_files ( test-name : sources * : libs * : requirements * ) {
7c673cae
FG
195 local tests ;
196 for local defn in $(BOOST_ARCHIVE_LIST) {
92f5a8d4 197 ECHO polymorphic_$(defn:LB) ;
7c673cae 198 tests += [
92f5a8d4
TL
199 test-bsl-run_archive $(test-name)
200 : polymorphic_$(defn:LB)
201 : $(test-name) $(sources)
202 : $(libs)
203 : $(requirements)
7c673cae
FG
204 ] ;
205 }
206 return $(tests) ;
207}
208