diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 92efb3a048..056a62cda6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -110,13 +110,13 @@ jobs: install: - g++-12-multilib - name: UBSAN - toolset: gcc-12 - cxxstd: "17" + toolset: gcc-13 + cxxstd: "11" address_model: 64 ubsan: 1 - os: ubuntu-22.04 + os: ubuntu-24.04 install: - - g++-12-multilib + - g++-13-multilib # Linux, clang - toolset: clang diff --git a/Jamfile.v2 b/Jamfile.v2 deleted file mode 100644 index cc332e119a..0000000000 --- a/Jamfile.v2 +++ /dev/null @@ -1,9 +0,0 @@ -# (C) Copyright Juergen Hunold 2006-2010. -# Use, modification, and distribution are subject to the -# Boost Software License, Version 1.0. (See accompanying file -# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -# -# See http://www.boost.org/libs/test for the library home page. - -build-project example ; -build-project test ; diff --git a/build.jam b/build.jam new file mode 100644 index 0000000000..dd6db1f895 --- /dev/null +++ b/build.jam @@ -0,0 +1,60 @@ +# Copyright René Ferdinand Rivera Morell 2023-2024 +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or copy at +# http://www.boost.org/LICENSE_1_0.txt) + +require-b2 5.2 ; + +constant boost_dependencies : + /boost/algorithm//boost_algorithm + /boost/assert//boost_assert + /boost/bind//boost_bind + /boost/config//boost_config + /boost/core//boost_core + /boost/detail//boost_detail + /boost/exception//boost_exception + /boost/function//boost_function + /boost/io//boost_io + /boost/iterator//boost_iterator + /boost/mpl//boost_mpl + /boost/numeric_conversion//boost_numeric_conversion + /boost/optional//boost_optional + /boost/preprocessor//boost_preprocessor + /boost/smart_ptr//boost_smart_ptr + /boost/static_assert//boost_static_assert + /boost/type_traits//boost_type_traits + /boost/utility//boost_utility ; + +project /boost/test + : common-requirements + include + ; + +explicit + [ alias boost_test : : : : $(boost_dependencies) ] + [ alias boost_prg_exec_monitor : build//boost_prg_exec_monitor ] + [ alias boost_test_exec_monitor : build//boost_test_exec_monitor ] + [ alias boost_unit_test_framework : build//boost_unit_test_framework ] + [ alias prg_exec_monitor : boost_prg_exec_monitor ] + [ alias test_exec_monitor : boost_test_exec_monitor ] + [ alias unit_test_framework : boost_unit_test_framework ] + [ alias boost_included_prg_exec_monitor : : : : $(boost_dependencies) ] + [ alias boost_included_test_exec_monitor : : : : $(boost_dependencies) ] + [ alias boost_included_unit_test_framework : : : : $(boost_dependencies) ] + [ alias included : : : : $(boost_dependencies) ] + [ alias included_prg_exec_monitor : boost_included_prg_exec_monitor ] + [ alias included_test_exec_monitor : boost_included_test_exec_monitor ] + [ alias included_unit_test_framework : boost_included_unit_test_framework ] + [ alias all : example test + boost_prg_exec_monitor + boost_test_exec_monitor + boost_unit_test_framework ] + ; + +call-if : boost-library test + : install + boost_prg_exec_monitor + boost_test_exec_monitor + boost_unit_test_framework + ; + diff --git a/build/Jamfile.v2 b/build/Jamfile.v2 index 80ba99f689..5838c6bcab 100644 --- a/build/Jamfile.v2 +++ b/build/Jamfile.v2 @@ -6,12 +6,14 @@ import os ; -import ../../predef/tools/check/predef +import-search /boost/predef/tools/check ; +import predef : check : predef-check ; -project boost/test +project : source-location ../src + : common-requirements $(boost_dependencies) : requirements shared:BOOST_TEST_DYN_LINK=1 borland:-w-8080 cygwin:_POSIX_C_SOURCE=200112L @@ -26,7 +28,7 @@ project boost/test # on : usage-requirements - BOOST_TEST_NO_AUTO_LINK=1 + BOOST_TEST_NO_LIB=1 # Disable Warning about boost::noncopyable not being exported shared,msvc:-wd4275 ; @@ -113,7 +115,3 @@ lib boost_unit_test_framework alias minimal ; alias included ; - -boost-install boost_prg_exec_monitor - boost_test_exec_monitor - boost_unit_test_framework ; diff --git a/doc/Jamfile.v2 b/doc/Jamfile.v2 index e864d5b181..43690e8b5d 100644 --- a/doc/Jamfile.v2 +++ b/doc/Jamfile.v2 @@ -14,80 +14,82 @@ using boostbook ; import doxygen ; +path-constant TEST_ROOT : .. ; + doxygen doxygen_reference_generated_doc : - $(BOOST_ROOT)/libs/test/include/boost/test/debug_config.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/detail/global_typedef.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/debug.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/execution_monitor.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/framework.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/tools/assertion_result.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/unit_test.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/tree/observer.hpp + $(TEST_ROOT)/include/boost/test/debug_config.hpp + $(TEST_ROOT)/include/boost/test/detail/global_typedef.hpp + $(TEST_ROOT)/include/boost/test/debug.hpp + $(TEST_ROOT)/include/boost/test/execution_monitor.hpp + $(TEST_ROOT)/include/boost/test/framework.hpp + $(TEST_ROOT)/include/boost/test/tools/assertion_result.hpp + $(TEST_ROOT)/include/boost/test/unit_test.hpp + $(TEST_ROOT)/include/boost/test/tree/observer.hpp # logs and formatters - $(BOOST_ROOT)/libs/test/include/boost/test/unit_test_log.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/output/xml_log_formatter.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/output/plain_report_formatter.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/output/compiler_log_formatter.hpp + $(TEST_ROOT)/include/boost/test/unit_test_log.hpp + $(TEST_ROOT)/include/boost/test/output/xml_log_formatter.hpp + $(TEST_ROOT)/include/boost/test/output/plain_report_formatter.hpp + $(TEST_ROOT)/include/boost/test/output/compiler_log_formatter.hpp # reports - $(BOOST_ROOT)/libs/test/include/boost/test/output/xml_report_formatter.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/unit_test_log_formatter.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/results_reporter.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/results_collector.hpp + $(TEST_ROOT)/include/boost/test/output/xml_report_formatter.hpp + $(TEST_ROOT)/include/boost/test/unit_test_log_formatter.hpp + $(TEST_ROOT)/include/boost/test/results_reporter.hpp + $(TEST_ROOT)/include/boost/test/results_collector.hpp # progress monitor - $(BOOST_ROOT)/libs/test/include/boost/test/progress_monitor.hpp + $(TEST_ROOT)/include/boost/test/progress_monitor.hpp # test cases and suites - $(BOOST_ROOT)/libs/test/include/boost/test/tree/test_unit.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/parameterized_test.hpp + $(TEST_ROOT)/include/boost/test/tree/test_unit.hpp + $(TEST_ROOT)/include/boost/test/parameterized_test.hpp # execution monitor source files - $(BOOST_ROOT)/libs/test/include/boost/test/execution_monitor.hpp + $(TEST_ROOT)/include/boost/test/execution_monitor.hpp # output test stream - $(BOOST_ROOT)/libs/test/include/boost/test/tools/output_test_stream.hpp + $(TEST_ROOT)/include/boost/test/tools/output_test_stream.hpp # datasets - $(BOOST_ROOT)/libs/test/include/boost/test/data/monomorphic/fwd.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/data/test_case.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/data/for_each_sample.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/data/size.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/data/monomorphic/delayed.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/data/monomorphic/initializer_list.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/data/monomorphic/array.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/data/monomorphic/collection.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/data/monomorphic/generate.hpp - - - $(BOOST_ROOT)/libs/test/include/boost/test/data/monomorphic/grid.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/data/monomorphic/join.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/data/monomorphic/singleton.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/data/monomorphic/zip.hpp + $(TEST_ROOT)/include/boost/test/data/monomorphic/fwd.hpp + $(TEST_ROOT)/include/boost/test/data/test_case.hpp + $(TEST_ROOT)/include/boost/test/data/for_each_sample.hpp + $(TEST_ROOT)/include/boost/test/data/size.hpp + $(TEST_ROOT)/include/boost/test/data/monomorphic/delayed.hpp + $(TEST_ROOT)/include/boost/test/data/monomorphic/initializer_list.hpp + $(TEST_ROOT)/include/boost/test/data/monomorphic/array.hpp + $(TEST_ROOT)/include/boost/test/data/monomorphic/collection.hpp + $(TEST_ROOT)/include/boost/test/data/monomorphic/generate.hpp + + + $(TEST_ROOT)/include/boost/test/data/monomorphic/grid.hpp + $(TEST_ROOT)/include/boost/test/data/monomorphic/join.hpp + $(TEST_ROOT)/include/boost/test/data/monomorphic/singleton.hpp + $(TEST_ROOT)/include/boost/test/data/monomorphic/zip.hpp # datasets generators - $(BOOST_ROOT)/libs/test/include/boost/test/data/config.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/data/monomorphic/generators.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/data/monomorphic/generators/keywords.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/data/monomorphic/generators/random.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/data/monomorphic/generators/xrange.hpp + $(TEST_ROOT)/include/boost/test/data/config.hpp + $(TEST_ROOT)/include/boost/test/data/monomorphic/generators.hpp + $(TEST_ROOT)/include/boost/test/data/monomorphic/generators/keywords.hpp + $(TEST_ROOT)/include/boost/test/data/monomorphic/generators/random.hpp + $(TEST_ROOT)/include/boost/test/data/monomorphic/generators/xrange.hpp # utils - $(BOOST_ROOT)/libs/test/include/boost/test/utils/algorithm.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/utils/named_params.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/tools/floating_point_comparison.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/utils/is_forward_iterable.hpp + $(TEST_ROOT)/include/boost/test/utils/algorithm.hpp + $(TEST_ROOT)/include/boost/test/utils/named_params.hpp + $(TEST_ROOT)/include/boost/test/tools/floating_point_comparison.hpp + $(TEST_ROOT)/include/boost/test/utils/is_forward_iterable.hpp # BOOST_TEST related functions - $(BOOST_ROOT)/libs/test/include/boost/test/tools/detail/bitwise_manip.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/tools/detail/lexicographic_manip.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/tools/detail/per_element_manip.hpp - $(BOOST_ROOT)/libs/test/include/boost/test/tools/detail/tolerance_manip.hpp + $(TEST_ROOT)/include/boost/test/tools/detail/bitwise_manip.hpp + $(TEST_ROOT)/include/boost/test/tools/detail/lexicographic_manip.hpp + $(TEST_ROOT)/include/boost/test/tools/detail/per_element_manip.hpp + $(TEST_ROOT)/include/boost/test/tools/detail/tolerance_manip.hpp # others - $(BOOST_ROOT)/libs/test/include/boost/test/unit_test_parameters.hpp + $(TEST_ROOT)/include/boost/test/unit_test_parameters.hpp : EXTRACT_ALL=YES "PREDEFINED=\"BOOST_TEST_DECL=\" \\ @@ -102,8 +104,8 @@ doxygen doxygen_reference_generated_doc MACRO_EXPANSION=YES EXPAND_ONLY_PREDEF=YES SEARCH_INCLUDES=YES - INCLUDE_PATH=$(BOOST_ROOT)/libs/test/include - EXAMPLE_PATH=$(BOOST_ROOT)/libs/test/doc/examples + INCLUDE_PATH=$(TEST_ROOT)/include + EXAMPLE_PATH=$(TEST_ROOT)/doc/examples BRIEF_MEMBER_DESC=YES REPEAT_BRIEF=YES ALWAYS_DETAILED_SEC=YES diff --git a/example/Jamfile.v2 b/example/Jamfile.v2 index 806b42e121..8e41b6e7df 100644 --- a/example/Jamfile.v2 +++ b/example/Jamfile.v2 @@ -11,7 +11,8 @@ import testing ; import os ; # requirements -import ../../config/checks/config : requires ; +import-search /boost/config/checks ; +import config : requires ; local HAS_UBSAN = "NO_UBSAN" ; # need to defined something if [ os.environ UBSAN ] @@ -22,21 +23,22 @@ if [ os.environ UBSAN ] ECHO $(HAS_UBSAN:J) ; # Project -project boost/test-examples +project : : requirements + /boost/test//boost_test clang:-Wno-c99-extensions $(HAS_UBSAN:J) ; # Define aliases for the needed libs to get shorter names alias prg_exec_monitor : # sources - /boost//prg_exec_monitor + /boost/test//boost_prg_exec_monitor ; alias unit_test_framework : # sources - /boost//unit_test_framework + /boost/test//boost_unit_test_framework ; # make aliases explicit so the libraries will only be built when requested @@ -60,7 +62,7 @@ alias boost_test_examples [ run unit_test_example_08.cpp unit_test_framework ] [ run unit_test_example_09_1.cpp unit_test_example_09_2.cpp unit_test_framework ] - [ run-fail unit_test_example_10.cpp unit_test_framework/static ] + [ run-fail unit_test_example_10.cpp unit_test_framework/static : : : /boost/lexical_cast//boost_lexical_cast ] [ run-fail unit_test_example_11.cpp unit_test_framework/static ] [ link unit_test_example_12.cpp unit_test_framework/static ] [ run unit_test_example_13.cpp ] diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 20ae7c7ea9..33c2bcdfb3 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -12,13 +12,15 @@ import property-set ; import regex ; import "class" : new ; -import ../../config/checks/config : requires ; +import config : requires ; -project boost/test-tests +project : requirements + /boost/test//boost_test ; -import ../../predef/tools/check/predef +import-search /boost/predef/tools/check ; +import predef : check require : predef-check predef-require ; @@ -102,6 +104,7 @@ rule docs-example-as-test ( test-file ) : : : $(requirements_documentation) # requirements + /boost/rational//boost_rational ] ; } @@ -141,11 +144,11 @@ test-suite "usage-variants-ts" test-suite "framework-ts" : - # [ boost.test-self-test run : framework-ts : result-report-test : : baseline-outputs/result-report-test.pattern baseline-outputs/result_report_test.pattern.default_behaviour ] - [ boost.test-self-test run : framework-ts : log-formatter-test : : baseline-outputs/log-formatter-context-test.pattern baseline-outputs/log-formatter-test.pattern baseline-outputs/log-formatter-test.pattern.junit ] # should be ordered alphabetically + # [ boost.test-self-test run : framework-ts : result-report-test : : baseline-outputs/result-report-test.pattern baseline-outputs/result_report_test.pattern.default_behaviour : : : : /boost/lexical_cast//boost_lexical_cast ] + [ boost.test-self-test run : framework-ts : log-formatter-test : : baseline-outputs/log-formatter-context-test.pattern baseline-outputs/log-formatter-test.pattern baseline-outputs/log-formatter-test.pattern.junit : : : : /boost/lexical_cast//boost_lexical_cast ] # should be ordered alphabetically [ boost.test-self-test run : framework-ts : run-by-name-or-label-test ] [ boost.test-self-test run : framework-ts : version-uses-module-name : included ] - [ boost.test-self-test run : framework-ts : test-macro-global-fixture : : baseline-outputs/global-fixtures-test.pattern ] + [ boost.test-self-test run : framework-ts : test-macro-global-fixture : : baseline-outputs/global-fixtures-test.pattern : : : : /boost/lexical_cast//boost_lexical_cast ] [ boost.test-self-test run : framework-ts : message-in-datatestcase-test : : baseline-outputs/messages-in-datasets-test.pattern : : : : $(requirements_datasets) ] [ boost.test-self-test run : framework-ts : decorators-datatestcase-test : : : : : : $(requirements_datasets) ] [ compile-fail framework-ts/master-test-suite-non-copyable-test.cpp ../build//included ] @@ -167,7 +170,7 @@ test-suite "writing-test-ts" [ boost.test-self-test run : writing-test-ts : collection-comparison-test : : : : : : $(requirements_boost_test_full_support) [ requires cxx11_unified_initialization_syntax ] ] # required by the test content [ boost.test-self-test run : writing-test-ts : dont_print_log_value-test : : : : : : $(requirements_datasets) ] [ boost.test-self-test run : writing-test-ts : fp-comparisons-test : : : : : : $(requirements_boost_test_full_support) ] - [ boost.test-self-test run : writing-test-ts : fp-multiprecision-comparison-test : : : : : : $(requirements_boost_test_full_support) [ requires cxx14_decltype_auto cxx14_generic_lambdas cxx14_return_type_deduction cxx14_variable_templates cxx14_constexpr ] ] + [ boost.test-self-test run : writing-test-ts : fp-multiprecision-comparison-test : : : : : : $(requirements_boost_test_full_support) [ requires cxx14_decltype_auto cxx14_generic_lambdas cxx14_return_type_deduction cxx14_variable_templates cxx14_constexpr ] /boost/multiprecision//boost_multiprecision ] [ boost.test-self-test run : writing-test-ts : fp-no-comparison-for-incomplete-types-test ] [ boost.test-self-test run : writing-test-ts : fp-relational-operator ] [ boost.test-self-test run : writing-test-ts : output_test_stream-test ] @@ -337,19 +340,19 @@ rule boost.test-smoke-ts-logger ( test-name-prefix : logger ? : log_or_report ? return $(to-return) ; } -exe smoke-ts-included : smoke-ts/basic-smoke-test.cpp +alias smoke-ts-included : smoke-ts/basic-smoke-test.cpp : $(requirements_datasets) ; -exe smoke-ts-included-2 : smoke-ts/basic-smoke-test2.cpp ; +alias smoke-ts-included-2 : smoke-ts/basic-smoke-test2.cpp ; -exe smoke-ts-included-3 : smoke-ts/basic-smoke-test3.cpp ; +alias smoke-ts-included-3 : smoke-ts/basic-smoke-test3.cpp ; # for template test case filtering from the command line -exe smoke-ts-included-4 : smoke-ts/basic-smoke-test4.cpp ; +alias smoke-ts-included-4 : smoke-ts/basic-smoke-test4.cpp ; -exe check-streams-on-exit : framework-ts/check-streams-on-exit.cpp ; +alias check-streams-on-exit : framework-ts/check-streams-on-exit.cpp ; -exe dataset-master-test-suite-accessible-test : test-organization-ts/dataset-master-test-suite-accessible-test.cpp +alias dataset-master-test-suite-accessible-test : test-organization-ts/dataset-master-test-suite-accessible-test.cpp : $(requirements_datasets) ; alias "smoke-ts" @@ -435,12 +438,12 @@ alias "smoke-ts" [ run smoke-ts-included-4 : \"--run_test=some_suite/test>,test>\" \"--run_test=test>\" : : : cla-template-test-case-sanity-15 ] ; -exe custom-command-line-binary-1 : ../doc/examples/runtime-configuration_1.run-fail.cpp ; -exe custom-command-line-binary-2 : ../doc/examples/runtime-configuration_2.run-fail.cpp +alias custom-command-line-binary-1 : ../doc/examples/runtime-configuration_1.run-fail.cpp ; +alias custom-command-line-binary-2 : ../doc/examples/runtime-configuration_2.run-fail.cpp : $(requirements_boost_test_full_support) ; -exe custom-command-line-binary-3 : ../doc/examples/runtime-configuration_3.run-fail.cpp +alias custom-command-line-binary-3 : ../doc/examples/runtime-configuration_3.run-fail.cpp : $(requirements_boost_test_full_support) ; -exe custom-command-line-binary-4 : ../doc/examples/runtime-configuration_4.run-fail.cpp +alias custom-command-line-binary-4 : ../doc/examples/runtime-configuration_4.run-fail.cpp : $(requirements_datasets) [ requires cxx11_trailing_result_types cxx11_auto_declarations ] $(l_gcc_c11_rvalue_full_support) ; alias "custom-command-line-ts" diff --git a/tools/console_test_runner/Jamfile.v2 b/tools/console_test_runner/Jamfile.v2 index c95e71811e..cbc6ff29e3 100644 --- a/tools/console_test_runner/Jamfile.v2 +++ b/tools/console_test_runner/Jamfile.v2 @@ -1,6 +1,6 @@ # (C) Copyright Gennadiy Rozental 2008-2014. -# Use, modification, and distribution are subject to the -# Boost Software License, Version 1.0. (See accompanying file +# Use, modification, and distribution are subject to the +# Boost Software License, Version 1.0. (See accompanying file # LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) # # See http://www.boost.org/libs/test for the library home page. @@ -10,29 +10,29 @@ project libs/test/tools/console_test_runner ; alias unit_test_framework : # sources - /boost//unit_test_framework - ; + /boost/test//boost_unit_test_framework + ; alias test_runner_src : # sources src/console_test_runner.cpp - unit_test_framework - ; + unit_test_framework + ; # make aliases explicit so the libraries will only be built when requested explicit unit_test_framework ; explicit test_runner_src ; -lib dl ; +lib dl ; -lib test_runner_test : test/test_runner_test.cpp unit_test_framework ; +lib test_runner_test : test/test_runner_test.cpp unit_test_framework ; -exe console_test_runner +exe console_test_runner : test_runner_src - dl + dl ; -exe console_test_runner +exe console_test_runner : test_runner_src : windows ;