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