• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#==============================================================================
2#   Copyright (c) 2002 Joel de Guzman
3#   Copyright (c) 2003-2004 Martin Wille
4#   Copyright (c) 2019 Nikita Kniazev
5#   http://spirit.sourceforge.net/
6#
7#   Use, modification and distribution is subject to the Boost Software
8#   License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
9#   http://www.boost.org/LICENSE_1_0.txt)
10#==============================================================================
11#
12#  Spirit regression test boost-jam file
13#  Joel de Guzman [Sept 27, 2002]
14#
15
16project spirit-classic
17    : requirements
18        <include>.
19    ;
20
21###############################################################################
22
23cpp-pch pch : pch.hpp : : : <include>. <force-include>pch.hpp ;
24cpp-pch pch-dbg : pch.hpp : <define>BOOST_SPIRIT_DEBUG :
25                          : <include>. <force-include>pch.hpp ;
26
27explicit pch pch-dbg ;
28
29###############################################################################
30
31rule spirit-run ( sources + : args * : input-files * : requirements * : name ? : default-build * )
32{
33    name ?= $(sources[1]:D=:S=) ;
34    return
35       [ run $(sources) : $(args) : $(input-files) : $(requirements)
36          <pch>on-spirit:<source>pch : $(name)
37        : $(default-build) ]
38       [ run $(sources) : $(args) : $(input-files) : $(requirements)
39          <pch>on-spirit:<source>pch-dbg <define>BOOST_SPIRIT_DEBUG : $(name)_debug
40        : $(default-build) ]
41        ;
42}
43
44############################################################
45
46local opt = <toolset>vc-7.0:<optimization>speed
47            <toolset>vc-7.0:<inlining>on
48            <toolset>cw:<optimization>speed ;
49
50local opt-metrowerks = <toolset>cw:<optimization>speed ;
51
52
53# VP, 2005/04/14: MT is not available with Como, but this is
54# not handled yet.
55alias boost_thread : /boost/thread//boost_thread : <warnings>off <warnings-as-errors>off ;
56local multi-threading = <library>boost_thread
57                        <threading>multi <define>BOOST_ALL_NO_LIB ;
58
59    test-suite "spirit.classic.core.kernel"
60        : [ spirit-run match_tests.cpp ]
61          [ spirit-run post_skips.cpp ]
62        ;
63
64    test-suite "spirit.classic.core.scanner"
65        : [ spirit-run scanner_tests.cpp ]
66          [ spirit-run scanner_value_type_tests.cpp : : : <pch>off ]
67        ;
68
69    test-suite "spirit.classic.core.primitive"
70        : [ spirit-run primitives_tests.cpp ]
71          [ spirit-run char_strings_test.cpp ]
72          [ compile-fail char_strings_test_fail.cpp ]
73          [ spirit-run numerics_tests.cpp : : : $(opt) ]
74          [ spirit-run custom_real_parser.cpp ]
75        ;
76
77    test-suite "spirit.classic.core.composite"
78        : [ spirit-run epsilon_tests.cpp ]
79          [ spirit-run negated_eps_p_test.cpp ]
80          [ spirit-run operators_tests.cpp ]
81          [ spirit-run directives_tests.cpp ]
82          [ spirit-run shortest_alternative_tests.cpp ]
83        ;
84
85    test-suite "spirit.classic.core.non_terminal"
86        : [ spirit-run rule_tests.cpp : : : <pch>off ]
87          [ spirit-run owi_st_tests.cpp : : : <undef>BOOST_SPIRIT_THREADSAFE ]
88          [ spirit-run grammar_tests.cpp : : : <pch>off $(opt-metrowerks) ]
89          [ spirit-run grammar_multi_instance_tst.cpp : : : $(opt-metrowerks) ]
90          [ spirit-run subrule_tests.cpp ]
91          [        run owi_mt_tests.cpp : : : $(multi-threading) ]
92          [        run grammar_mt_tests.cpp : : : $(multi-threading) ]
93          [ spirit-run parser_context_test.cpp ]
94        ;
95
96    # traverse_tests defines SPIRIT_DEBUG, don't run the tests twice
97    test-suite "spirit.classic.meta"
98        : [ spirit-run fundamental_tests.cpp ]
99          [ spirit-run parser_traits_tests.cpp ]
100          [ spirit-run traverse_tests.cpp : : : <pch>off <toolset>intel:<debug-symbols>off ]
101        ;
102
103    test-suite "spirit.classic.attribute"
104        : [ spirit-run closure_tests.cpp : : : $(opt-metrowerks) ]
105          [        run bug_000008.cpp : : : $(multi-threading) ]
106          [ spirit-run parametric_tests.cpp ]
107        ;
108
109    test-suite "spirit.classic.error_handling"
110        : [ spirit-run exception_tests.cpp ]
111        ;
112
113    test-suite "spirit.classic.tree"
114        : [ spirit-run ast_calc_tests.cpp ]
115          [ spirit-run group_match_bug.cpp ]
116          [ spirit-run repeat_ast_tests.cpp ]
117          [ spirit-run tree_to_xml.cpp ]
118          [ compile mix_and_match_trees.cpp ]
119        ;
120
121# temporarily removed from the test suite. tree_tests are not finished, yet.
122#         [ spirit-run tree_tests.cpp ]
123
124    test-suite "spirit.classic.dynamic"
125        : [ compile if_p_as_parser_tests.cpp ]
126          [ compile while_p_as_parser_tests.cpp ]
127          [ compile for_p_as_parser_tests.cpp ]
128          [ spirit-run if_tests.cpp ]
129          [ spirit-run if_p_int_as_condition_test.cpp ]
130          [ spirit-run for_tests.cpp ]
131          [ spirit-run while_tests.cpp ]
132          [ spirit-run lazy_tests.cpp ]
133          [ spirit-run switch_tests_eps_default.cpp : : : <pch>off ]
134          [ spirit-run switch_tests_general_def.cpp : : : <pch>off ]
135          [ spirit-run switch_tests_wo_default.cpp : : : <pch>off ]
136          [ spirit-run switch_tests_single.cpp : : : <pch>off ]
137          [ spirit-run switch_problem.cpp ]
138          [ spirit-run select_p_with_rule.cpp : : : <pch>off ]
139        ;
140
141    test-suite "spirit.classic.utility.parsers"
142        : [ spirit-run chset_tests.cpp ]
143          [ spirit-run confix_tests.cpp ]
144          [ spirit-run loops_tests.cpp ]
145          [ spirit-run symbols_tests.cpp ]
146          [ spirit-run symbols_add_null.cpp : : : <pch>off ]
147          [ spirit-run symbols_find_null.cpp ]
148          [ spirit-run escape_char_parser_tests.cpp : : : $(opt) ]
149          [ spirit-run distinct_tests.cpp ]
150          [ spirit-run grammar_def_test.cpp ]
151        ;
152
153    test-suite "spirit.classic.utility.support"
154        # This test doesn't actually use multiple threads
155        : [ spirit-run scoped_lock_tests.cpp : : : $(multi-threading) ]
156          [ compile threads_disabled_compile.cpp ]
157        ;
158
159    test-suite "spirit.classic.iterator"
160        : [ spirit-run fixed_size_queue_tests.cpp ]
161          [ compile-fail fixed_size_queue_fail_tests.cpp ]
162          [        run file_iterator_tests.cpp : : : <toolset>msvc:<define>_CRT_SECURE_NO_WARNINGS ]
163          [ spirit-run multi_pass_tests.cpp : : : $(opt-metrowerks) ]
164          [ spirit-run sf_bug_720917.cpp : : : <pch>off $(opt-metrowerks) ]
165          [ spirit-run position_iterator_tests.cpp : : : $(opt-metrowerks) ]
166          [ compile multi_pass_compile_tests.cpp ]
167        ;
168
169    test-suite "spirit.classic.small_bug_fixes"
170        : [ spirit-run bug_fixes.cpp ]
171        ;
172
173    actor_test_sources =
174        action_tests
175        assign_test
176        assign_key_test
177        clear_test
178        decrement_test
179        erase_at_test
180        increment_test
181        insert_key_test
182        insert_at_test
183        push_back_test
184        push_front_test
185        swap_test
186        ;
187
188    test-suite "spirit.classic.utility.actors"
189        : [ spirit-run actor/$(actor_test_sources).cpp ]
190        ;
191
192    test-suite "spirit.classic.typeof-support"
193        : [ compile typeof_support/typeof_actor.cpp ]
194          [ compile typeof_support/typeof_attribute.cpp ]
195          [ compile typeof_support/typeof_core.cpp ]
196          [ compile typeof_support/typeof_debug.cpp ]
197          [ compile typeof_support/typeof_dynamic.cpp ]
198          [ compile typeof_support/typeof_error_handling.cpp ]
199          [ compile typeof_support/typeof_iterator.cpp ]
200          [ compile typeof_support/typeof_symbols.cpp ]
201          [ compile typeof_support/typeof_tree.cpp ]
202          [ compile typeof_support/typeof_utility.cpp ]
203        ;
204
205
206