1# Copyright David Abrahams, Daniel Wallin 2006.
2# Copyright Cromwell D. Enage 2017.
3# Distributed under the Boost Software License, Version 1.0.
4# (See accompanying file LICENSE_1_0.txt or copy at
5# http://www.boost.org/LICENSE_1_0.txt)
6
7# Boost Parameter Library test Jamfile
8
9import os ;
10import testing ;
11
12project boost/parameter
13    :
14        default-build
15        <warnings>off
16    ;
17
18import python ;
19
20alias parameter_standard_tests
21    :
22    [ run maybe.cpp : : : : : <preserve-target-tests>off ]
23    [ run singular.cpp : : : : : <preserve-target-tests>off ]
24    [ run tutorial.cpp : : : : : <preserve-target-tests>off ]
25    [ run compose.cpp
26        :
27        :
28        :
29            <define>BOOST_PARAMETER_COMPOSE_MAX_ARITY=3
30        :
31        :
32            <preserve-target-tests>off
33    ]
34    [ run sfinae.cpp
35        :
36        :
37        :
38            <define>BOOST_PARAMETER_MAX_ARITY=2
39            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=3
40        :
41        :
42            <preserve-target-tests>off
43    ]
44    [ run efficiency.cpp
45        :
46        :
47        :
48        :
49        :
50            <variant>release
51            <preserve-target-tests>off
52    ]
53    [ run evaluate_category.cpp
54        :
55        :
56        :
57            <define>BOOST_PARAMETER_MAX_ARITY=4
58            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=5
59        :
60        :
61            <preserve-target-tests>off
62    ]
63    [ run evaluate_category_16.cpp
64        :
65        :
66        :
67            <define>BOOST_PARAMETER_MAX_ARITY=16
68            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=0
69        :
70        :
71            <preserve-target-tests>off
72    ]
73    [ run parameterized_inheritance.cpp
74        :
75        :
76        :
77            <define>BOOST_PARAMETER_COMPOSE_MAX_ARITY=3
78        :
79        :
80            <preserve-target-tests>off
81    ]
82    [ run preprocessor_eval_cat_no_spec.cpp
83        :
84        :
85        :
86            <define>BOOST_PARAMETER_COMPOSE_MAX_ARITY=8
87        :
88        :
89            <preserve-target-tests>off
90    ]
91    [ run optional_deduced_sfinae.cpp
92        :
93        :
94        :
95            <define>BOOST_PARAMETER_MAX_ARITY=2
96            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=2
97        :
98        :
99            <preserve-target-tests>off
100    ]
101    [ run preprocessor_eval_category.cpp
102        :
103        :
104        :
105            <define>BOOST_PARAMETER_MAX_ARITY=4
106            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=5
107        :
108        :
109            <preserve-target-tests>off
110    ]
111    [ run normalized_argument_types.cpp
112        :
113        :
114        :
115            <define>BOOST_PARAMETER_MAX_ARITY=2
116            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=3
117        :
118        :
119            <preserve-target-tests>off
120    ]
121    [ run basics.cpp
122        :
123        :
124        :
125            <define>BOOST_PARAMETER_MAX_ARITY=4
126            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=5
127        :
128        :
129            <preserve-target-tests>off
130    ]
131    [ run mpl.cpp
132        :
133        :
134        :
135            <define>BOOST_PARAMETER_MAX_ARITY=4
136            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=5
137        :
138        :
139            <preserve-target-tests>off
140    ]
141    [ run preprocessor.cpp
142        :
143        :
144        :
145            <define>BOOST_PARAMETER_MAX_ARITY=4
146            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=5
147        :
148        :
149            <preserve-target-tests>off
150    ]
151    [ run preprocessor_deduced.cpp
152        :
153        :
154        :
155            <define>BOOST_PARAMETER_MAX_ARITY=4
156            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=5
157        :
158        :
159            <preserve-target-tests>off
160    ]
161    [ run deduced.cpp
162        :
163        :
164        :
165            <define>BOOST_PARAMETER_MAX_ARITY=4
166            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=5
167        :
168        :
169            <preserve-target-tests>off
170    ]
171    [ run deduced_dependent_predicate.cpp
172        :
173        :
174        :
175            <define>BOOST_PARAMETER_MAX_ARITY=4
176            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=5
177        :
178        :
179            <preserve-target-tests>off
180    ]
181    [ run earwicker.cpp
182        :
183        :
184        :
185            <define>BOOST_PARAMETER_MAX_ARITY=4
186            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=5
187        :
188        :
189            <preserve-target-tests>off
190    ]
191    [ run macros.cpp
192        :
193        :
194        :
195            <define>BOOST_PARAMETER_MAX_ARITY=4
196            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=5
197        :
198        :
199            <preserve-target-tests>off
200    ]
201    [ compile unwrap_cv_reference.cpp ]
202    [ compile ntp.cpp
203        :
204            <define>BOOST_PARAMETER_MAX_ARITY=4
205            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=0
206    ]
207    [ compile function_type_tpl_param.cpp ]
208    [ compile-fail duplicates.cpp
209        :
210            <define>BOOST_PARAMETER_MAX_ARITY=4
211            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=5
212        :
213            duplicates_fail
214    ]
215    [ compile-fail deduced_unmatched_arg.cpp
216        :
217            <define>BOOST_PARAMETER_MAX_ARITY=4
218            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=5
219        :
220            deduced_unmatched_arg_fail
221    ]
222    [ compile-fail basics.cpp
223        :
224            <define>BOOST_PARAMETER_MAX_ARITY=4
225            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=5
226            <define>LIBS_PARAMETER_TEST_COMPILE_FAILURE
227        :
228            basics_fail
229    ]
230    [ compile-fail compose.cpp
231        :
232            <define>BOOST_PARAMETER_COMPOSE_MAX_ARITY=3
233            <define>LIBS_PARAMETER_TEST_COMPILE_FAILURE_0
234        :
235            compose_fail_0
236    ]
237    [ compile-fail compose.cpp
238        :
239            <define>BOOST_PARAMETER_COMPOSE_MAX_ARITY=3
240            <define>LIBS_PARAMETER_TEST_COMPILE_FAILURE_1
241        :
242            compose_fail_1
243    ]
244    [ compile-fail evaluate_category.cpp
245        :
246            <define>BOOST_PARAMETER_MAX_ARITY=4
247            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=5
248            <define>LIBS_PARAMETER_TEST_COMPILE_FAILURE
249        :
250            evaluate_category_fail
251    ]
252    [ compile-fail preprocessor_deduced.cpp
253        :
254            <define>BOOST_PARAMETER_MAX_ARITY=4
255            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=5
256            <define>LIBS_PARAMETER_TEST_COMPILE_FAILURE
257        :
258            preprocessor_deduced_fail
259    ]
260    [ compile-fail deduced.cpp
261        :
262            <define>BOOST_PARAMETER_MAX_ARITY=4
263            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=5
264            <define>LIBS_PARAMETER_TEST_COMPILE_FAILURE
265        :
266            deduced_fail
267    ]
268    ;
269
270alias parameter_literate_tests
271    :
272    [ run literate/building-argumentpacks0.cpp
273        :
274        :
275        :
276            <define>BOOST_PARAMETER_MAX_ARITY=2
277            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=3
278        :
279        :
280            <preserve-target-tests>off
281    ]
282    [ run literate/deduced-parameters0.cpp
283        :
284        :
285        :
286            <define>BOOST_PARAMETER_MAX_ARITY=5
287            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=6
288        :
289        :
290            <preserve-target-tests>off
291    ]
292    [ run literate/deduced-template-parameters0.cpp
293        :
294        :
295        :
296            <define>BOOST_PARAMETER_MAX_ARITY=4
297            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=5
298        :
299        :
300            <preserve-target-tests>off
301    ]
302    [ run literate/default-expression-evaluation0.cpp
303        :
304        :
305        :
306            <define>BOOST_PARAMETER_MAX_ARITY=5
307            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=6
308        :
309        :
310            <preserve-target-tests>off
311    ]
312    [ run literate/extracting-parameter-types0.cpp
313        :
314        :
315        :
316        :
317        :
318            <preserve-target-tests>off
319    ]
320    [ run literate/extracting-parameter-types1.cpp
321        :
322        :
323        :
324        :
325        :
326            <preserve-target-tests>off
327    ]
328    [ run literate/fine-grained-name-control0.cpp
329        :
330        :
331        :
332            <define>BOOST_PARAMETER_MAX_ARITY=2
333            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=3
334        :
335        :
336            <preserve-target-tests>off
337    ]
338    [ run literate/lazy-default-computation0.cpp
339        :
340        :
341        :
342        :
343        :
344            <preserve-target-tests>off
345    ]
346    [ run literate/lazy-default-computation1.cpp
347        :
348        :
349        :
350        :
351        :
352            <preserve-target-tests>off
353    ]
354    [ run literate/namespaces0.cpp
355        :
356        :
357        :
358            <define>BOOST_PARAMETER_MAX_ARITY=2
359            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=3
360        :
361        :
362            <preserve-target-tests>off
363    ]
364    [ run literate/namespaces1.cpp
365        :
366        :
367        :
368            <define>BOOST_PARAMETER_MAX_ARITY=2
369            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=3
370        :
371        :
372            <preserve-target-tests>off
373    ]
374    [ run literate/namespaces2.cpp
375        :
376        :
377        :
378            <define>BOOST_PARAMETER_MAX_ARITY=2
379            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=3
380        :
381        :
382            <preserve-target-tests>off
383    ]
384    [ run literate/namespaces3.cpp
385        :
386        :
387        :
388            <define>BOOST_PARAMETER_MAX_ARITY=2
389            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=3
390        :
391        :
392            <preserve-target-tests>off
393    ]
394    [ run literate/parameter-enabled-constructors0.cpp
395        :
396        :
397        :
398            <define>BOOST_PARAMETER_MAX_ARITY=2
399            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=3
400        :
401        :
402            <preserve-target-tests>off
403    ]
404    [ run literate/parameter-enabled-function-call-operators0.cpp
405        :
406        :
407        :
408            <define>BOOST_PARAMETER_MAX_ARITY=2
409            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=3
410        :
411        :
412            <preserve-target-tests>off
413    ]
414    [ run literate/parameter-enabled-member-functions0.cpp
415        :
416        :
417        :
418            <define>BOOST_PARAMETER_MAX_ARITY=2
419            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=3
420        :
421        :
422            <preserve-target-tests>off
423    ]
424    [ run literate/predicate-requirements0.cpp
425        :
426        :
427        :
428            <define>BOOST_PARAMETER_MAX_ARITY=5
429            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=6
430        :
431        :
432            <preserve-target-tests>off
433    ]
434    [ run literate/static-member-functions0.cpp
435        :
436        :
437        :
438            <define>BOOST_PARAMETER_MAX_ARITY=2
439            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=3
440        :
441        :
442            <preserve-target-tests>off
443    ]
444    [ run literate/top-level0.cpp
445        :
446        :
447        :
448            <define>BOOST_PARAMETER_MAX_ARITY=3
449            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=4
450        :
451        :
452            <preserve-target-tests>off
453    ]
454    [ compile literate/class-template-skeleton0.cpp
455        :
456            <define>BOOST_PARAMETER_MAX_ARITY=4
457            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=5
458    ]
459    [ compile literate/defining-the-keywords0.cpp ]
460    [ compile literate/defining-the-keywords1.cpp ]
461    [ compile literate/exercising-the-code-so-far0.cpp
462        :
463            <define>BOOST_PARAMETER_MAX_ARITY=4
464            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=5
465    ]
466    [ compile literate/handling-out-parameters0.cpp
467        :
468            <define>BOOST_PARAMETER_MAX_ARITY=5
469            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=6
470    ]
471    [ compile literate/headers-and-namespaces0.cpp ]
472    [ compile literate/optional-parameters0.cpp
473        :
474            <define>BOOST_PARAMETER_MAX_ARITY=5
475            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=6
476    ]
477    [ compile literate/parameter-enabled-member-functions1.cpp
478        :
479            <define>BOOST_PARAMETER_MAX_ARITY=2
480            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=3
481    ]
482    [ compile literate/required-parameters0.cpp
483        :
484            <define>BOOST_PARAMETER_MAX_ARITY=2
485            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=3
486    ]
487    [ compile literate/template-keywords0.cpp ]
488    [ compile literate/template-keywords1.cpp ]
489    [ compile literate/writing-the-function0.cpp
490        :
491            <define>BOOST_PARAMETER_MAX_ARITY=5
492            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=6
493    ]
494    ;
495
496if ! [ os.environ BOOST_PARAMETER_TEST_WITHOUT_PYTHON_TESTS ]
497{
498    alias parameter_python_test
499        :
500        :
501            # Python fails for clang on linux with cxxstd set to 14
502            <target-os>linux
503            <toolset>clang
504            <cxxstd>14
505        ;
506
507    alias parameter_python_test
508        :
509        :
510            # Python fails for clang on linux with cxxstd set to 1z
511            <target-os>linux
512            <toolset>clang
513            <cxxstd>1z
514        ;
515
516    alias parameter_python_test
517        :
518        :
519            # Python fails for xcode 8.3.0 on osx
520            # so we turn off this test for this compiler completely for now
521            <target-os>darwin
522            # TODO: Differentiate by xcode version or by clang version
523        ;
524
525    alias parameter_python_test
526        :
527        :
528            # Python fails for mingw compilers with cxxstd set to 11 or higher
529            # because of a Python header problem
530            # so we turn off this test for this compiler completely
531            <target-os>windows
532            <toolset>gcc
533            <address-model>32
534        ;
535
536    alias parameter_python_test
537        :
538        :
539            # Python fails for clang-linux compilers with cxxstd set to 11 or higher
540            # because of a Python header problem
541            # so we turn off this test for this compiler completely
542            <target-os>windows
543            <toolset>clang-linux
544            <address-model>32
545        ;
546
547    alias parameter_python_test
548        :
549        :
550            # Python fails for windows compilers with 64-bit addressing set
551            # because of a Python header problem
552            <target-os>windows
553            <address-model>64
554        ;
555
556    alias parameter_python_test
557        :
558        [ bpl-test python_test ]
559        ;
560}
561else
562{
563    alias parameter_python_test ;
564}
565
566alias parameter_macros_eval_category
567    :
568    :
569        <target-os>linux
570        <toolset>gcc
571        <toolset-gcc:version>4.8
572    ;
573
574alias parameter_macros_eval_category
575    :
576    :
577        # This test fails for xcode 7.3.0 on osx
578        # so we turn off this test for this compiler for now
579        <target-os>darwin
580        <cxxstd>03
581        # TODO: Differentiate by xcode version or by clang version
582    ;
583
584alias parameter_macros_eval_category
585    :
586    :
587        <target-os>windows
588        <toolset>gcc
589    ;
590
591alias parameter_macros_eval_category
592    :
593    [ run macros_eval_category.cpp
594        :
595        :
596        :
597            <define>BOOST_PARAMETER_COMPOSE_MAX_ARITY=10
598            <define>BOOST_PARAMETER_MAX_ARITY=10
599            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=0
600        :
601            macros_eval_category_cxx98
602        :
603            <preserve-target-tests>off
604    ]
605    :
606        <cxxstd>98
607    ;
608
609alias parameter_macros_eval_category
610    :
611    [ run macros_eval_category.cpp
612        :
613        :
614        :
615            <define>BOOST_PARAMETER_COMPOSE_MAX_ARITY=10
616            <define>BOOST_PARAMETER_MAX_ARITY=10
617            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=0
618        :
619            macros_eval_category_cxx03
620        :
621            <preserve-target-tests>off
622    ]
623    :
624        <cxxstd>03
625    ;
626
627alias parameter_macros_eval_category
628    :
629    [ run macros_eval_category.cpp
630        :
631        :
632        :
633            <define>BOOST_PARAMETER_COMPOSE_MAX_ARITY=10
634            <define>BOOST_PARAMETER_MAX_ARITY=10
635            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=11
636        :
637        :
638            <preserve-target-tests>off
639    ]
640    ;
641
642alias parameter_evaluate_category_10
643    :
644    [ run evaluate_category_10.cpp
645        :
646        :
647        :
648            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=0
649        :
650            evaluate_category_10_gcc_4_8_linux
651        :
652            <preserve-target-tests>off
653    ]
654    :
655        <target-os>linux
656        <toolset>gcc
657        <toolset-gcc:version>4.8
658    ;
659
660alias parameter_evaluate_category_10
661    :
662    [ run evaluate_category_10.cpp
663        :
664        :
665        :
666            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=0
667        :
668            evaluate_category_10_mingw
669        :
670            <preserve-target-tests>off
671    ]
672    :
673        <target-os>windows
674        <toolset>gcc
675    ;
676
677alias parameter_evaluate_category_10
678    :
679    [ run evaluate_category_10.cpp
680        :
681        :
682        :
683        :
684            evaluate_category_10_cxx98
685        :
686            <preserve-target-tests>off
687    ]
688    :
689        <cxxstd>98
690    ;
691
692alias parameter_evaluate_category_10
693    :
694    [ run evaluate_category_10.cpp
695        :
696        :
697        :
698            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=0
699        :
700            evaluate_category_10_cxx03
701        :
702            <preserve-target-tests>off
703    ]
704    :
705        <cxxstd>03
706    ;
707
708alias parameter_evaluate_category_10
709    :
710    [ run evaluate_category_10.cpp
711        :
712        :
713        :
714            <define>BOOST_PARAMETER_COMPOSE_MAX_ARITY=10
715            <define>BOOST_PARAMETER_MAX_ARITY=10
716            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=11
717        :
718        :
719            <preserve-target-tests>off
720    ]
721    ;
722
723alias parameter_preprocessor_eval_cat_8
724    :
725    [ run preprocessor_eval_cat_8.cpp
726        :
727        :
728        :
729            <define>BOOST_PARAMETER_COMPOSE_MAX_ARITY=8
730            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=0
731        :
732            preproc_eval_cat_8_mingw
733        :
734            <preserve-target-tests>off
735    ]
736    :
737        <target-os>windows
738        <toolset>gcc
739    ;
740
741alias parameter_preprocessor_eval_cat_8
742    :
743    [ run preprocessor_eval_cat_8.cpp
744        :
745        :
746        :
747            <define>BOOST_PARAMETER_COMPOSE_MAX_ARITY=8
748            <define>BOOST_PARAMETER_MAX_ARITY=8
749            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=9
750        :
751        :
752            <preserve-target-tests>off
753    ]
754    ;
755
756alias parameter_preprocessor_eval_cat_fail
757    :
758    :
759        # This test fails for xcode 7.3.0 and xcode 8.3.0 on osx
760        # so we turn off this test for this compiler for now
761        <target-os>darwin
762        <cxxstd>03
763        # TODO: Differentiate by xcode version or by clang version
764    ;
765
766alias parameter_preprocessor_eval_cat_fail
767    :
768    :
769        <target-os>windows
770        <toolset>gcc
771    ;
772
773alias parameter_preprocessor_eval_cat_fail
774    :
775    [ compile-fail preprocessor_eval_category.cpp
776        :
777            <define>BOOST_PARAMETER_MAX_ARITY=8
778            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=9
779            <define>LIBS_PARAMETER_TEST_COMPILE_FAILURE
780        :
781            preproc_eval_cat_fail
782    ]
783    ;
784
785alias parameter_vendor_specific_fail_tests ;
786
787alias parameter_vendor_specific_fail_tests
788    :
789    [ compile-fail preprocessor_deduced.cpp
790        :
791            <define>BOOST_PARAMETER_MAX_ARITY=4
792            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=5
793            <define>LIBS_PARAMETER_TEST_COMPILE_FAILURE_VENDOR_SPECIFIC
794        :
795            preproc_deduced_fail_msvc08
796    ]
797    :
798        <toolset>msvc
799        <toolset-msvc:version>8.0
800    ;
801
802alias parameter_vendor_specific_fail_tests
803    :
804    [ compile-fail preprocessor_deduced.cpp
805        :
806            <define>BOOST_PARAMETER_MAX_ARITY=4
807            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=5
808            <define>LIBS_PARAMETER_TEST_COMPILE_FAILURE_VENDOR_SPECIFIC
809        :
810            preproc_deduced_fail_msvc09
811    ]
812    :
813        <toolset>msvc
814        <toolset-msvc:version>9.0
815    ;
816
817alias parameter_vendor_specific_fail_tests
818    :
819    [ compile-fail preprocessor_deduced.cpp
820        :
821            <define>BOOST_PARAMETER_MAX_ARITY=4
822            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=5
823            <define>LIBS_PARAMETER_TEST_COMPILE_FAILURE_VENDOR_SPECIFIC
824        :
825            preproc_deduced_fail_msvc10
826    ]
827    :
828        <toolset>msvc
829        <toolset-msvc:version>10.0
830    ;
831
832alias parameter_vendor_specific_fail_tests
833    :
834    [ compile-fail compose.cpp
835        :
836            <define>BOOST_PARAMETER_COMPOSE_MAX_ARITY=3
837            <define>LIBS_PARAMETER_TEST_COMPILE_FAILURE_VENDOR_SPECIFIC
838        :
839            compose_fail_msvc11
840    ]
841    [ compile-fail preprocessor_deduced.cpp
842        :
843            <define>BOOST_PARAMETER_MAX_ARITY=4
844            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=5
845            <define>LIBS_PARAMETER_TEST_COMPILE_FAILURE_VENDOR_SPECIFIC
846        :
847            preproc_deduced_fail_msvc11
848    ]
849    :
850        <toolset>msvc
851        <toolset-msvc:version>11.0
852    ;
853
854alias parameter_vendor_specific_fail_tests
855    :
856    [ compile-fail evaluate_category.cpp
857        :
858            <define>BOOST_PARAMETER_MAX_ARITY=4
859            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=5
860            <define>LIBS_PARAMETER_TEST_COMPILE_FAILURE_VENDOR_SPECIFIC
861        :
862            evaluate_category_fail_msvc12
863    ]
864    [ compile-fail preprocessor_eval_category.cpp
865        :
866            <define>BOOST_PARAMETER_MAX_ARITY=8
867            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=9
868            <define>LIBS_PARAMETER_TEST_COMPILE_FAILURE_VENDOR_SPECIFIC
869        :
870            preproc_eval_cat_fail_msvc12
871    ]
872    [ compile-fail preprocessor_eval_cat_no_spec.cpp
873        :
874            <define>BOOST_PARAMETER_COMPOSE_MAX_ARITY=8
875            <define>LIBS_PARAMETER_TEST_COMPILE_FAILURE_VENDOR_SPECIFIC
876        :
877            preproc_eval_cat_no_spec_fail_msvc12
878    ]
879    :
880        <toolset>msvc
881        <toolset-msvc:version>12.0
882    ;
883
884alias parameter_vendor_specific_fail_tests
885    :
886    [ compile-fail evaluate_category.cpp
887        :
888            <define>BOOST_PARAMETER_MAX_ARITY=4
889            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=5
890            <define>LIBS_PARAMETER_TEST_COMPILE_FAILURE_VENDOR_SPECIFIC
891        :
892            evaluate_category_fail_msvc14_0
893    ]
894    [ compile-fail preprocessor_eval_category.cpp
895        :
896            <define>BOOST_PARAMETER_MAX_ARITY=8
897            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=9
898            <define>LIBS_PARAMETER_TEST_COMPILE_FAILURE_VENDOR_SPECIFIC
899        :
900            preproc_eval_cat_fail_msvc14_0
901    ]
902    [ compile-fail preprocessor_eval_cat_no_spec.cpp
903        :
904            <define>BOOST_PARAMETER_COMPOSE_MAX_ARITY=8
905            <define>LIBS_PARAMETER_TEST_COMPILE_FAILURE_VENDOR_SPECIFIC
906        :
907            preproc_eval_cat_no_spec_fail_msvc14_0
908    ]
909    :
910        <toolset>msvc
911        <toolset-msvc:version>14.0
912    ;
913
914alias parameter_vendor_specific_fail_tests
915    :
916    [ compile-fail evaluate_category.cpp
917        :
918            <define>BOOST_PARAMETER_MAX_ARITY=4
919            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=5
920            <define>LIBS_PARAMETER_TEST_COMPILE_FAILURE_VENDOR_SPECIFIC
921        :
922            evaluate_category_fail_msvc14_1
923    ]
924    [ compile-fail preprocessor_eval_category.cpp
925        :
926            <define>BOOST_PARAMETER_MAX_ARITY=8
927            <define>BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY=9
928            <define>LIBS_PARAMETER_TEST_COMPILE_FAILURE_VENDOR_SPECIFIC
929        :
930            preproc_eval_cat_fail_msvc14_1
931    ]
932    [ compile-fail preprocessor_eval_cat_no_spec.cpp
933        :
934            <define>BOOST_PARAMETER_COMPOSE_MAX_ARITY=8
935            <define>LIBS_PARAMETER_TEST_COMPILE_FAILURE_VENDOR_SPECIFIC
936        :
937            preproc_eval_cat_no_spec_fail_msvc14_1
938    ]
939    :
940        <toolset>msvc
941        <toolset-msvc:version>14.1
942    ;
943
944# TODO: Replace with "undeprecated" version.
945test-suite "parameter"
946    :
947        parameter_macros_eval_category
948        parameter_evaluate_category_10
949        parameter_preprocessor_eval_cat_8
950        parameter_preprocessor_eval_cat_fail
951        parameter_standard_tests
952        parameter_literate_tests
953        parameter_python_test
954        parameter_vendor_specific_fail_tests
955    ;
956